stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Add and use it throughout.
authorPaolo Carlini <paolo.carlini@oracle.com>
Tue, 9 Nov 2010 13:21:39 +0000 (13:21 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Tue, 9 Nov 2010 13:21:39 +0000 (13:21 +0000)
2010-11-09  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Add
and use it throughout.

From-SVN: r166487

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_tree.h

index 3dfa2c3b1474f04cc1b893e2c62142f1181fe0b1..742083107b0006330d41081b010919b361370b84 100644 (file)
@@ -1,3 +1,8 @@
+2010-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/bits/stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Add
+       and use it throughout.
+
 2010-11-09  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR libstdc++/46385
index b85398de3f3ebc0f28c0891d2d7de3860fa356a2..3ffd996ae93a1f52c3026a5c4d28d87b6a3a43b3 100644 (file)
@@ -556,6 +556,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
 
     private:
+      iterator
+      _M_const_cast_iter(const_iterator __cit)
+      { return iterator(static_cast<_Link_type>
+                       (const_cast<_Base_ptr>(__cit._M_node))); }
+
       iterator
       _M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __y,
                 const value_type& __v);
@@ -719,8 +724,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        const_iterator __result = __position;
        ++__result;
        _M_erase_aux(__position);
-       return iterator(static_cast<_Link_type>
-                       (const_cast<_Base_ptr>(__result._M_node)));
+       return _M_const_cast_iter(__result);
       }
 #else
       void
@@ -737,8 +741,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       erase(const_iterator __first, const_iterator __last)
       {
        _M_erase_aux(__first, __last);
-       return iterator(static_cast<_Link_type>
-                       (const_cast<_Base_ptr>(__last._M_node)));
+       return _M_const_cast_iter(__last);
       }
 #else
       void
@@ -1279,8 +1282,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        }
       else
        // Equivalent keys.
-       return iterator(static_cast<_Link_type>
-                       (const_cast<_Base_ptr>(__position._M_node)));
+       return _M_const_cast_iter(__position);
     }
 
   template<typename _Key, typename _Val, typename _KeyOfValue,