diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2010-01-03 14:50:09 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2010-01-03 14:50:09 +0000 |
commit | 5004040e8df391914c26eb02c3514578dded2c66 (patch) | |
tree | cf5f69958c571b59e816f33865c5ed216a4f9983 /libstdc++-v3 | |
parent | b0de17ef396499ebc675c7c902927984625c1752 (diff) | |
download | gcc-5004040e8df391914c26eb02c3514578dded2c66.zip gcc-5004040e8df391914c26eb02c3514578dded2c66.tar.gz gcc-5004040e8df391914c26eb02c3514578dded2c66.tar.bz2 |
hashtable (_Hashtable<>): Remove insert_return_type typedef.
2010-01-03 Paolo Carlini <paolo.carlini@oracle.com>
* include/tr1_impl/hashtable (_Hashtable<>): Remove insert_return_type
typedef.
* include/profile/unordered_map (unordered_map<>::insert(const
value_type&), unordered_multimap<>::insert(const value_type&)): Adjust.
* include/profile/unordered_set (unordered_set<>::insert(const
value_type&), unordered_multimap<>::insert(const value_type&)):
Likewise.
From-SVN: r155587
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/profile/unordered_map | 22 | ||||
-rw-r--r-- | libstdc++-v3/include/profile/unordered_set | 22 | ||||
-rw-r--r-- | libstdc++-v3/include/tr1_impl/hashtable | 5 |
4 files changed, 37 insertions, 22 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a4c525c..f768680 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,15 @@ 2010-01-03 Paolo Carlini <paolo.carlini@oracle.com> + * include/tr1_impl/hashtable (_Hashtable<>): Remove insert_return_type + typedef. + * include/profile/unordered_map (unordered_map<>::insert(const + value_type&), unordered_multimap<>::insert(const value_type&)): Adjust. + * include/profile/unordered_set (unordered_set<>::insert(const + value_type&), unordered_multimap<>::insert(const value_type&)): + Likewise. + +2010-01-03 Paolo Carlini <paolo.carlini@oracle.com> + * include/bits/stl_pair.h (pair<>::pair(_U1&&, const _T2&), pair<>::pair(const _T1&, _U2&&), pair<>::pair(_U1&&, _U2&&)): Use std::is_constructible instead of std::is_convertible. diff --git a/libstdc++-v3/include/profile/unordered_map b/libstdc++-v3/include/profile/unordered_map index 2f563a6..b8adc4410 100644 --- a/libstdc++-v3/include/profile/unordered_map +++ b/libstdc++-v3/include/profile/unordered_map @@ -1,6 +1,6 @@ // Profiling unordered_map/unordered_multimap implementation -*- C++ -*- -// Copyright (C) 2009 Free Software Foundation, Inc. +// Copyright (C) 2009, 2010 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -72,8 +72,6 @@ namespace __profile typedef typename _Base::reference reference; typedef typename _Base::const_reference const_reference; typedef typename _Base::mapped_type mapped_type; - typedef std::pair<typename _Base::iterator, bool> pair_type; - typedef typename _Base::insert_return_type insert_return_type; typedef typename _Base::iterator iterator; typedef typename _Base::const_iterator const_iterator; @@ -148,7 +146,8 @@ namespace __profile ~unordered_map() { - __profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); + __profcxx_hashtable_destruct(this, _Base::bucket_count(), + _Base::size()); _M_profile_destruct(); } @@ -162,7 +161,8 @@ namespace __profile void clear() { - __profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); + __profcxx_hashtable_destruct(this, _Base::bucket_count(), + _Base::size()); _M_profile_destruct(); _Base::clear(); } @@ -175,14 +175,15 @@ namespace __profile _M_profile_resize(__old_size, _Base::bucket_count()); } - insert_return_type + std::pair<iterator, bool> insert(const value_type& __obj) { size_type __old_size = _Base::bucket_count(); - insert_return_type __res = _Base::insert(__obj); + std::pair<iterator, bool> __res = _Base::insert(__obj); _M_profile_resize(__old_size, _Base::bucket_count()); return __res; } + iterator insert(iterator __iter, const value_type& __v) { @@ -301,8 +302,6 @@ namespace __profile typedef typename _Base::difference_type difference_type; typedef typename _Base::reference reference; typedef typename _Base::const_reference const_reference; - typedef std::pair<typename _Base::iterator, bool> pair_type; - typedef typename _Base::insert_return_type insert_return_type; typedef typename _Base::iterator iterator; typedef typename _Base::const_iterator const_iterator; @@ -401,14 +400,15 @@ namespace __profile _M_profile_resize(__old_size, _Base::bucket_count()); } - insert_return_type + iterator insert(const value_type& __obj) { size_type __old_size = _Base::bucket_count(); - insert_return_type __res = _Base::insert(__obj); + iterator __res = _Base::insert(__obj); _M_profile_resize(__old_size, _Base::bucket_count()); return __res; } + iterator insert(iterator __iter, const value_type& __v) { diff --git a/libstdc++-v3/include/profile/unordered_set b/libstdc++-v3/include/profile/unordered_set index 6c2dd77..b350da0 100644 --- a/libstdc++-v3/include/profile/unordered_set +++ b/libstdc++-v3/include/profile/unordered_set @@ -1,6 +1,6 @@ // Profiling unordered_set/unordered_multiset implementation -*- C++ -*- -// Copyright (C) 2009 Free Software Foundation, Inc. +// Copyright (C) 2009, 2010 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -71,7 +71,6 @@ namespace __profile typedef typename _Base::difference_type difference_type; typedef typename _Base::reference reference; typedef typename _Base::const_reference const_reference; - typedef typename _Base::insert_return_type insert_return_type; typedef typename _Base::iterator iterator; typedef typename _Base::const_iterator const_iterator; @@ -165,6 +164,7 @@ namespace __profile _M_profile_destruct(); _Base::clear(); } + void insert(std::initializer_list<value_type> __l) { @@ -172,13 +172,16 @@ namespace __profile _Base::insert(__l); _M_profile_resize(__old_size, _Base::bucket_count()); } - insert_return_type insert(const value_type& __obj) + + std::pair<iterator, bool> + insert(const value_type& __obj) { size_type __old_size = _Base::bucket_count(); - insert_return_type __res = _Base::insert(__obj); + std::pair<iterator, bool> __res = _Base::insert(__obj); _M_profile_resize(__old_size, _Base::bucket_count()); return __res; } + iterator insert(iterator __iter, const value_type& __v) { @@ -220,6 +223,7 @@ namespace __profile _Base::rehash(__n); _M_profile_resize(__old_size, _Base::bucket_count()); } + private: _Base& _M_base() { return *this; } @@ -285,7 +289,6 @@ namespace __profile typedef typename _Base::difference_type difference_type; typedef typename _Base::reference reference; typedef typename _Base::const_reference const_reference; - typedef typename _Base::insert_return_type insert_return_type; typedef typename _Base::iterator iterator; typedef typename _Base::const_iterator const_iterator; @@ -375,6 +378,7 @@ namespace __profile _M_profile_destruct(); _Base::clear(); } + void insert(std::initializer_list<value_type> __l) { @@ -382,13 +386,16 @@ namespace __profile _Base::insert(__l); _M_profile_resize(__old_size, _Base::bucket_count()); } - insert_return_type insert(const value_type& __obj) + + iterator + insert(const value_type& __obj) { size_type __old_size = _Base::bucket_count(); - insert_return_type __res = _Base::insert(__obj); + iterator __res = _Base::insert(__obj); _M_profile_resize(__old_size, _Base::bucket_count()); return __res; } + iterator insert(iterator __iter, const value_type& __v) { @@ -430,6 +437,7 @@ namespace __profile _Base::rehash(__n); _M_profile_resize(__old_size, _Base::bucket_count()); } + private: _Base& _M_base() { return *this; } diff --git a/libstdc++-v3/include/tr1_impl/hashtable b/libstdc++-v3/include/tr1_impl/hashtable index c477698..f9ff933 100644 --- a/libstdc++-v3/include/tr1_impl/hashtable +++ b/libstdc++-v3/include/tr1_impl/hashtable @@ -1,6 +1,6 @@ // Internal header for TR1 unordered_set and unordered_map -*- C++ -*- -// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -409,9 +409,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 _M_erase_node(_Node*, _Node**); public: - // Expose insert_return_type for profiling mode. - typedef _Insert_Return_Type insert_return_type; - // Insert and erase _Insert_Return_Type insert(const value_type& __v) |