我想使用C ++ 17功能。
如何在Microsoft Visual Studio中将编译从C ++ 14切换到C ++ 17?
还是在VS的发行版本中不可用?
我想使用C ++ 17功能。
如何在Microsoft Visual Studio中将编译从C ++ 14切换到C ++ 17?
还是在VS的发行版本中不可用?
Answers:
现在有一个下拉列表(至少自VS 2017.3.5起),您可以在其中专门选择C ++ 17。可用选项为(在项目>属性> C / C ++>语言> C ++语言标准下)
/std:c++14
/std:c++17
/std:c++latest
(我敢打赌,一旦C ++ 20退出市场并得到Visual Studio的更全面支持,它将成为/std:c++20
)
-std:c++14
,-std:c++17
并且-std:c++latest
也适用,例如,当你喜欢手动输入编译器选项(与VS2017测试)。
-
不是要/std:
列出我列出的开关?
gcc
或的好处clang
。然后,-
侵入性较小(但是语法仍然略有不同(:
而不是=
))。
MSBuild(Visual Studio项目/解决方案* .vcproj / *。sln):
在“项目设置”中的“添加到其他选项”中:/std:c++latest
启用最新功能-当前版本为VS2017,VS2015 Update 3和更高版本的C ++ 17。
https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
/permissive-
将禁用非标准C ++扩展,并在VS2017中启用标准一致性。
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/
编辑(2018年10月):此处记录了最新的VS2017功能:
https://docs.microsoft.com/zh-CN/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}
PROPERTY
# 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
)
Visual Studio 2015 Update 3不支持您要查找的C ++ 17功能(emplace_back()
返回引用)。
c++11
和c++14
?