Visual Studio2022设置默认std标准库版本

发布于:2025-04-01 ⋅ 阅读:(20) ⋅ 点赞:(0)

一. 设置方法

路径:

  • C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.Cl.Common.props

代码块:

70:      <LanguageStandard                 Condition="'%(ClCompile.LanguageStandard)'              == ''">stdcpp20</LanguageStandard>
71:      <LanguageStandard_C               Condition="'%(ClCompile.LanguageStandard_C)'            == ''">stdc17</LanguageStandard_C>

在这里插入图片描述
设置完后,默认就以指定的标准库版本进行设置了。

二. 设置参数

C++ 语言标准 (LanguageStandard) 的可填写 Name 值

Name DisplayName 编译器开关 说明
Default 默认(ISO C++14 标准) /std:c++14 使用 ISO C++14 标准作为默认语言标准。
stdcpp14 ISO C++14 标准 /std:c++14 强制使用 ISO C++14 标准。
stdcpp17 ISO C++17 标准 /std:c++17 强制使用 ISO C++17 标准。
stdcpp20 ISO C++20 标准 /std:c++20 强制使用 ISO C++20 标准。
stdcpp23 预览 - ISO C++23 标准 /std:c++23preview 预览支持 ISO C++23 标准中的功能(可能不完全稳定)。
stdcpplatest 预览 - 最新 C++ 工作草案中的功能 /std:c++latest 支持最新的 C++ 工作草案中的功能(实验性功能,可能包含未标准化的内容)。

C 语言标准 (LanguageStandard_C) 的可填写 Name 值

Name DisplayName 编译器开关 说明
Default 默认(旧 MSVC) 使用旧版 MSVC 的默认 C 语言标准(通常为 C89/C90)。
stdc11 ISO C11 标准 /std:c11 强制使用 ISO C11 标准。
stdc17 ISO C17 (2018) 标准 /std:c17 强制使用 ISO C17 标准(与 C11 类似,但修复了一些缺陷)。
stdclatest 预览 - 最新 C 工作草案中的功能 /std:clatest 支持最新的 C 工作草案中的功能(实验性功能,可能包含未标准化的内容)。
<EnumProperty Name="LanguageStandard" DisplayName="C++ 语言标准" Description="确定编译器将强制执行的 C++ 语言标准。建议尽可能使用最新版本。(/std:c++14、/std:c++17、/std:c++20、/std:c++23preview、/std:c++latest)" Category="General" F1Keyword="VC.Project.VCCLCompilerTool.CppLanguageStandard">
    <EnumProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ClCompile" Label="" HasConfigurationCondition="true"/>
    </EnumProperty.DataSource>
    <EnumValue Name="Default" DisplayName="默认(ISO C++14 标准)"/>
    <EnumValue Name="stdcpp14" Switch="/std:c++14" DisplayName="ISO C++14 标准"/>
    <EnumValue Name="stdcpp17" Switch="/std:c++17" DisplayName="ISO C++17 标准"/>
    <EnumValue Name="stdcpp20" Switch="/std:c++20" DisplayName="ISO C++20 标准"/>
    <EnumValue Name="stdcpp23" Switch="/std:c++23preview" DisplayName="预览 - ISO C++23 Standard"/>
    <EnumValue Name="stdcpplatest" Switch="/std:c++latest" DisplayName="预览 - 最新 C++ 工作草案中的功能"/>
  </EnumProperty>

  <EnumProperty Name="LanguageStandard_C" DisplayName="C 语言标准" Description="确定编译器将强制执行的 C 语言标准。建议尽可能使用最新版本。(/std:c11、/std:c17、/std:clatest)" Category="General" F1Keyword="VC.Project.VCCLCompilerTool.CppLanguageStandard">
    <EnumProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ClCompile" Label="" HasConfigurationCondition="true"/>
    </EnumProperty.DataSource>
    <EnumValue Name="Default" DisplayName="默认(旧 MSVC)"/>
    <EnumValue Name="stdc11" Switch="/std:c11" DisplayName="ISO C11 标准"/>
    <EnumValue Name="stdc17" Switch="/std:c17" DisplayName="ISO C17 (2018)标准"/>
    <EnumValue Name="stdclatest" Switch="std:clatest" DisplayName="预览 - 最新 C 工作草案中的功能"/>
  </EnumProperty>

==========================
点个赞吧,谢谢大家qwq!