• Visual Studio下__cplusplus宏为199711L的问题


    Visual Studio下__cplusplus宏为199711L的问题

    / Zc:__ cplusplus(启用更新的__cplusplus宏)

    / ZC:__ CPLUSPLUS编译器选项使__cplusplus预处理宏为最近C ++语言标准的支持报告的更新值。 默认情况下,Visual Studio始终为__cplusplus预处理器宏返回值“199711L” 

    句法

    / Zc:__ cplusplus [ - ]

    备注

    所述__cplusplus预处理宏通常用来报告用于C ++标准的特定版本的支持。 由于许多现有代码似乎依赖于此宏匹配“199711L”的值,因此编译器不会更改宏的值,除非您使用/ Zc:__ cplusplus编译器选项明确选择加入/ ZC:__ CPLUSPLUS选项可用在Visual Studio 2017年开始15.7版本,并且默认是关闭的。在早期版本的Visual Studio中,默认情况下,或者如果指定了/ Zc:__ cplusplus-,Visual Studio将为__cplusplus预处理器宏返回值“199711L” / permissive- 选项不启用/ Zc:__ cplusplus

    / ZC:__ CPLUSPLUS启用选项,则所报告的值__cplusplus宏依赖于/ STD版开关设置。 此表显示宏的可能值:

    / Zc:__ cplusplus开关/ std:c ++开关__cplusplus值
    Zc:__ cplusplus / std:c ++ 14(默认) 201402L
    Zc:__ cplusplus / STD:C ++ 17 201703L
    Zc:__ cplusplus / STD:C ++最新 201704L
    Zc:__ cplusplus-(禁用) 任何价值 199711L
    未标明 任何价值 199711L

    编译器不支持C ++ 98,C ++ 03或C ++ 11的标准交换机。

    要更精细地检测编译器工具集的更改,请使用_MSC_VER预定义宏。 对于Visual Studio 2017及更高版本中的每个工具集更新,此内置宏的值都会递增。无论/ Zc:__ cplusplus选项是启用还是禁用_MSVC_LANG预定义宏都会报告标准版本/ Zc:__ cplusplus启用时, __cplusplus == _MSVC_LANG

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

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

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

    3. / Zc:__ cplusplus/ Zc:__ cplusplus-添加其他选项:窗格。

    参考:

    1./ Zc:__ cplusplus(启用更新的__cplusplus宏)


    2.VS2017下__cplusplus宏为199711L的问题

  • 相关阅读:
    本周读书的感想
    程序员应知——学习、思考与分享
    用设计版面的思想编写漂亮的代码
    程序员应知——你有几种武器
    《明星DBA成长之路》读后随想
    有些东西不可替代
    DB2连接串&DB2客户端连接服务端
    数据库连接字符串备忘大全
    ASP Blob类型转存为Long Raw类型
    Oracle read_csv
  • 原文地址:https://www.cnblogs.com/2018shawn/p/11475079.html
Copyright © 2020-2023  润新知