如何在Visual Studio 2019中更改默认的C ++语言标准?

问题描述

我想在我的项目中使用C ++ 17,而在启动新项目时不必总是在属性中对其进行更改。这可能吗?

谢谢!

解决方法

在“视图”->“其他Windows”->“属性管理器”下编辑属性表。接下来,打开项目的树,然后打开要更改的平台。

默认情况下,此设置是相应平台的所有项目配置的继承设置,因此,右键单击“ Microsoft.Cpp..User”的节点,然后转到C / C ++->语言,然后设置所需的语言标准单击确定。

您可能需要右键单击项目节点,然后选择“保存”,我不确定这是否确实必要。

,

要仅更改 new 项目的默认设置,请参见How to change the default C++ template file?

要更改 all 个C ++项目的默认设置,请在.props(通常为$(UserRootDir))中查找以下两个C:\Users\<user name>\AppData\Local\Microsoft\MSBuild\v4.0文件。

    Microsoft.Cpp.Win32.user.props
    Microsoft.Cpp.x64.user.props

然后在Project/ItemDefinitionGroup/ClCompile下插入以下内容。

    <ConformanceMode>true</ConformanceMode>
    <LanguageStandard>stdcpp17</LanguageStandard>

如果.props文件不存在,而您必须从头开始创建它们,则每个文件都将具有以下完整内容。

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemDefinitionGroup>
    <ClCompile>
      <ConformanceMode>true</ConformanceMode>
      <LanguageStandard>stdcpp17</LanguageStandard>
    </ClCompile>
  </ItemDefinitionGroup>
</Project>

有关属性文件的更多详细信息,请参见我的其他答案here,包括在何处查找每台计算机的默认设置(在$(VCTargets)中),而不是在每用户的默认位置(在{{1 }}。