为什么 std::strong_ordering 有一个“等效”值?
Why is there an `equivalent` value for std::strong_ordering?
std::strong_ordering
的有效值为 less
、equal
、equivalent
和 greater
。但是,strong_ordering::equivalent
和 strong_ordering::equal
似乎是相等的( 即 ,可互换),因为在这两种情况下,仅供说明的 value
字段等于零,并且没有其他状态可供仅用于说明的构造函数初始化。
strong_ordering
没有任何 单独的 equivalent
值是有道理的,因为当排序很强时,等效值总是相等的。但是让 strong_ordering::equivalent
成为 strong_ordering::equal
的同义词而不是根本不定义它有什么意义呢?
这允许为所有比较类别 C
定义 C::equivalent
。以前有五个,都有这个,现在只有三个了。
如果你需要这样的东西,拥有它会很有帮助。而且它不需要任何费用,所以...就是这样。
std::strong_ordering
的有效值为 less
、equal
、equivalent
和 greater
。但是,strong_ordering::equivalent
和 strong_ordering::equal
似乎是相等的( 即 ,可互换),因为在这两种情况下,仅供说明的 value
字段等于零,并且没有其他状态可供仅用于说明的构造函数初始化。
strong_ordering
没有任何 单独的 equivalent
值是有道理的,因为当排序很强时,等效值总是相等的。但是让 strong_ordering::equivalent
成为 strong_ordering::equal
的同义词而不是根本不定义它有什么意义呢?
这允许为所有比较类别 C
定义 C::equivalent
。以前有五个,都有这个,现在只有三个了。
如果你需要这样的东西,拥有它会很有帮助。而且它不需要任何费用,所以...就是这样。