Почему не компилируется макрос?
#define НФлагИнициализации(НАЗВАНИЕ1, НАЗВАНИЕ2) \ Определение2Названия(НАЗВАНИЕ1, НАЗВАНИЕ2) ## флаг_инициализации
error: pasting ")" and "флаг_инициализации" does not give a valid preprocessing token
Определение2Названия
, а потом к результату будет приклеен флаг_инициализации
, в то время как на самом деле сначала препроцессор делает подстановку НАЗВАНИЕ1
и НАЗВАНИЕ2
и приклеивает флаг_инициализации
к скобочке, после чего рапортует тебе о том, что полученный результат выглядит не очень.## флаг_инициализации
внутрь Определение2Названия
. return x | y;
, то она не может никогда вызвать send
, а программа-сервер должна просто завершаться после расчёта НОД.recv
, но поскольку ты её не обрабатываешь, то дальше она будет пытаться выводить ответ из буфера в который не было ничего принято.не знаю, как правильно найти НОД в данном случае:
return x | y
нужно просто использовать x | y
в itoa
. Res и всё что с ним связано можно выкинуть, поскольку оно всё равно никак не используется.Получается, магическим образом, самопроизвольно, между включениями VulkanTexture.h и VulkanglTFModel.h был объявлен define.
Разве препроцессор не последователен и может включать файлы в том порядке, в каком ему заблагорассудится, а не как я написал?
Helpers/VulkanTexture.h
и VulkanTexture.h
-- это один и тот же файл, или разные? Если один и тот же, то из-за #pragma once
в нём он не подключается в VulkanglTFModel.h, а если разные -- то подключается.-c
на -E
). В выводе препроцессора не видно дефайнов, но видно когда подключается тот или иной файл и видно весь исходный код не относящийся к препроцессору. что тут неправильно?
coffeeMachine mix = device + machine;
вызывает перегрузку конструктора копирования, а не перегрузку оператор =, почему?
coffeeMachine mix; mix = device + machine;
где найти информацию о внутреннем устройстве long long int и unsigned long long int?
у меня появилось впечатление, что long long int склеен из двух long int и дает псевдо длину в 64 бита. Поправьте меня, если я не прав
Почему программа каждый раз занимает различные области памяти?
/proc/sys/kernel/randomize_va_space
либо командой setarch -R
для одного конкретного процесса. Отладчик gdb по умолчанию отключает ASLR для отлаживаемых программ. Зачем нужен отдельный синтаксис для препроцессора
Как получить то же самое в С++?
uint8_t foo[] = {7, 7};
int i = foo[0] + 256 * foo[1];
В js я могу получить это так
…Int8Array
…
invalid abstract return type ‘Axis<unsigned int>’
Почему возникает ошибка?
Axis<unsigned int>
-- абстрактный тип, а ты пытаешься вернуть объект такого типа.Команда сборки:
D:\mingw\mingw64\bin\g++.exe -fdiagnostics-color=always -g D:\running\code\parser.cpp -o D:\running\code\parser.exe
D:\mingw\mingw64\bin\g++.exe -fdiagnostics-color=always \
-g D:\running\code\parser.cpp \
-L<путь куда ты установил libgq> -lgq \
-o D:\running\code\parser.exe
Было бы логично увидеть, что происходит вызов deleting dtor внутри которого происходит вызов base object dtor.
Почему в ассемблерном листинге gcc нет тела деструктора [complete object destructor]?
.globl _ZN6ObjectD1Ev
.set _ZN6ObjectD1Ev,_ZN6ObjectD2Ev
внутри виртуальных деструкторов не используется виртуализация
Имеется код вида
int64_t a = b/c
b и c какие-то произвольные числа
требуется записать 0 в переменную a, если произошел SIGFPE.
Проверять значения b и c не вариант, нужно как-то задавать значение для a в обработчике сигнала.