__cplusplus 在 MSVC 中等于 199711,是否支持 C++11?

Lio*_*ing 0 c++ visual-c++ c++11

我想知道我的编译器是否支持 C++11,当使用 const__cplusplus知道 C++ 版本时,我发现打印199711.

这个版本号是不是表示编译器支持C++11?
注意:我正在使用Visual Studio 2013 v12.0.40629 Update5.

小智 6

这是 MSVC 的问题(即缺乏 C++11/C++14 支持):

https://connect.microsoft.com/VisualStudio/feedback/details/763051/a-value-of-predefined-macro-cplusplus-is-still-199711l

所以不,就 MSVC 而言,这个值并不意味着任何特定的东西。一些 C++11 功能可以完美运行,有些会失败。正因为如此,这个 C++99-ish 值在其中具有一定的意义;最好的办法是检查特定功能(请参阅cxx11tests下面的链接)。

更多信息:

Windows 上的 C++11

https://msdn.microsoft.com/pl-pl/library/hh567368.aspx

/sf/answers/1922147251/

如何检测我是否正在使用 Visual Studio 2008 编译代码?

https://github.com/sloede/cxx11tests