директивы компилятора — 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 файл.

0

Решение

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

#define useThis 1

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

#define useThis

#ifdef useThis
...
#else
...
#endif
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]