作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为结构中不同枚举值对应的不同类型的变量创建一个查找。
这是我目前的解决方案:
struct X {
int x;
std::string y;
char z;
enum class MYENUM {
X, Y, Z
};
template<MYENUM TYPE>
auto& GetAttribute() {
if constexpr (TYPE == MYENUM::X) return x;
else if constexpr (TYPE == MYENUM::Y) return y;
else if constexpr (TYPE == MYENUM::Z) return z;
}
};
我正在寻找一个更优雅的解决方案,因为在我的实际项目中,我的结构中有许多不同的变量,因此 if/else block 变得非常大。
最佳答案
可能是这样的:
template<MYENUM TYPE>
auto& GetAttribute() {
return std::get<int(TYPE)>(std::tie(x, y, z));
}
(您实质上是在重新发明 std::tuple
。)
关于c++ - 将枚举转换为成员变量 [问题] C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63552970/
我是一名优秀的程序员,十分优秀!