在我的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 :(得分:0)
布尔值不能在某些编译器的宏中使用,例如Visual Studio(尽管在g ++下工作)。交叉编译方式应该是:
#define useThis 1
或者,定义一个没有值的宏,并使用ifdef
来测试它是否已定义:
#define useThis
#ifdef useThis
...
#else
...
#endif