c++ - 验证整数是某个枚举类项 (C++11)

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

我有一些枚举类

enum class Foo { A=1, B=18 , Z=42 };

我想检查一些整数是否可以转换为 Foo。 这样做的理想方法是什么?这是用于运行时检查(整数在编译时未知)

显然我可以用困难的方式来做到这一点(写一个函数 bool CheckEnum(Foo); 带有一个大屁股的开关,除了默认情况外,所有情况都返回 true),但我希望有一个更优雅的机制,避免了太多的写作。 MPL 或 Boost.Preprocessor 将是一个完全可以接受的解决方案,但遗憾的是我对其中之一知之甚少

最佳答案

这个问题的解决方案是放弃枚举,并将其替换为一些使用 XMACROs. 创建的数组

关于c++ - 验证整数是某个枚举类项 (C++11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8221745/

相关文章:

c++ - 在 cuda 中通过 Gauss-Jordan 方法对复数进行矩阵求逆

c++ - 是否可以对全局运算符 `new` 和 `delete` 执行回调?

c++ - 将 lambda 传递给对象并从 lambda 内部修改该对象

c++ - 一致地处理 clang、gcc 和 icc 中的 switch 枚举类返回

c++ - 为什么枚举不能是模板?

c++ - 如何在 C++ 中获取 a 字符串的一部分?

c++ - 如何强制编译器识别模板函数中的 lambda 类型?

C++ 11 - move 非局部变量安全吗?

python - "Other"/Python 枚举上的默认名称行为

c++ - 如何打破 Qt 中小部件的 Tab 键顺序链?