MSBuild(Visual Studio项目/解决方案* .vcproj / *。sln):
在项目设置中添加到其他选项:/std:[c++14|c++17|c++latest]以启用最新功能-自VS2017,VS2015 Update 3起当前为C ++ 17。
[https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/]
/std:[c++14|c++17|c++latest]将禁用非标准C ++扩展,并在VS2017中启用标准一致性。
[https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/]
编辑(2018年10月):此处记录了最新的VS2017功能:
[https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version]
VS2017支持:现在/std:[c++14|c++17|c++latest] 可以通过项目的属性页设置这些标志:
在Visual Studio开发中设置此编译器选项 环境
打开项目的“属性页”对话框。 有关详细信息,请参见工作 与项目属性。
选择配置属性,C / C ++, 语言。
在C ++语言标准中,选择语言标准以 支持,然后选择确定或应用以保存 您的更改。
CMake的:
Visual Studio 2017(15.7+)支持CMake项目。CMake使以各种方式启用现代C ++功能成为可能。 最基本的选项是通过在CMakeLists.txt中设置目标的属性来启用现代C ++标准:
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PUBLIC
# Enable C++17 standard compliance
CXX_STANDARD 17
)
对于接口库:
add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
INTERFACE
# Enable C++17 standard compliance
cxx_std_17
)