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