如何在 Microsoft Visual Studio 2017 中检查 C++ 版本

Sum*_*mit 8 c++ visual-studio visual-c++

我正在尝试使用以下代码检查我拥有的 c++ 版本。

if (__cplusplus == 201703L) std::cout << "C++17\n";
        else if (__cplusplus == 201402L) std::cout << "C++14\n";
        else if (__cplusplus == 201103L) std::cout << "C++11\n";
        else if (__cplusplus == 199711L) std::cout << "C++98\n";
        else std::cout << "pre-standard C++\n";
Run Code Online (Sandbox Code Playgroud)

输出是 C++98 版本,但我绝对能够使用 C++11 功能,所以我想我没有从代码中获得正确的版本。

如何检查我使用的是哪个版本的 C++?

Som*_*ude 8

来自https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/

您需要使用/Zc:__cplusplus开关进行编译才能看到__cplusplus宏的更新值。

请注意,这是在 MSVC 2017(版本 15.7 Preview 3)中添加的,它在旧版本中不可用。


Fir*_*ent 8

比编写程序更容易检查它的方法是在项目(在解决方案资源管理器中右键单击您的项目名称)> 属性 > C/C++ > 语言 > C++ 语言标准

你也可以在那里改变它。

多亏了这个答案,我才知道。