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。
由于主流编译器还未完全支持<=>,待续。。。