【发布时间】:2020-11-13 08:25:03
【问题描述】:
我正在尝试在我的项目中运行 C++11。我将编译器标志/std:c++11 添加到编译器,但是当我检查版本并打印出来时,它显示为 C++98。这是在 Visual Studio 2019 中。
这是我用来打印语言的,它显示为 C++98:
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";
std::cout << "C++ langauge supported = " << __cplusplus << "\n";
【问题讨论】:
-
VS2019 仅支持 C++14 及更高版本:docs.microsoft.com/en-us/cpp/build/reference/…
-
但是 C++14 向后兼容 c++11 吗?我正在尝试制作一个项目来了解每个新语言版本的主要功能。
-
另见
/Zc标志__cplusplus的用法 -
@ChrisMM 当我添加标志 /Zc:__cplusplus 时,它将输出更改为 c++14。
-
您还拥有 MS 特定的
_MSVC_LANG。
标签: c++ visual-studio c++11 visual-c++