c++ - 我应该如何检查基础类型值是否为枚举值?

标签 c++ enums

I 是某种整型。现在假设我有一个 enum class my_enum_class : I,其值可能不连续。现在我得到了一些 I 值。如何检查它是否是 my_enum_class 中枚举的值?

a similar question 的回答(对于 C 语言)假设值是连续的,并且可以添加一个“虚拟”上限值,并检查 0 和该值之间的范围;这与我的情况无关。还有其他方法吗?

最佳答案

目前没有办法做到这一点。

有反射(reflection)提案可能会进入和/或 让你迭代(在编译时,因此在运行时)枚举中的枚举值。使用它检查会相对容易。

有时人们会进行手动枚举反射,通常使用宏。

关于c++ - 我应该如何检查基础类型值是否为枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53190584/

相关文章:

enums - Dart 枚举 - 聚合物

c++ - 调用QQmlPropertyMap子进程的子进程?

c++ - 路径设置方法

c++ - 无法通过 Clang API 找到标识符,但 Clang 在使用时可以找到它

c++ - 无法弄清楚指针的行为

java - 强制子类仅绑定(bind)到该子类的枚举

c++ - 在 2D Vector 字符串中查找重复项

actionscript-3 - AS3/Flash/Flex中的枚举?

c# - 如何将多个枚举传递给只接收一个的方法?

c - 开关盒中的枚举