diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-28 16:01:05 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-28 16:01:05 +0000 |
| commit | 802d83c31a1be0063de7ee1e328c44635e592330 (patch) | |
| tree | 8c058c4b504e6a5cbf998753e6c41978cf0ba81f /libstdc++-v3/include/debug/unordered_set | |
| parent | 7899be63a386ee42db6177cb40d68d9f03e078ab (diff) | |
| download | ppe42-gcc-802d83c31a1be0063de7ee1e328c44635e592330.tar.gz ppe42-gcc-802d83c31a1be0063de7ee1e328c44635e592330.zip | |
2010-10-28 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/44436 (partial)
* include/bits/hashtable.h (_Hashtable<>::insert(value_type&&),
insert(_Pair&&), insert(const_iterator, value_type&&),
insert(const_iterator, _Pair&&)): Add.
(_M_allocate_node, _M_insert, _M_insert_bucket): Templatize.
* include/bits/hashtable_policy.h (__detail::_Select1st): Add; use
it throughout.
(_Map_base<>::operator[](_Key&&)): Add.
* include/bits/unordered_map.h: Use __detail::_Select1st throughout.
* include/debug/unordered_map: Update.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/util/testsuite_rvalref.h (struct hash<rvalstruct>): Add;
minor tweaks throughout, use deleted special members.
* testsuite/23_containers/unordered_map/insert/map_single_move-1.cc:
New.
* testsuite/23_containers/unordered_map/insert/map_single_move-2.cc:
Likewise.
* testsuite/23_containers/unordered_map/insert/array_syntax_move.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_single_move-1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_single_move-2.cc: Likewise.
* testsuite/23_containers/unordered_set/insert/set_single_move.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/insert/
multiset_single_move.cc: Likewise.
* testsuite/23_containers/unordered_map/insert/array_syntax.cc:
Minor cosmetic changes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166030 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/debug/unordered_set')
| -rw-r--r-- | libstdc++-v3/include/debug/unordered_set | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libstdc++-v3/include/debug/unordered_set b/libstdc++-v3/include/debug/unordered_set index ea90c675476..1d42905e236 100644 --- a/libstdc++-v3/include/debug/unordered_set +++ b/libstdc++-v3/include/debug/unordered_set @@ -190,6 +190,22 @@ namespace __debug return iterator(__res.first, this); } + std::pair<iterator, bool> + insert(value_type&& __obj) + { + typedef std::pair<typename _Base::iterator, bool> __pair_type; + __pair_type __res = _Base::insert(std::move(__obj)); + return std::make_pair(iterator(__res.first, this), __res.second); + } + + iterator + insert(const_iterator, value_type&& __obj) + { + typedef std::pair<typename _Base::iterator, bool> __pair_type; + __pair_type __res = _Base::insert(std::move(__obj)); + return iterator(__res.first, this); + } + void insert(std::initializer_list<value_type> __l) { _Base::insert(__l); } @@ -440,6 +456,14 @@ namespace __debug insert(const_iterator, const value_type& __obj) { return iterator(_Base::insert(__obj), this); } + iterator + insert(value_type&& __obj) + { return iterator(_Base::insert(std::move(__obj)), this); } + + iterator + insert(const_iterator, value_type&& __obj) + { return iterator(_Base::insert(std::move(__obj)), this); } + void insert(std::initializer_list<value_type> __l) { _Base::insert(__l); } |

