Есть ли директива препроцессора, которая проверяет, не определена ли константа. Я знаю о директиве #ifndef
, но я также ищу директиву #elif not defined
. Существует ли #elif not defined
?
Вот как я бы его использовал:
#define REGISTER_CUSTOM_CALLBACK_FUNCTION(callbackFunctName) \
#ifndef CUSTOM_CALLBACK_1 \
#define CUSTOM_CALLBACK_1 \
FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
#elif not defined CUSTOM_CALLBACK_2 \
#define CUSTOM_CALLBACK_2 \
FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
#elif not not defined CUSTOM_CALLBACK_3 \
#define CUSTOM_CALLBACK_3 \
FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
#endif
#elif not not defined CUSTOM_CALLBACK_3
не не определено? - person JustMaximumPower   schedule 11.02.2013#define
или#if
или#elif
частью макроса. Ваш макрос должен быть переработан, чтобы убедиться, что он не имеет внутреннего ветвления. Все макроветвления должны выполняться снаружи. Его нельзя встроить в макрос. - person AnT   schedule 11.02.2013