Как гласит название. Я хочу использовать макрос препроцессора в тексте оператора #error:
#define SOME_MACRO 1
#if SOME_MACRO != 0
#error "SOME_MACRO was not 0; it was [value of SOME_MACRO]"
#endif
В этом примере я хочу, чтобы препроцессор разрешил [value of SOME_MACRO]
фактическое значение SOME_MACRO
, которое в этом случае равно 1. Это должно произойти до того, как препроцессор, компилятор или любые другие процессы #error распечатывают вывод ошибки
Есть ли способ сделать это или это просто невозможно?
Я не хочу знать, есть ли стандартный способ ISO С++, потому что afaik директива препроцессора #error
не указана ни в одном стандарте ISO С++. Однако я знаю поддержку GCC и Visual С++ #error
. Но мой вопрос не является специфическим для этих компиляторов, мне просто интересно, может ли это сделать компилятор/препроцессор C/С++.
Я попытался найти эту тему, но не повезло.