为什么不能将作用域枚举隐式转换为 int?如果我有

enum class Foo:uint32_t{...};

然后我知道 Foo 覆盖的整数是那些覆盖的 uint32_t 的子集,所以我应该总是安全的。我在这里错过了一些怪癖吗?然而,相反的做法并不安全。

最佳答案

仅仅因为这样的转换总是可以成功并不意味着您希望它是隐式的。

作用域枚举的全部目的是它们是不同的类型,不会在重载解析期间导致混淆结果。

明确是好的。

关于c++ - 将作用域枚举转换为 int,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23549280/

10-12 05:46