C++ # определение значения не читается в cpp файле

В моем C++ .h файл:

class foo {
#define useThis true

...
}

В моем .cpp файл:

#if useThis
... generate A code
#else
... generate B code
#endif

Проблема в том, что #define значения не читаются в .cpp файл, так что то, что происходит, это и A, и B генерируются.

Я в том числе .h файл в верхней части .cpp файл.

1 ответ

Логическое значение не может использоваться в макросах для некоторых компиляторов, таких как Visual Studio (хотя работает и в g++). Способ кросс-компиляции должен быть:

#define useThis 1

Или определите макрос без значения и используйте ifdef проверить, было ли оно определено:

#define useThis

#ifdef useThis
    ...
#else
    ...
#endif
Другие вопросы по тегам