gpt4 book ai didi

c++ - 我怎样才能轻松地将枚举成员转换为 int?

转载 作者:搜寻专家 更新时间:2023-10-31 01:45:02 25 4
gpt4 key购买 nike

如何轻松地将枚举成员转换为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com