Clang定义了什么宏来宣布C ++ 11模式,如果有的话?
GCC定义__GXX_EXPERIMENTAL_CXX0X__
,至少有一些版本。默认情况下,MSVC似乎至少为_MSC_VER >= 1600
启用了支持。
答案 0 :(得分:10)
它为每个单独的功能使用不同的预处理器测试,例如
#if __has_feature(cxx_decltype)
用于测试decltype
是否已实施。
请参阅此处的完整列表
http://clang.llvm.org/docs/LanguageExtensions.html#checking_upcoming_features
答案 1 :(得分:2)
标准说你可以查看_cplusplus的值来确定编译器所针对的标准。虽然,实际上您可能无法对此信息做多少工作。请参阅Bo Persson的答案以获得更好的解决方案。
C ++ 98/03 - 199711L
C ++ 11 - 201103L
答案 2 :(得分:0)