В моем C ++ .h
файл:
class foo {
#define useThis true
...
}
В моем .cpp
файл:
#if useThis
... generate A code
#else
... generate B code
#endif
Проблема в том, что #define
значения не читаются в .cpp
файл, так что то, что происходит, и A и B генерируются.
Я в том числе .h
файл в верхней части .cpp
файл.
Логическое значение не может использоваться в макросах для некоторых компиляторов, таких как Visual Studio (хотя работает и в g ++). Способ кросс-компиляции должен быть:
#define useThis 1
Или определите макрос без значения и используйте ifdef
проверить, было ли оно определено:
#define useThis
#ifdef useThis
...
#else
...
#endif
Других решений пока нет …