怎样才能轻松地将枚举成员转换为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);

相关内容

  • 没有找到相关文章

最新更新