Tud*_*ari 89 c++ compilation visual-studio c++17
我想使用C++ 17的功能.
如何在Microsoft Visual Studio中将编译从C++ 14切换到C++ 17?
或者它在VS的发布版本中不可用?
Joh*_*erg 118
现在有一个下降(至少从VS 2017.3.5开始)你可以专门选择C++ 17.可用选项是(在项目>属性> C/C++>语言> C++语言标准下)
Zin*_*gam 29
MSBuild(Visual Studio项目/解决方案*.vcproj/*.sln):
添加到项目设置中的其他选项:/std:c++latest启用最新功能 - 当前C++ 17自VS2017起,VS2015更新3.
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/en-gb/cpp/build/reference/std-specify-language-standard-version
VS2017支持:/std:[c++14|c++17|c++latest]现在.可以通过项目的属性页面设置这些标志:
在Visual Studio开发环境中设置此编译器选项
- 打开项目的"属性页"对话框.有关详细信息,请参阅使用项目属性.
- 选择配置属性,C/C++,语言.
- 在C++ Language Standard中,从下拉控件中选择要支持的语言标准,然后选择"确定"或"应用"以保存更改.
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
)
Run Code Online (Sandbox Code Playgroud)
在接口库的情况下:
add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
INTERFACE
# Enable C++17 standard compliance
cxx_std_17
)
Run Code Online (Sandbox Code Playgroud)
san*_*ser 12
视觉工作室2019版本:
下拉菜单已移至:
Rem*_*eau 10
Visual Studio 2015 Update 3不支持您要查找的C++ 17功能(emplace_back()返回引用).
VS 2015 Update 2的STL是C++ 17-so-far功能完整版
小智 5
如果将现有的Visual Studio 2015解决方案引入Visual Studio 2017,并且您想使用c ++ 17本机编译器进行构建,则应首先将解决方案/项目重新定位到v141,然后将如上所示显示下拉列表(配置属性-> C / C ++->语言->语言标准)
| 归档时间: |
|
| 查看次数: |
82748 次 |
| 最近记录: |