微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。