控制visual studio 2019中的C++标准修订

Control C++ Standard Revision in visual studio 2019

本文关键字:标准 C++ 中的 visual studio 2019 控制      更新时间:2024-09-29

所以我的C++项目使用visual studio 2019,我想在编译时控制C++版本。我把它从";项目>属性>C/C++>语言>C++语言标准>quot;

它在Default (ISO C++14 Standard)

我用这个来检查版本:

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

但输出是199711

我将C++语言标准更改为ISO C++17 Standard (/std:c++17)

__cplusplus的输出始终是199711

知道吗?

根据Microsoft文档:

__cplusplus预处理器宏通常用于报告支持用于C++标准的特定版本。因为很多现有的代码似乎取决于这个宏的值;199711L";,编译器不会更改宏的值,除非通过使用/Zc:__cplusplus编译器选项显式选择加入。这个/Zc:__cplusplus选项从Visual Studio 2017开始提供版本15.7,并且默认情况下处于关闭状态。在早期版本的VisualStudio,默认情况下,或者如果指定了/Zc:__cplusplus-,则VisualStudio返回值"0";199711L";对于__cplusplus预处理器宏。permission-选项不启用/Zc:__cplusplus。

因此,您可以将/Zc:__cplusplus/Zc:__cplusplus-添加到Configuration Properties -> C/C++ -> Command Line中的Additional options中。