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