一. 设置方法
路径:
- 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!