设 I
是某种整型。现在假设我有一个 enum class my_enum_class : I
,其值可能不连续。现在我得到了一些 I
值。如何检查它是否是 my_enum_class
中枚举的值?
对 a similar question 的回答(对于 C 语言)假设值是连续的,并且可以添加一个“虚拟”上限值,并检查 0 和该值之间的范围;这与我的情况无关。还有其他方法吗?
最佳答案
目前没有办法做到这一点。
有反射(reflection)提案可能会进入c++20和/或 c++23让你迭代(在编译时,因此在运行时)枚举中的枚举值。使用它检查会相对容易。
有时人们会进行手动枚举反射,通常使用宏。
关于c++ - 我应该如何检查基础类型值是否为枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53190584/