diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2010-11-14 18:41:01 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2010-11-14 18:41:01 +0000 |
commit | 6b6d5d092292a33a5463f18b8d55e9818e5f8c02 (patch) | |
tree | fcb23e8bb645ab48cfb497aef32b65dbdf8d822d | |
parent | fc3f9236ec74805ed3b82f0839aa123b13d3a0f4 (diff) | |
download | gcc-6b6d5d092292a33a5463f18b8d55e9818e5f8c02.zip gcc-6b6d5d092292a33a5463f18b8d55e9818e5f8c02.tar.gz gcc-6b6d5d092292a33a5463f18b8d55e9818e5f8c02.tar.bz2 |
stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Remove.
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
-rw-r--r-- | libstdc++-v3/ChangeLog | 15 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_multiset.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_set.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_tree.h | 16 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/map.h | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/multimap.h | 12 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/multiset.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/set.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/profile/multiset.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/profile/set.h | 4 |
10 files changed, 46 insertions, 39 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index f5a97b3..0e0418b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -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 diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h index 629da6b..58f902c 100644 --- a/libstdc++-v3/include/bits/stl_multiset.h +++ b/libstdc++-v3/include/bits/stl_multiset.h @@ -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__ diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h index c44b303..8d82716 100644 --- a/libstdc++-v3/include/bits/stl_set.h +++ b/libstdc++-v3/include/bits/stl_set.h @@ -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__ diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h index 0974f91..8919030 100644 --- a/libstdc++-v3/include/bits/stl_tree.h +++ b/libstdc++-v3/include/bits/stl_tree.h @@ -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, diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h index aa5f612..6e8858c 100644 --- a/libstdc++-v3/include/debug/map.h +++ b/libstdc++-v3/include/debug/map.h @@ -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 diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h index c3363b8..56f58ff 100644 --- a/libstdc++-v3/include/debug/multimap.h +++ b/libstdc++-v3/include/debug/multimap.h @@ -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 diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h index 76300cd..9c950a1 100644 --- a/libstdc++-v3/include/debug/multiset.h +++ b/libstdc++-v3/include/debug/multiset.h @@ -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 diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h index 6b4dd6c..b8ff463 100644 --- a/libstdc++-v3/include/debug/set.h +++ b/libstdc++-v3/include/debug/set.h @@ -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 diff --git a/libstdc++-v3/include/profile/multiset.h b/libstdc++-v3/include/profile/multiset.h index d42a755..ff95f88 100644 --- a/libstdc++-v3/include/profile/multiset.h +++ b/libstdc++-v3/include/profile/multiset.h @@ -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__ diff --git a/libstdc++-v3/include/profile/set.h b/libstdc++-v3/include/profile/set.h index 8fb4896..96b7be4 100644 --- a/libstdc++-v3/include/profile/set.h +++ b/libstdc++-v3/include/profile/set.h @@ -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__ |