用于检查枚举类是否可用的简单宏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于检查枚举类是否可用的简单宏相关的知识,希望对你有一定的参考价值。

C ++中有很多feature test macros,它提供了一种简单易用的方法来检测C ++标准和实验性功能的存在。但是,我没有找到简单的宏来检查是否支持enum classes。是否有更简单直接的方法来检查enum class支持然后检查__cplusplus宏的值?

答案

不幸的是,没有可移植的方式来检测这一点。

Boost有一个名为BOOST_NO_CXX11_SCOPED_ENUMS的宏,所以如果你在项目中使用Boost,你可以使用该值。然而,他们在编译器/版本的基础上设置它 - 这背后没有聪明的编码技巧。

如果Boost不是您的选择,那么您至少可以看看他们是如何做的,并为您的目的复制部分代码,如果您有幸使用他们在此列出的编译器:

Boost compiler configurations

以上是关于用于检查枚举类是否可用的简单宏的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“代码应明确检查权限是不是可用”错误

使用CMake检查列表是否包含特定条目的最佳方法

是否有用于 Octave 和 Scilab 的 C 类预处理器指令用于互兼容代码?

十五宏条件编译和枚举

用于检查文件是不是存在的 Excel 宏

收藏|分享前端开发常用代码片段