]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Remove.
authorPaolo Carlini <paolo.carlini@oracle.com>
Sun, 14 Nov 2010 18:41:01 +0000 (18:41 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sun, 14 Nov 2010 18:41:01 +0000 (18:41 +0000)
2010-11-14  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Remove.
(_Rb_tree_const_iterator<>::_M_const_cast): Add.
(_Rb_tree<>::erase, _M_insert_unique_): Adjust.
* include/debug/map.h (map<>::erase, insert): Fix C++0x signatures.
* include/debug/multimap.h (multimap<>::erase, insert): Likewise.
* include/debug/set.h (set<>::erase, insert): Fix, only cosmetic
changes in this case.
* include/debug/multiset.h (multiset<>::erase, insert): Likewise.
* include/profile/set.h (set<>::insert): Remove redundant macro.
* include/profile/multiset.h (multiset<>::insert): Likewise.
* include/bits/stl_set.h (set<>::insert): Likewise.
* include/bits/stl_multiset.h (multiset<>::insert): Likewise.

From-SVN: r166734

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_multiset.h
libstdc++-v3/include/bits/stl_set.h
libstdc++-v3/include/bits/stl_tree.h
libstdc++-v3/include/debug/map.h
libstdc++-v3/include/debug/multimap.h
libstdc++-v3/include/debug/multiset.h
libstdc++-v3/include/debug/set.h
libstdc++-v3/include/profile/multiset.h
libstdc++-v3/include/profile/set.h

index f5a97b3be7e5fb43fdf75dd7b5a72dee53d2c301..0e0418b87a9e4ca5a0eb5b9f181c3021d31fa97e 100644 (file)
@@ -1,3 +1,18 @@
+2010-11-14  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/bits/stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Remove.
+       (_Rb_tree_const_iterator<>::_M_const_cast): Add.
+       (_Rb_tree<>::erase, _M_insert_unique_): Adjust.
+       * include/debug/map.h (map<>::erase, insert): Fix C++0x signatures.
+       * include/debug/multimap.h (multimap<>::erase, insert): Likewise.
+       * include/debug/set.h (set<>::erase, insert): Fix, only cosmetic
+       changes in this case.
+       * include/debug/multiset.h (multiset<>::erase, insert): Likewise.
+       * include/profile/set.h (set<>::insert): Remove redundant macro.
+       * include/profile/multiset.h (multiset<>::insert): Likewise.
+       * include/bits/stl_set.h (set<>::insert): Likewise.
+       * include/bits/stl_multiset.h (multiset<>::insert): Likewise.
+
 2010-11-12  Ian Lance Taylor  <iant@google.com>
 
        PR other/46332
index 629da6b1ec66a4e097b15c8741c94d8f0e3fb9b6..58f902c53f099f8b7a2797139c7f429664fb1698 100644 (file)
@@ -423,11 +423,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  Insertion requires logarithmic time (if the hint is not taken).
        */
       iterator
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
       insert(const_iterator __position, const value_type& __x)
-#else
-      insert(iterator __position, const value_type& __x)
-#endif
       { return _M_t._M_insert_equal_(__position, __x); }
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
index c44b303fa99d8f20cb0058cbba9ad28632384bf4..8d82716d3cb1d79157aca6ff50566553352fce6f 100644 (file)
@@ -439,11 +439,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
        *  Insertion requires logarithmic time (if the hint is not taken).
        */
       iterator
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
       insert(const_iterator __position, const value_type& __x)
-#else
-      insert(iterator __position, const value_type& __x)
-#endif
       { return _M_t._M_insert_unique_(__position, __x); }
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
index 0974f9173d3785f832d79f0f8e3db4c66289ee0a..8919030631554150f64a3902cb9712bb58171a21 100644 (file)
@@ -247,6 +247,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Rb_tree_const_iterator(const iterator& __it)
       : _M_node(__it._M_node) { }
 
+      iterator
+      _M_const_cast() const
+      { return iterator(static_cast<typename iterator::_Link_type>
+                       (const_cast<typename iterator::_Base_ptr>(_M_node))); }
+
       reference
       operator*() const
       { return static_cast<_Link_type>(_M_node)->_M_value_field; }
@@ -556,11 +561,6 @@ _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))); }
-
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       template<typename _Arg>
         iterator
@@ -756,7 +756,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        const_iterator __result = __position;
        ++__result;
        _M_erase_aux(__position);
-       return _M_const_cast_iter(__result);
+       return __result._M_const_cast();
       }
 #else
       void
@@ -773,7 +773,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       erase(const_iterator __first, const_iterator __last)
       {
        _M_erase_aux(__first, __last);
-       return _M_const_cast_iter(__last);
+       return __last._M_const_cast();
       }
 #else
       void
@@ -1364,7 +1364,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        }
       else
        // Equivalent keys.
-       return _M_const_cast_iter(__position);
+       return __position._M_const_cast();
     }
 
   template<typename _Key, typename _Val, typename _KeyOfValue,
index aa5f6121468802ff8654e3ae3e81abbcf06c2b60..6e8858c6706fdc64f029e178b57714b03d61e715 100644 (file)
@@ -232,7 +232,11 @@ namespace __debug
 #endif
 
       iterator
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+      insert(const_iterator __position, const value_type& __x)
+#else
       insert(iterator __position, const value_type& __x)
+#endif
       {
        __glibcxx_check_insert(__position);
        return iterator(_Base::insert(__position.base(), __x), this);
@@ -262,7 +266,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __position)
+      erase(const_iterator __position)
       {
        __glibcxx_check_erase(__position);
        __position._M_invalidate();
@@ -294,14 +298,14 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __first, iterator __last)
+      erase(const_iterator __first, const_iterator __last)
       {
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 151. can't currently clear() empty container
        __glibcxx_check_erase_range(__first, __last);
        while (__first != __last)
          this->erase(__first++);
-       return __last;
+       return iterator(__last.base()._M_const_cast(), this);
       }
 #else
       void
index c3363b89f474dfa304fee761aa6dbbf3d0303344..56f58ffce3be9c98d675e57bb088c34e934d6fc9 100644 (file)
@@ -213,7 +213,11 @@ namespace __debug
 #endif
 
       iterator
-      insert(iterator __position, const value_type& __x)
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+      insert(const_iterator __position, const value_type& __x)
+#else
+      insert(iterator __position, const value_type& __x)       
+#endif
       {
        __glibcxx_check_insert(__position);
        return iterator(_Base::insert(__position.base(), __x), this);
@@ -243,7 +247,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __position)
+      erase(const_iterator __position)
       {
        __glibcxx_check_erase(__position);
        __position._M_invalidate();
@@ -276,14 +280,14 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __first, iterator __last)
+      erase(const_iterator __first, const_iterator __last)
       {
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 151. can't currently clear() empty container
        __glibcxx_check_erase_range(__first, __last);
        while (__first != __last)
          this->erase(__first++);
-       return __last;
+       return iterator(__last.base()._M_const_cast(), this);
       }
 #else
       void
index 76300cd8829b262a05d7f93a8e80d16005e6f621..9c950a1d0c21386a7bfc5efd28886463b26eca5a 100644 (file)
@@ -201,7 +201,7 @@ namespace __debug
 #endif
 
       iterator
-      insert(iterator __position, const value_type& __x)
+      insert(const_iterator __position, const value_type& __x)
       {
        __glibcxx_check_insert(__position);
        return iterator(_Base::insert(__position.base(), __x), this);
@@ -234,7 +234,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __position)
+      erase(const_iterator __position)
       {
        __glibcxx_check_erase(__position);
        __position._M_invalidate();
@@ -267,14 +267,14 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __first, iterator __last)
+      erase(const_iterator __first, const_iterator __last)
       {
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 151. can't currently clear() empty container
        __glibcxx_check_erase_range(__first, __last);
        while (__first != __last)
          this->erase(__first++);
-       return __last;
+       return __last; // iterator == const_iterator
       }
 #else
       void
index 6b4dd6ce0eb3f2250dc6dfc63bac7402be78a57e..b8ff463b2cfa161fa0dbcc41f784f921b2568048 100644 (file)
@@ -212,7 +212,7 @@ namespace __debug
 #endif
 
       iterator
-      insert(iterator __position, const value_type& __x)
+      insert(const_iterator __position, const value_type& __x)
       {
        __glibcxx_check_insert(__position);
        return iterator(_Base::insert(__position.base(), __x), this);
@@ -245,7 +245,7 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __position)
+      erase(const_iterator __position)
       {
        __glibcxx_check_erase(__position);
        __position._M_invalidate();
@@ -277,14 +277,14 @@ namespace __debug
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       iterator
-      erase(iterator __first, iterator __last)
+      erase(const_iterator __first, const_iterator __last)
       {
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 151. can't currently clear() empty container
        __glibcxx_check_erase_range(__first, __last);
        while (__first != __last)
          this->erase(__first++);
-       return __last;
+       return __last; // iterator == const_iterator
       }
 #else
       void
index d42a75530334d2835b37cbeddd63504aea1afbdd..ff95f881addc01fa4ef121b46b8e104c90043b68 100644 (file)
@@ -190,11 +190,7 @@ namespace __profile
 #endif
 
       iterator
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
       insert(const_iterator __position, const value_type& __x)
-#else
-      insert(iterator __position, const value_type& __x)
-#endif
       { return iterator(_Base::insert(__position, __x)); }
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
index 8fb489619742e300c09ea340f9405ed5fa6e5699..96b7be42ba54e352715bf381a07f3eaf42bf7742 100644 (file)
@@ -201,11 +201,7 @@ namespace __profile
 #endif
 
       iterator
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
       insert(const_iterator __position, const value_type& __x)
-#else
-      insert(iterator __position, const value_type& __x)
-#endif
       { return iterator(_Base::insert(__position, __x)); }
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__