【发布时间】:2014-05-06 16:54:15
【问题描述】:
如何轻松地将枚举成员转换为 int?我知道enum class 不能有成员函数。但是没有任何方法可以做类似myEnum::foo.toInt() 的事情吗?我正在寻找static_cast<int>(myEnum::foo) 的替代品,因为每次我需要将其放入int 变量时都需要进行大量输入,而我不会想使用旧的enum(非enum class),因为我想安全地输入类型并且每个枚举都有自己的范围。
【问题讨论】:
-
如果你经常投射,那你就做错了。
-
“Easy cast”和“类型安全”听起来有点矛盾。
-
这已经很容易了。不确定为什么需要 static_cast 将枚举成员分配给 int,因为枚举成员已经是整数类型。 (枚举 eColors { eRed, eGreen, eBlue }; int red = eRed;)