[gcc r14-1249] libstdc++: Add relational operators to __gnu_test::PointerBase

Jonathan Wakely redi@gcc.gnu.org
Thu May 25 23:17:15 GMT 2023


https://gcc.gnu.org/g:8d2fa90a41567670d2dbd4918d19d21d9bec4a8f

commit r14-1249-g8d2fa90a41567670d2dbd4918d19d21d9bec4a8f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu May 25 21:17:19 2023 +0100

    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.

Diff:
---
 libstdc++-v3/testsuite/util/testsuite_allocator.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index 9108ee40821..70dacb3fdf2 100644
--- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
@@ -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); }


More information about the Libstdc++-cvs mailing list