用于检查枚举 类 是否可用的简单宏
Simple macros to check if enum classes are available
C++ 中有很多 feature test macros 提供了一种简单且可移植的方法来检测 C++ 标准和实验性功能的存在。但是,我没能找到简单的宏来检查是否支持 enum class
es。有没有更简单直接的方法来检查 enum class
支持然后检查 __cplusplus
宏的值?
遗憾的是,没有可移植的方法来检测这一点。
Boost 有一个名为 BOOST_NO_CXX11_SCOPED_ENUMS
的宏,因此如果您在项目中使用 Boost,则可以使用该值。然而,他们将其设置为 compiler/version 基础 - 这背后没有巧妙的编码技巧。
如果 Boost 不适合您,那么您至少可以看看他们是如何做的,如果您有幸使用他们在此处列出的编译器,则可以复制部分代码用于您的目的:
C++ 中有很多 feature test macros 提供了一种简单且可移植的方法来检测 C++ 标准和实验性功能的存在。但是,我没能找到简单的宏来检查是否支持 enum class
es。有没有更简单直接的方法来检查 enum class
支持然后检查 __cplusplus
宏的值?
遗憾的是,没有可移植的方法来检测这一点。
Boost 有一个名为 BOOST_NO_CXX11_SCOPED_ENUMS
的宏,因此如果您在项目中使用 Boost,则可以使用该值。然而,他们将其设置为 compiler/version 基础 - 这背后没有巧妙的编码技巧。
如果 Boost 不适合您,那么您至少可以看看他们是如何做的,如果您有幸使用他们在此处列出的编译器,则可以复制部分代码用于您的目的: