Компилятор должен выдавать ошибку для определенных комбинаций #define
В текущем проекте я много экспериментирую, чтобы увидеть влияние различных решений на производительность. Поскольку мне нравится хранить весь код, у меня есть много директив #ifdef, которые позволяют мне легко включать и выключать некоторые оптимизации. Однако некоторые комбинации определений не рассматриваются. Я хотел бы видеть ошибку компилятора, если это произойдет, то есть:
#define A
#define B
#ifdef A
#ifdef B
//invalid combination of defines. Compiler should raise an error.
#endif
#endif
#ifdef A
//do something
#endif
#ifdef B
//do something else
#endif
Это возможно?
4 ответа
Решение
Да. Просто используйте директиву об ошибке (#error
).
#ifdef A
#ifdef B
#error "invalid combination of defines."
#endif
#endif
Используйте директиву препроцессора ошибки:
#error "Invalid combination"
#if defined(A) && defined(B)
#error invalid combination of defines
#endif
#ifdef A
#ifdef B
//invalid combination of defines. Compiler should raise an error.
#error Invalid combination
#endif
#endif