libstdc++: Add relational operators to __gnu_test::PointerBase

The Cpp17Allocator requirements say that an allocator's pointer and
const_pointer types must meet the Cpp17RandomAccessIterator
requirements. That means our PointerBase helper for defining fancy
pointer types should support the full set of relational operators.

libstdc++-v3/ChangeLog:

	* testsuite/util/testsuite_allocator.h (PointerBase): Add
	relational operators.
This commit is contained in:
Jonathan Wakely 2023-05-25 21:17:19 +01:00
parent d156c60542
commit 8d2fa90a41

View file

@ -719,6 +719,15 @@ namespace __gnu_test
friend std::ptrdiff_t operator-(PointerBase l, PointerBase r)
{ return l.value - r.value; }
friend bool operator<(PointerBase l, PointerBase r)
{ return l.value < r.value; }
friend bool operator>(PointerBase l, PointerBase r)
{ return l.value > r.value; }
friend bool operator<=(PointerBase l, PointerBase r)
{ return l.value <= r.value; }
friend bool operator>=(PointerBase l, PointerBase r)
{ return l.value >= r.value; }
Derived&
derived() { return static_cast<Derived&>(*this); }