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

Why is there an `equivalent` value for std::strong_ordering?

std::strong_ordering 的有效值为 lessequalequivalentgreater。但是,strong_ordering::equivalentstrong_ordering::equal 似乎是相等的(,可互换),因为在这两种情况下,仅供说明的 value 字段等于零,并且没有其他状态可供仅用于说明的构造函数初始化。

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

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

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