【发布时间】:2019-01-28 14:02:28
【问题描述】:
考虑:
enum class Number {one, two};
if (Number::one < Number::two)
{}
我的理解是,作用域枚举需要被大小写成底层类型或整数,然后才能应用到运算符 ==上。但看起来上面的代码 sn-p 可以在没有任何显式重载运算符< 的情况下工作。
我在 Enumeration declaration 中没有看到任何描述。
C++ 标准对作用域枚举默认支持哪些运算符有什么规定?
【问题讨论】:
-
该标准对此没有专门的部分。您需要检查每个 expression 并查看它是否支持枚举。如果不支持范围枚举,它会说 unscoped enumeration。