如何轻松地将枚举成员转换为 int?我知道一个enum class
不能有成员函数。但是有没有办法做类似myEnum::foo.toInt()
的事情呢?我正在寻找 static_cast<int>(myEnum::foo)
的替代品因为每次我需要将其放入 int
时都这样做变量需要输入很多,我不想使用旧的 enum
(非 enum class
)因为我想安全地输入类型并且每个枚举都有你自己的范围。
最佳答案
考虑使用将任何枚举值转换为其基础类型的实用函数:
template<typename Enum>
typename std::underlying_type<Enum>::type to_underlying(Enum e) {
return static_cast<typename std::underlying_type<Enum>::type>(e);
}
然后你可以写:
to_underlying(Enum::foo);
关于c++ - 我怎样才能轻松地将枚举成员转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22692323/