作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以通过 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/
我是一名优秀的程序员,十分优秀!