static struct Foo{ ControlBlock!(int, int) c; int i; this(int i)pure nothrow @safe @nogc{ this.i = i; } } { const a = IntrusivePtr!Foo.make(42); const b = IntrusivePtr!Foo.make(123); const n = IntrusivePtr!Foo.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 = IntrusivePtr!Foo.make(42); const b = IntrusivePtr!Foo.make(123); assert(a <= a.element); assert(a.element >= a); assert((a < b.element) == !(a.element >= b)); assert((a > b.element) == !(a.element <= b)); }
Operators <, <=, >, >= for IntrusivePtr.
Compare address of payload.