问题描述
要将强类型枚举转换为 int,我们可以使用:
enum class MyEnum { a,b };
int x = static_cast<int>(MyEnum::a);
如果我使用以下较短的行会怎样:
int x = int(MyEnum::a);
我的动机:
当我使用旧的 c 样式类型转换时,我需要转换我的作用域枚举,并且我的编译器(Qt 创建者的默认设置,即 mingw)会生成警告,例如(int)MyEnum::a
,我希望避免。显然 static_cast<>()
又长又丑。因此,人们可能更喜欢 int(MyEnum::a)
,它在我的编译器中不生成警告
问题:
1- 这样做合适吗?
2- 两种方法的优缺点是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)