Comparator

Undocumented in source.

Members

Functions

compare
int compare(S a, T b)

Return comparison value akin to opCmp.

eq
bool eq(S a, T b)

Return true iff a == b.

ge
bool ge(S a, T b)

Return true iff a >= b.

gt
bool gt(S a, T b)

Return true iff a > b.

le
bool le(S a, T b)

Return true iff a <= b.

lt
bool lt(S a, T b)

Return true iff a < b.

Examples

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));

Meta