我想根据是否使用-std=c++0x
来定义宏。
如果我尝试下面的宏,我会收到错误error stray '#' in program
。
下面的代码是否错误/是否允许C ++在#if / #endif
中使用预处理器#define
?
#define DEF_ME (p) \
#if __GXX_EXPERIMENTAL_CXX0X__ \
#endif
我在Linux中使用g ++ 4.4.7。
答案 0 :(得分:9)
下面的代码是否错误/是否允许C ++在
#if
中使用预处理器#endif
/#define
?
不,那是不允许的。但你可以用相反的方法得到相同的结果:
#if __GXX_EXPERIMENTAL_CXX0X__
# define DEF_ME (p) one way
#else
# define DEF_ME (p) another way
#endif