【发布时间】:2011-03-03 02:52:28
【问题描述】:
为什么强类型 C++0x 枚举的实例不能相互比较?
更新:它们在 gcc 4.6 中具有可比性;我不确定它是否适用于 gcc 4.4。
【问题讨论】:
-
因为它是强类型的:)
-
我认为真正的问题是“强类型是什么意思?”。
-
@phresnel: strong typing; strongly-typed enumerations in C++0x
-
另外,为了捍卫我的问题,默认定义比较运算符也不会很疯狂,因为枚举是基于整数类型的,这是可比较的。用户定义的行为,或者没有比较,仍然是可能的,尽管我认为这是一种罕见的情况。
-
@NeilG:但强类型枚举的全部意义在于防止意外误用。使用类型系统的优势与高级 C++ 循环中的罕见情况完全相反,如果您想启用需要比较苹果和橙子的非常罕见的情况,您可以通过编写自己的比较运算符来实现。还是你问为什么没有一种弱类型枚举?
标签: c++ enums c++11 enum-class