我想根据是否-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。
下面的代码是否不正确/是否允许C ++在
#if
/#endif
中使用预处理器#define
?
不,那是不允许的。但是您可以使用相反的方法来获得相同的结果:
#if __GXX_EXPERIMENTAL_CXX0X__
# define DEF_ME (p) one way
#else
# define DEF_ME (p) another way
#endif
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句