Return comparison value akin to opCmp.
Return true iff a == b.
Return true iff a >= b.
Return true iff a > b.
Return true iff a <= b.
Return true iff a < b.
alias compareSquares = Comparator!"a ^^ 2".compare; assert(compareSquares(1, 2) < 0); assert(compareSquares(1, -2) < 0); assert(compareSquares(-1, 1) == 0); assert(compareSquares(-2.0, 1) > 0); alias compareByLength = Comparator!"a.length".compare; assert(compareByLength([], [1]) < 0); assert(compareByLength([1, 2], [1]) > 0); assert(compareByLength([1, 2], ["1", "2"]) == 0); alias compareAbsInts = Comparator!("a > 0 ? a : -a").compare!(int); assert(compareSquares(1, 2) < 0); assert(compareSquares(1, -2) < 0); assert(compareSquares(-1, 1) == 0); assert(compareSquares(-2, 1) > 0); static assert(!__traits(compiles, compareAbsInts(-2.0, 1.0))); alias ltSquared = Comparator!("a ^^ 2").lt; assert(ltSquared(1, 2)); assert(ltSquared(1, -2)); assert(!ltSquared(-2, -1)); alias eqSquared = Comparator!("a ^^ 2").eq; assert(eqSquared(1, 1)); assert(eqSquared(1, -1)); assert(!eqSquared(1, 2));