【发布时间】:2019-04-10 22:46:26
【问题描述】:
让I 成为某种整数类型。现在假设我有一个enum class my_enum_class : I,其值可能不是连续的。现在我得到了一些I 值。如何检查它是否是my_enum_class中枚举的值?
a similar question 的答案(对于 C 语言)假设值是连续的,并且可以添加一个“虚拟”上限值,并检查 0 和该值之间的范围;这与我的情况无关。还有其他方法吗?
【问题讨论】:
-
所以实际上是取某个整数类型的值并查看它是否在某个其他整数类型的范围内。基本上不是关于枚举。也许codereview.stackexchange.com/q/5515/2503?
-
您将遇到的最大问题是枚举中提供的值内的任何值都是有效的,即使它实际上并未映射到枚举值。这需要我们没有的反射,因此您必须自己构建地图。
-
@einpoklum - 您的编辑不会影响我的评论。就
s/int/I/ -
@NathanOliver:所以你的答案是“目前还没有,但可能在未来有委员会讨论的静态反射”?