【问题标题】:capture C++0x flag inside the program [duplicate]在程序中捕获 C++0x 标志 [重复]
【发布时间】:2011-07-22 20:17:57
【问题描述】:

可能重复:
GNU C++ how to check when -std=c++0x is in effect?

我想做的是:

 #if defined(CPLUSPLUS_OXFLAG)
  //do something
 #else
  //do something else
 #endif

现在我如何将传递给编译器 (g++) 的 -std=c++0x 参数捕获到 define 我的 CPLUSPLUS_OXFLAG 标志?

【问题讨论】:

标签: c++ compiler-construction c++11


【解决方案1】:

GCC documentation 声明预处理器符号__GXX_EXPERIMENTAL_CXX0X__ 是在使用-std=c++0x 编译时定义的。

【讨论】:

    【解决方案2】:

    对于 GCC,看看这个:

    __GXX_EXPERIMENTAL_CXX0X__

    此宏在使用选项 -std=c++0x 或 -std=gnu++0x 编译 C++ 源文件时定义。它表明一些可能包含在 C++0x 中的功能可用。请注意,这些功能是实验性的,可能会在未来版本的 GCC 中更改或删除。

    查找参考here

    【讨论】:

    • 感谢... +1 参考
    【解决方案3】:

    当启用std=c++0x 时,GCC 定义__GXX_EXPERIMENTAL_CXX0X__

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      相关资源
      最近更新 更多