为什么 std::strong_ordering 有一个“等效”值?

Bri*_*ian 3 c++ spaceship-operator c++20

的有效值std::strong_orderinglessequalequivalent,和greater。然而,似乎strong_ordering::equivalentstrong_ordering::equal是相等的(,可互换),因为在这两种情况下,仅展示value字段都为零,并且仅展示构造函数没有其他状态可以初始化。

strong_ordering没有任何单独的 equivalent值是有道理的,因为当排序很强时,等效值总是相等的。但是为 制作strong_ordering::equivalent同义词strong_ordering::equal而不是根本不定义它有什么意义呢?

Bar*_*rry 6

这允许C::equivalent为所有比较类别定义C。以前有五个,全都有这个,现在只有三个。

如果你需要这样的东西,拥有它会有所帮助。提供它不需要任何费用,所以......它就是这样。