Abr*_*ile 6 c++ macros g++ c-preprocessor
我想根据是否-std=c++0x使用来定义一个宏.如果我尝试下面的宏我有错误error stray '#' in program.
下面的代码是否错误/是否允许C++ #if / #endif 在a中使用预处理器#define?
#define DEF_ME (p) \
#if __GXX_EXPERIMENTAL_CXX0X__ \
#endif
Run Code Online (Sandbox Code Playgroud)
我在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
Run Code Online (Sandbox Code Playgroud)