强类型C++ 0x枚举比较

Nei*_*l G 8 c++ enums c++11 enum-class

为什么不是强类型C++ 0x枚举的实例可以相互比较?


更新:它们在gcc 4.6中具有可比性; 我不确定它是否适用于gcc 4.4.

Kla*_*aim 8

如果你使用强类型的枚举,就像把你的枚举变成一个真正的类,一个类.然后它遵循与类相同的规则.

默认情况下,不能将不同类的实例相互比较.您必须定义比较函数(或成员函数)以使它们具有可比性.

因此,强列表的枚举使得它遵循这个相同的规则.

  • 如果没有能够与另一个进行比较,我认为没有任何用途.IMO,比较*same*类型的枚举实例*不是*误用. (5认同)
  • @balki我不明白你的评论.枚举类不禁止枚举与相同类型的比较,它禁止与其他类型进行比较.我会添加一个精度,以防它不清楚. (2认同)
  • 是.但问题是关于相同类型的枚举.然而现在问题和答案都很明确. (2认同)