gpt4 book ai didi

c++11 - C++ 11 如何通过int值获取枚举类值?

转载 作者:行者123 更新时间:2023-12-02 23:04:54 26 4
gpt4 key购买 nike

我可以通过 int 变量值获取枚举类变体吗?现在,我有这样的枚举类:

enum class Action: unsigned int {
REQUEST,
RETURN,
ISSUANCE
};

我需要从数据库值中获取这个值(数据库返回无符号整数)。如何优化呢?现在,我只是对每个变体使用 switch,但这是愚蠢的。请解释一下!

最佳答案

您甚至可以编写一个通用转换函数,该函数应该能够将任何枚举类转换为其基础类型(C++14):

template<typename E>
constexpr auto toUnderlyingType(E e)
{
return static_cast<typename std::underlying_type<E>::type>(e);
}

使用 C++11

template<typename E>
constexpr auto toUnderlyingType(E e) -> typename td::underlying_type<E>::type
{
return static_cast<typename std::underlying_type<E>::type>(e);
}

关于c++11 - C++ 11 如何通过int值获取枚举类值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199724/

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