在 C++ 中将强类型枚举转换为 int 的替代方法

问题描述

要将强类型枚举转换为 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 (将#修改为@)