three way comparison

全序(total order)和偏序(partial order)

集合\(X\)中有元素\(a\)、\(b\)和\(c\)

反对称性(antisymmetry)

如果 \(a < b\) 则一定有 \(!(a < b)\); 反之,如果 \( a > b \)则一定有 \( !(a < b) \)。

传递性(transitivity)

如果 \(a < b\)且\(b < c\) 则 \(a < c\)。

完全性

存在\(a > b\)、\(a < b\)及\(a == b\)三种关系。

满足三条全满足的称为全序,比如数字0, 1, 2, 3等。满足前两条的称为偏序,比如 1.1 < 1.2, 1.2 < 1.3而 NaN > Inf, NaN > NaN, NaN < NaN, NaN == NaN全为false。

由于主流编译器还未完全支持<=>,待续。。。

参考和引用