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

时间:2018-07-26 19:44:22

标签: c++ c++11 c-preprocessor enum-class

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

1 个答案:

答案 0 :(得分:1)

不幸的是,没有便携式方法可以检测到这一点。

Boost有一个名为WITH MEMBER [Measures].[MyNewMeasure] AS [Measures].[MyFirstMeasure] + [Measures].[MySecondMeasure] SELECT {[Measures].[MyNewMeasure]} ON COLUMNS, { whatever } ON ROWS FROM [CubeName] 的宏,因此,如果您在项目中使用Boost,则可以使用该值。但是,他们是在编译器/版本的基础上进行设置的-这背后没有巧妙的编码技巧。

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

Boost compiler configurations