Function SharedPtr.opCmp

Operators <, <=, >, >= for SharedPtr.

sizediff_t opCmp (
  typeof(null) nil
) const pure nothrow @nogc scope @trusted;

sizediff_t opCmp(Elm) (
  scope const Elm elm
) const pure nothrow @nogc scope @trusted
if (is(Elm : GetElementReferenceType!(typeof(this))));

sizediff_t opCmp(Rhs) (
  auto scope const ref Rhs rhs
) const pure nothrow @nogc scope @trusted
if (isSharedPtr!Rhs && !is(Rhs == shared));

Compare address of payload.

Examples

{
	const a = SharedPtr!long.make(42);
	const b = SharedPtr!long.make(123);
	const n = SharedPtr!long.init;

	assert(a <= a);
	assert(a >= a);

	assert((a < b) == !(a >= b));
	assert((a > b) == !(a <= b));

	assert(a > n);
	assert(a > null);

	assert(n < a);
	assert(null < a);
}

{
	const a = SharedPtr!long.make(42);
	const b = SharedPtr!long.make(123);

	assert(a <= a.element);
	assert(a.element >= a);

	assert((a < b.element) == !(a.element >= b));
	assert((a > b.element) == !(a.element <= b));
}