为什么Visual Studio Community 2017 C ++标准C ++ 98?

时间:2018-09-23 11:09:54

标签: c++ visual-studio standards

昨天我升级到了最新的VS Community 2017(去年安装了上一个),并想检查C ++标准。因此,我运行以下代码对其进行检查,事实证明,我使用的是C ++ 98:

#include<iostream>
using namespace std;
int main()
{
    cout << __cplusplus << endl;
    system("pause");
}

哪个输出

  

199711

为什么我没有最新的C ++标准?

screenshot of the code, output and vs version

1 个答案:

答案 0 :(得分:46)

默认情况下,对于当前版本的Visual Studio,__cplusplus的值在默认情况下暂时暂时不符合标准,以免破坏现有代码。这并不意味着您的编译器不支持任何C ++ 11(或更新版本)功能。

引用MSVC now correctly reports __cplusplus

  

/ Zc:__ cplusplus

     

您需要使用/Zc:__cplusplus开关进行编译,以查看__cplusplus宏的更新值。我们尝试默认情况下更新宏,但发现更改__cplusplus的值时,很多代码无法正确编译。对于19.xx系列的所有次要版本的MSVC,我们将继续要求使用/Zc:__cplusplus开关。