OSDN Git Service

2010-11-09 Paolo Carlini <paolo.carlini@oracle.com>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Nov 2010 13:21:39 +0000 (13:21 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Nov 2010 13:21:39 +0000 (13:21 +0000)
* include/bits/stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Add
and use it throughout.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166487 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 3dfa2c3..7420831 100644 (file)
@@ -1,5 +1,10 @@
 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
        * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
        line number.
index b85398d..3ffd996 100644 (file)
@@ -557,6 +557,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
     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,