https://gcc.gnu.org/g:5f02a4f5c66df222ca8db12cde510c387a962c2d

commit r15-5908-g5f02a4f5c66df222ca8db12cde510c387a962c2d
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Tue Nov 12 17:01:59 2024 +0000

    libstdc++: Stop using _Self typedefs in std::list iterators
    
    We can just use the injected-class-name instead of defining a new name.
    That seems simpler.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_list.h (_List_iterator): Remove _Self typedef
            and just use injected-class-name instead.
            (_List_const_iterator): Likewise.

Diff:
---
 libstdc++-v3/include/bits/stl_list.h | 40 +++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/libstdc++-v3/include/bits/stl_list.h 
b/libstdc++-v3/include/bits/stl_list.h
index dfdab6e511a9..db6b31fdc166 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -255,7 +255,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
   template<typename _Tp>
     struct _List_iterator
     {
-      typedef _List_iterator<_Tp>              _Self;
       typedef _List_node<_Tp>                  _Node;
 
       typedef ptrdiff_t                                difference_type;
@@ -271,7 +270,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       _List_iterator(__detail::_List_node_base* __x) _GLIBCXX_NOEXCEPT
       : _M_node(__x) { }
 
-      _Self
+      _List_iterator
       _M_const_cast() const _GLIBCXX_NOEXCEPT
       { return *this; }
 
@@ -286,45 +285,47 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       operator->() const _GLIBCXX_NOEXCEPT
       { return static_cast<_Node*>(_M_node)->_M_valptr(); }
 
-      _Self&
+      _List_iterator&
       operator++() _GLIBCXX_NOEXCEPT
       {
        _M_node = _M_node->_M_next;
        return *this;
       }
 
-      _Self
+      _List_iterator
       operator++(int) _GLIBCXX_NOEXCEPT
       {
-       _Self __tmp = *this;
+       _List_iterator __tmp = *this;
        _M_node = _M_node->_M_next;
        return __tmp;
       }
 
-      _Self&
+      _List_iterator&
       operator--() _GLIBCXX_NOEXCEPT
       {
        _M_node = _M_node->_M_prev;
        return *this;
       }
 
-      _Self
+      _List_iterator
       operator--(int) _GLIBCXX_NOEXCEPT
       {
-       _Self __tmp = *this;
+       _List_iterator __tmp = *this;
        _M_node = _M_node->_M_prev;
        return __tmp;
       }
 
       _GLIBCXX_NODISCARD
       friend bool
-      operator==(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT
+      operator==(const _List_iterator& __x,
+                const _List_iterator& __y) _GLIBCXX_NOEXCEPT
       { return __x._M_node == __y._M_node; }
 
 #if __cpp_impl_three_way_comparison < 201907L
       _GLIBCXX_NODISCARD
       friend bool
-      operator!=(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT
+      operator!=(const _List_iterator& __x,
+                const _List_iterator& __y) _GLIBCXX_NOEXCEPT
       { return __x._M_node != __y._M_node; }
 #endif
 
@@ -340,7 +341,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
   template<typename _Tp>
     struct _List_const_iterator
     {
-      typedef _List_const_iterator<_Tp>                _Self;
       typedef const _List_node<_Tp>            _Node;
       typedef _List_iterator<_Tp>              iterator;
 
@@ -376,45 +376,47 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       operator->() const _GLIBCXX_NOEXCEPT
       { return static_cast<_Node*>(_M_node)->_M_valptr(); }
 
-      _Self&
+      _List_const_iterator&
       operator++() _GLIBCXX_NOEXCEPT
       {
        _M_node = _M_node->_M_next;
        return *this;
       }
 
-      _Self
+      _List_const_iterator
       operator++(int) _GLIBCXX_NOEXCEPT
       {
-       _Self __tmp = *this;
+       _List_const_iterator __tmp = *this;
        _M_node = _M_node->_M_next;
        return __tmp;
       }
 
-      _Self&
+      _List_const_iterator&
       operator--() _GLIBCXX_NOEXCEPT
       {
        _M_node = _M_node->_M_prev;
        return *this;
       }
 
-      _Self
+      _List_const_iterator
       operator--(int) _GLIBCXX_NOEXCEPT
       {
-       _Self __tmp = *this;
+       _List_const_iterator __tmp = *this;
        _M_node = _M_node->_M_prev;
        return __tmp;
       }
 
       _GLIBCXX_NODISCARD
       friend bool
-      operator==(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT
+      operator==(const _List_const_iterator& __x,
+                const _List_const_iterator& __y) _GLIBCXX_NOEXCEPT
       { return __x._M_node == __y._M_node; }
 
 #if __cpp_impl_three_way_comparison < 201907L
       _GLIBCXX_NODISCARD
       friend bool
-      operator!=(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT
+      operator!=(const _List_const_iterator& __x,
+                const _List_const_iterator& __y) _GLIBCXX_NOEXCEPT
       { return __x._M_node != __y._M_node; }
 #endif

Reply via email to