From 784779d47117cf90c1facb844d4845ba7c97bd34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Dumont?= Date: Wed, 3 Oct 2018 05:50:01 +0000 Subject: [PATCH] =?UTF-8?q?2018-10-03=20=20Fran=C3=A7ois=20Dumont=20=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * include/debug/map.h (map<>::emplace<>(_Args&&...)): Use C++11 direct initialization. (map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. (map<>::insert(value_type&&)): Likewise. (map<>::insert<>(_Pair&&)): Likewise. (map<>::insert<>(const_iterator, _Pair&&)): Likewise. (map<>::try_emplace): Likewise. (map<>::insert_or_assign): Likewise. (map<>::insert(node_type&&)): Likewise. (map<>::insert(const_iterator, node_type&&)): Likewise. (map<>::erase(const_iterator)): Likewise. (map<>::erase(const_iterator, const_iterator)): Likewise. * include/debug/multimap.h (multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization. (multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. (multimap<>::insert<>(_Pair&&)): Likewise. (multimap<>::insert<>(const_iterator, _Pair&&)): Likewise. (multimap<>::insert(node_type&&)): Likewise. (multimap<>::insert(const_iterator, node_type&&)): Likewise. (multimap<>::erase(const_iterator)): Likewise. (multimap<>::erase(const_iterator, const_iterator)): Likewise. * include/debug/set.h (set<>::emplace<>(_Args&&...)): Use C++11 direct initialization. (set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. (set<>::insert(value_type&&)): Likewise. (set<>::insert<>(const_iterator, value_type&&)): Likewise. (set<>::insert(const_iterator, node_type&&)): Likewise. (set<>::erase(const_iterator)): Likewise. (set<>::erase(const_iterator, const_iterator)): Likewise. * include/debug/multiset.h (multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization. (multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. (multiset<>::insert<>(value_type&&)): Likewise. (multiset<>::insert<>(const_iterator, value_type&&)): Likewise. (multiset<>::insert(node_type&&)): Likewise. (multiset<>::insert(const_iterator, node_type&&)): Likewise. (multiset<>::erase(const_iterator)): Likewise. (multiset<>::erase(const_iterator, const_iterator)): Likewise. From-SVN: r264805 --- libstdc++-v3/ChangeLog | 41 ++++++++++++++ libstdc++-v3/include/debug/map.h | 82 ++++++++++++++++----------- libstdc++-v3/include/debug/multimap.h | 30 +++++----- libstdc++-v3/include/debug/multiset.h | 27 +++++---- libstdc++-v3/include/debug/set.h | 27 +++++---- 5 files changed, 132 insertions(+), 75 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 30ff00af139..fe0fbf7bbdc 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,44 @@ +2018-10-03 François Dumont + + * include/debug/map.h + (map<>::emplace<>(_Args&&...)): Use C++11 direct initialization. + (map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. + (map<>::insert(value_type&&)): Likewise. + (map<>::insert<>(_Pair&&)): Likewise. + (map<>::insert<>(const_iterator, _Pair&&)): Likewise. + (map<>::try_emplace): Likewise. + (map<>::insert_or_assign): Likewise. + (map<>::insert(node_type&&)): Likewise. + (map<>::insert(const_iterator, node_type&&)): Likewise. + (map<>::erase(const_iterator)): Likewise. + (map<>::erase(const_iterator, const_iterator)): Likewise. + * include/debug/multimap.h + (multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization. + (multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. + (multimap<>::insert<>(_Pair&&)): Likewise. + (multimap<>::insert<>(const_iterator, _Pair&&)): Likewise. + (multimap<>::insert(node_type&&)): Likewise. + (multimap<>::insert(const_iterator, node_type&&)): Likewise. + (multimap<>::erase(const_iterator)): Likewise. + (multimap<>::erase(const_iterator, const_iterator)): Likewise. + * include/debug/set.h + (set<>::emplace<>(_Args&&...)): Use C++11 direct initialization. + (set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. + (set<>::insert(value_type&&)): Likewise. + (set<>::insert<>(const_iterator, value_type&&)): Likewise. + (set<>::insert(const_iterator, node_type&&)): Likewise. + (set<>::erase(const_iterator)): Likewise. + (set<>::erase(const_iterator, const_iterator)): Likewise. + * include/debug/multiset.h + (multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization. + (multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. + (multiset<>::insert<>(value_type&&)): Likewise. + (multiset<>::insert<>(const_iterator, value_type&&)): Likewise. + (multiset<>::insert(node_type&&)): Likewise. + (multiset<>::insert(const_iterator, node_type&&)): Likewise. + (multiset<>::erase(const_iterator)): Likewise. + (multiset<>::erase(const_iterator, const_iterator)): Likewise. + 2018-10-02 Marc Glisse PR libstdc++/87258 diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h index f4b4e8d2ad9..a885859592b 100644 --- a/libstdc++-v3/include/debug/map.h +++ b/libstdc++-v3/include/debug/map.h @@ -240,8 +240,7 @@ namespace __debug emplace(_Args&&... __args) { auto __res = _Base::emplace(std::forward<_Args>(__args)...); - return std::pair(iterator(__res.first, this), - __res.second); + return { { __res.first, this }, __res.second }; } template @@ -249,9 +248,11 @@ namespace __debug emplace_hint(const_iterator __pos, _Args&&... __args) { __glibcxx_check_insert(__pos); - return iterator(_Base::emplace_hint(__pos.base(), - std::forward<_Args>(__args)...), - this); + return + { + _Base::emplace_hint(__pos.base(), std::forward<_Args>(__args)...), + this + }; } #endif @@ -270,7 +271,7 @@ namespace __debug insert(value_type&& __x) { auto __res = _Base::insert(std::move(__x)); - return { iterator(__res.first, this), __res.second }; + return { { __res.first, this }, __res.second }; } template insert(_Pair&& __x) { - std::pair<_Base_iterator, bool> __res - = _Base::insert(std::forward<_Pair>(__x)); - return std::pair(iterator(__res.first, this), - __res.second); + auto __res = _Base::insert(std::forward<_Pair>(__x)); + return { { __res.first, this }, __res.second }; } #endif @@ -320,8 +319,11 @@ namespace __debug insert(const_iterator __position, _Pair&& __x) { __glibcxx_check_insert(__position); - return iterator(_Base::insert(__position.base(), - std::forward<_Pair>(__x)), this); + return + { + _Base::insert(__position.base(), std::forward<_Pair>(__x)), + this + }; } #endif @@ -347,7 +349,7 @@ namespace __debug { auto __res = _Base::try_emplace(__k, std::forward<_Args>(__args)...); - return { iterator(__res.first, this), __res.second }; + return { { __res.first, this }, __res.second }; } template @@ -356,7 +358,7 @@ namespace __debug { auto __res = _Base::try_emplace(std::move(__k), std::forward<_Args>(__args)...); - return { iterator(__res.first, this), __res.second }; + return { { __res.first, this }, __res.second }; } template @@ -365,9 +367,12 @@ namespace __debug _Args&&... __args) { __glibcxx_check_insert(__hint); - return iterator(_Base::try_emplace(__hint.base(), __k, - std::forward<_Args>(__args)...), - this); + return + { + _Base::try_emplace(__hint.base(), __k, + std::forward<_Args>(__args)...), + this + }; } template @@ -375,9 +380,12 @@ namespace __debug try_emplace(const_iterator __hint, key_type&& __k, _Args&&... __args) { __glibcxx_check_insert(__hint); - return iterator(_Base::try_emplace(__hint.base(), std::move(__k), - std::forward<_Args>(__args)...), - this); + return + { + _Base::try_emplace(__hint.base(), std::move(__k), + std::forward<_Args>(__args)...), + this + }; } template @@ -386,7 +394,7 @@ namespace __debug { auto __res = _Base::insert_or_assign(__k, std::forward<_Obj>(__obj)); - return { iterator(__res.first, this), __res.second }; + return { { __res.first, this }, __res.second }; } template @@ -395,7 +403,7 @@ namespace __debug { auto __res = _Base::insert_or_assign(std::move(__k), std::forward<_Obj>(__obj)); - return { iterator(__res.first, this), __res.second }; + return { { __res.first, this }, __res.second }; } template @@ -404,9 +412,12 @@ namespace __debug const key_type& __k, _Obj&& __obj) { __glibcxx_check_insert(__hint); - return iterator(_Base::insert_or_assign(__hint.base(), __k, - std::forward<_Obj>(__obj)), - this); + return + { + _Base::insert_or_assign(__hint.base(), __k, + std::forward<_Obj>(__obj)), + this + }; } template @@ -414,10 +425,12 @@ namespace __debug insert_or_assign(const_iterator __hint, key_type&& __k, _Obj&& __obj) { __glibcxx_check_insert(__hint); - return iterator(_Base::insert_or_assign(__hint.base(), - std::move(__k), - std::forward<_Obj>(__obj)), - this); + return + { + _Base::insert_or_assign(__hint.base(), std::move(__k), + std::forward<_Obj>(__obj)), + this + }; } #endif // C++17 @@ -446,15 +459,15 @@ namespace __debug insert(node_type&& __nh) { auto __ret = _Base::insert(std::move(__nh)); - iterator __pos = iterator(__ret.position, this); - return { __pos, __ret.inserted, std::move(__ret.node) }; + return + { { __ret.position, this }, __ret.inserted, std::move(__ret.node) }; } iterator insert(const_iterator __hint, node_type&& __nh) { __glibcxx_check_insert(__hint); - return iterator(_Base::insert(__hint.base(), std::move(__nh)), this); + return { _Base::insert(__hint.base(), std::move(__nh)), this }; } using _Base::merge; @@ -466,7 +479,7 @@ namespace __debug { __glibcxx_check_erase(__position); this->_M_invalidate_if(_Equal(__position.base())); - return iterator(_Base::erase(__position.base()), this); + return { _Base::erase(__position.base()), this }; } iterator @@ -512,7 +525,8 @@ namespace __debug ._M_iterator(__last, "last")); this->_M_invalidate_if(_Equal(__victim)); } - return iterator(_Base::erase(__first.base(), __last.base()), this); + + return { _Base::erase(__first.base(), __last.base()), this }; } #else void diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h index 992ccf07536..50500d66f70 100644 --- a/libstdc++-v3/include/debug/multimap.h +++ b/libstdc++-v3/include/debug/multimap.h @@ -228,18 +228,18 @@ namespace __debug template iterator emplace(_Args&&... __args) - { - return iterator(_Base::emplace(std::forward<_Args>(__args)...), this); - } + { return { _Base::emplace(std::forward<_Args>(__args)...), this }; } template iterator emplace_hint(const_iterator __pos, _Args&&... __args) { __glibcxx_check_insert(__pos); - return iterator(_Base::emplace_hint(__pos.base(), - std::forward<_Args>(__args)...), - this); + return + { + _Base::emplace_hint(__pos.base(), std::forward<_Args>(__args)...), + this + }; } #endif @@ -259,7 +259,7 @@ namespace __debug _Pair&&>::value>::type> iterator insert(_Pair&& __x) - { return iterator(_Base::insert(std::forward<_Pair>(__x)), this); } + { return { _Base::insert(std::forward<_Pair>(__x)), this }; } #endif #if __cplusplus >= 201103L @@ -296,8 +296,11 @@ namespace __debug insert(const_iterator __position, _Pair&& __x) { __glibcxx_check_insert(__position); - return iterator(_Base::insert(__position.base(), - std::forward<_Pair>(__x)), this); + return + { + _Base::insert(__position.base(), std::forward<_Pair>(__x)), + this + }; } #endif @@ -337,13 +340,13 @@ namespace __debug iterator insert(node_type&& __nh) - { return iterator(_Base::insert(std::move(__nh)), this); } + { return { _Base::insert(std::move(__nh)), this }; } iterator insert(const_iterator __hint, node_type&& __nh) { __glibcxx_check_insert(__hint); - return iterator(_Base::insert(__hint.base(), std::move(__nh)), this); + return { _Base::insert(__hint.base(), std::move(__nh)), this }; } using _Base::merge; @@ -355,7 +358,7 @@ namespace __debug { __glibcxx_check_erase(__position); this->_M_invalidate_if(_Equal(__position.base())); - return iterator(_Base::erase(__position.base()), this); + return { _Base::erase(__position.base()), this }; } iterator @@ -403,7 +406,8 @@ namespace __debug ._M_iterator(__last, "last")); this->_M_invalidate_if(_Equal(__victim)); } - return iterator(_Base::erase(__first.base(), __last.base()), this); + + return { _Base::erase(__first.base(), __last.base()), this }; } #else void diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h index fa747ff9c36..d292a14ca8c 100644 --- a/libstdc++-v3/include/debug/multiset.h +++ b/libstdc++-v3/include/debug/multiset.h @@ -228,19 +228,18 @@ namespace __debug template iterator emplace(_Args&&... __args) - { - return iterator(_Base::emplace(std::forward<_Args>(__args)...), - this); - } + { return { _Base::emplace(std::forward<_Args>(__args)...), this }; } template iterator emplace_hint(const_iterator __pos, _Args&&... __args) { __glibcxx_check_insert(__pos); - return iterator(_Base::emplace_hint(__pos.base(), - std::forward<_Args>(__args)...), - this); + return + { + _Base::emplace_hint(__pos.base(), std::forward<_Args>(__args)...), + this + }; } #endif @@ -251,7 +250,7 @@ namespace __debug #if __cplusplus >= 201103L iterator insert(value_type&& __x) - { return iterator(_Base::insert(std::move(__x)), this); } + { return { _Base::insert(std::move(__x)), this }; } #endif iterator @@ -266,8 +265,7 @@ namespace __debug insert(const_iterator __position, value_type&& __x) { __glibcxx_check_insert(__position); - return iterator(_Base::insert(__position.base(), std::move(__x)), - this); + return { _Base::insert(__position.base(), std::move(__x)), this }; } #endif @@ -313,13 +311,13 @@ namespace __debug iterator insert(node_type&& __nh) - { return iterator(_Base::insert(std::move(__nh)), this); } + { return { _Base::insert(std::move(__nh)), this }; } iterator insert(const_iterator __hint, node_type&& __nh) { __glibcxx_check_insert(__hint); - return iterator(_Base::insert(__hint.base(), std::move(__nh)), this); + return { _Base::insert(__hint.base(), std::move(__nh)), this }; } using _Base::merge; @@ -331,7 +329,7 @@ namespace __debug { __glibcxx_check_erase(__position); this->_M_invalidate_if(_Equal(__position.base())); - return iterator(_Base::erase(__position.base()), this); + return { _Base::erase(__position.base()), this }; } #else void @@ -375,7 +373,8 @@ namespace __debug ._M_iterator(__last, "last")); this->_M_invalidate_if(_Equal(__victim)); } - return iterator(_Base::erase(__first.base(), __last.base()), this); + + return { _Base::erase(__first.base(), __last.base()), this }; } #else void diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h index 6f1a5070b2b..ed75f0f174f 100644 --- a/libstdc++-v3/include/debug/set.h +++ b/libstdc++-v3/include/debug/set.h @@ -229,8 +229,7 @@ namespace __debug emplace(_Args&&... __args) { auto __res = _Base::emplace(std::forward<_Args>(__args)...); - return std::pair(iterator(__res.first, this), - __res.second); + return { { __res.first, this }, __res.second }; } template @@ -238,9 +237,11 @@ namespace __debug emplace_hint(const_iterator __pos, _Args&&... __args) { __glibcxx_check_insert(__pos); - return iterator(_Base::emplace_hint(__pos.base(), - std::forward<_Args>(__args)...), - this); + return + { + _Base::emplace_hint(__pos.base(), std::forward<_Args>(__args)...), + this + }; } #endif @@ -256,10 +257,8 @@ namespace __debug std::pair insert(value_type&& __x) { - std::pair<_Base_iterator, bool> __res - = _Base::insert(std::move(__x)); - return std::pair(iterator(__res.first, this), - __res.second); + auto __res = _Base::insert(std::move(__x)); + return { { __res.first, this }, __res.second }; } #endif @@ -275,8 +274,7 @@ namespace __debug insert(const_iterator __position, value_type&& __x) { __glibcxx_check_insert(__position); - return iterator(_Base::insert(__position.base(), std::move(__x)), - this); + return { _Base::insert(__position.base(), std::move(__x)), this }; } #endif @@ -333,7 +331,7 @@ namespace __debug insert(const_iterator __hint, node_type&& __nh) { __glibcxx_check_insert(__hint); - return iterator(_Base::insert(__hint.base(), std::move(__nh)), this); + return { _Base::insert(__hint.base(), std::move(__nh)), this }; } using _Base::merge; @@ -345,7 +343,7 @@ namespace __debug { __glibcxx_check_erase(__position); this->_M_invalidate_if(_Equal(__position.base())); - return iterator(_Base::erase(__position.base()), this); + return { _Base::erase(__position.base()), this }; } #else void @@ -387,7 +385,8 @@ namespace __debug ._M_iterator(__last, "last")); this->_M_invalidate_if(_Equal(__victim)); } - return iterator(_Base::erase(__first.base(), __last.base()), this); + + return { _Base::erase(__first.base(), __last.base()), this }; } #else void