/Zc:

您所在的位置:网站首页 启用宏选项 /Zc:

/Zc:

2023-05-18 22:47| 来源: 网络整理| 查看: 265

/Zc:__cplusplus(启用更新的 __cplusplus 宏) 文章 04/03/2023

/Zc:__cplusplus 编译器选项启用 __cplusplus 预处理器宏以针对最新的 C++ 语言标准支持报告更新的值。 默认情况下,Visual Studio 始终为 __cplusplus 预处理器宏返回值 199711L。

语法

/Zc:__cplusplus[-]

注解

__cplusplus 预处理器宏通常用于报告 C++ 标准特定版本的支持。 因为很多现有代码需要此宏的值与 199711L 匹配,所以编译器不会更改此宏的值,除非通过使用 /Zc:__cplusplus 编译器选项进行显式选择。 从 Visual Studio 2017 版本 15.7 开始便已提供 /Zc:__cplusplus 选项,该选项在默认情况下处于禁用状态。 在早期版本的 Visual Studio 中,在默认情况下或者在指定了 /Zc:__cplusplus- 的情况下,Visual Studio 针对 199711L 预处理器宏返回值 __cplusplus。 /permissive- 选项不启用 /Zc:__cplusplus。

启用 /Zc:__cplusplus 选项后,__cplusplus 宏报告的值取决于 /std 版本选项设置。 下表列出了该宏的可能值:

/Zc:__cplusplus 选项 /std 选项 __cplusplus 值 Zc:__cplusplus /std:c++14(默认值) 201402L Zc:__cplusplus /std:c++17 201703L Zc:__cplusplus /std:c++20 202002L Zc:__cplusplus /std:c++latest 查看文本 Zc:__cplusplus-(已禁用) 任何值 199711L 未指定 任何值 199711L

编译器不支持 C++98、C++03 或 C++11 的标准选项。 从 Visual Studio 2019 版本 16.11 开始,/std:c++20 选项可用。 /std:c++latest 选项的 __cplusplus 值取决于 Visual Studio 的版本。 它始终比 Visual Studio 版本支持的最高支持标准值 __cplusplus 至少高 1。

若要更精细地检测对编译器工具集的更改,请使用 _MSC_VER 预定义宏。 此内置宏的值会随 Visual Studio 2017 和更高版本中的每个工具集更新而增加。 _MSVC_LANG 预定义宏向标准版本报告 /Zc:__cplusplus 是启用还是禁用状态。 启用 /Zc:__cplusplus 后,__cplusplus 具有与 _MSVC_LANG 相同的值。

在 Visual Studio 中设置此编译器选项

打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。

选择“配置属性”>“C/C++”>“命令行”属性页。

将 /Zc:__cplusplus 或 /Zc:__cplusplus- 添加到“附加选项:”窗格中。

另请参阅

/Zc(一致性) /std(指定语言标准版本) 预定义宏



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3