#ifdef C++11
// ...
#endif
int main() {}
gcc 4.8.0 给了我以下警告:
#ifdef 指令中存在额外的标记
根据标准,宏名称只能包含字母、数字和下划线字符。
可能是因为这个原因吗?
ISO/IEC 14882:2011
16.1 条件包含 [cpp.cond]
6 每个指令的条件按顺序检查。如果它计算结果为false(零),则跳过它所控制的组:指令仅通过确定指令的名称进行处理,以便跟踪嵌套条件的级别;组中的其余预处理标记将被忽略,以及组中的其他预处理标记。只有第一个控制条件计算结果为true(非零)的组会被处理。如果没有任何条件计算结果为true,并且存在 #else 指令,则将处理由 #else 控制的组;如果缺少 #else 指令,则跳过所有组,直到 #endif。151
我无法正确理解此引用。
C ++ 11
不起作用。 这个SO问题应该会帮助你:https://dev59.com/Nmgv5IYBdhLWcg3wSe0f - Eric Jablow