考虑:
enum class Number {one, two};
if (Number::one < Number::two)
{}
Run Code Online (Sandbox Code Playgroud)
我的理解是,scoped枚举需要被包装到底层类型或整数中,然后它可以应用于operator <> ==.但看起来上面的代码片段可以在没有任何显式重载运算符的情况下工作<.
我在枚举声明中没有看到任何描述.
C++标准说明默认情况下哪个运算符支持作用域枚举?
Rak*_*111 10
我的理解是,scoped enum需要被装入底层类型或整数,然后它可以应用于operator <> ==.
不是当它们都是作用域枚举时.SomeScopedEnum < SomeInt是不正确的,在这种情况下你是对的.
如果两个操作数(转换后)都是算术类型或枚举类型,则每个运算符应
true在指定关系为真且false是否为假时生成.