Commit 5004040e by Paolo Carlini Committed by Paolo Carlini

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
parent b0de17ef
2010-01-03 Paolo Carlini <paolo.carlini@oracle.com> 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&), * include/bits/stl_pair.h (pair<>::pair(_U1&&, const _T2&),
pair<>::pair(const _T1&, _U2&&), pair<>::pair(_U1&&, _U2&&)): pair<>::pair(const _T1&, _U2&&), pair<>::pair(_U1&&, _U2&&)):
Use std::is_constructible instead of std::is_convertible. Use std::is_constructible instead of std::is_convertible.
......
// Profiling unordered_map/unordered_multimap implementation -*- C++ -*- // 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -72,8 +72,6 @@ namespace __profile ...@@ -72,8 +72,6 @@ namespace __profile
typedef typename _Base::reference reference; typedef typename _Base::reference reference;
typedef typename _Base::const_reference const_reference; typedef typename _Base::const_reference const_reference;
typedef typename _Base::mapped_type mapped_type; 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::iterator iterator;
typedef typename _Base::const_iterator const_iterator; typedef typename _Base::const_iterator const_iterator;
...@@ -148,7 +146,8 @@ namespace __profile ...@@ -148,7 +146,8 @@ namespace __profile
~unordered_map() ~unordered_map()
{ {
__profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); __profcxx_hashtable_destruct(this, _Base::bucket_count(),
_Base::size());
_M_profile_destruct(); _M_profile_destruct();
} }
...@@ -162,7 +161,8 @@ namespace __profile ...@@ -162,7 +161,8 @@ namespace __profile
void void
clear() clear()
{ {
__profcxx_hashtable_destruct(this, _Base::bucket_count(), _Base::size()); __profcxx_hashtable_destruct(this, _Base::bucket_count(),
_Base::size());
_M_profile_destruct(); _M_profile_destruct();
_Base::clear(); _Base::clear();
} }
...@@ -175,14 +175,15 @@ namespace __profile ...@@ -175,14 +175,15 @@ namespace __profile
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size, _Base::bucket_count());
} }
insert_return_type std::pair<iterator, bool>
insert(const value_type& __obj) insert(const value_type& __obj)
{ {
size_type __old_size = _Base::bucket_count(); 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()); _M_profile_resize(__old_size, _Base::bucket_count());
return __res; return __res;
} }
iterator iterator
insert(iterator __iter, const value_type& __v) insert(iterator __iter, const value_type& __v)
{ {
...@@ -301,8 +302,6 @@ namespace __profile ...@@ -301,8 +302,6 @@ namespace __profile
typedef typename _Base::difference_type difference_type; typedef typename _Base::difference_type difference_type;
typedef typename _Base::reference reference; typedef typename _Base::reference reference;
typedef typename _Base::const_reference const_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::iterator iterator;
typedef typename _Base::const_iterator const_iterator; typedef typename _Base::const_iterator const_iterator;
...@@ -401,14 +400,15 @@ namespace __profile ...@@ -401,14 +400,15 @@ namespace __profile
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size, _Base::bucket_count());
} }
insert_return_type iterator
insert(const value_type& __obj) insert(const value_type& __obj)
{ {
size_type __old_size = _Base::bucket_count(); 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()); _M_profile_resize(__old_size, _Base::bucket_count());
return __res; return __res;
} }
iterator iterator
insert(iterator __iter, const value_type& __v) insert(iterator __iter, const value_type& __v)
{ {
......
// Profiling unordered_set/unordered_multiset implementation -*- C++ -*- // 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -71,7 +71,6 @@ namespace __profile ...@@ -71,7 +71,6 @@ namespace __profile
typedef typename _Base::difference_type difference_type; typedef typename _Base::difference_type difference_type;
typedef typename _Base::reference reference; typedef typename _Base::reference reference;
typedef typename _Base::const_reference const_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::iterator iterator;
typedef typename _Base::const_iterator const_iterator; typedef typename _Base::const_iterator const_iterator;
...@@ -165,6 +164,7 @@ namespace __profile ...@@ -165,6 +164,7 @@ namespace __profile
_M_profile_destruct(); _M_profile_destruct();
_Base::clear(); _Base::clear();
} }
void void
insert(std::initializer_list<value_type> __l) insert(std::initializer_list<value_type> __l)
{ {
...@@ -172,13 +172,16 @@ namespace __profile ...@@ -172,13 +172,16 @@ namespace __profile
_Base::insert(__l); _Base::insert(__l);
_M_profile_resize(__old_size, _Base::bucket_count()); _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(); 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()); _M_profile_resize(__old_size, _Base::bucket_count());
return __res; return __res;
} }
iterator iterator
insert(iterator __iter, const value_type& __v) insert(iterator __iter, const value_type& __v)
{ {
...@@ -220,6 +223,7 @@ namespace __profile ...@@ -220,6 +223,7 @@ namespace __profile
_Base::rehash(__n); _Base::rehash(__n);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size, _Base::bucket_count());
} }
private: private:
_Base& _Base&
_M_base() { return *this; } _M_base() { return *this; }
...@@ -285,7 +289,6 @@ namespace __profile ...@@ -285,7 +289,6 @@ namespace __profile
typedef typename _Base::difference_type difference_type; typedef typename _Base::difference_type difference_type;
typedef typename _Base::reference reference; typedef typename _Base::reference reference;
typedef typename _Base::const_reference const_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::iterator iterator;
typedef typename _Base::const_iterator const_iterator; typedef typename _Base::const_iterator const_iterator;
...@@ -375,6 +378,7 @@ namespace __profile ...@@ -375,6 +378,7 @@ namespace __profile
_M_profile_destruct(); _M_profile_destruct();
_Base::clear(); _Base::clear();
} }
void void
insert(std::initializer_list<value_type> __l) insert(std::initializer_list<value_type> __l)
{ {
...@@ -382,13 +386,16 @@ namespace __profile ...@@ -382,13 +386,16 @@ namespace __profile
_Base::insert(__l); _Base::insert(__l);
_M_profile_resize(__old_size, _Base::bucket_count()); _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(); 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()); _M_profile_resize(__old_size, _Base::bucket_count());
return __res; return __res;
} }
iterator iterator
insert(iterator __iter, const value_type& __v) insert(iterator __iter, const value_type& __v)
{ {
...@@ -430,6 +437,7 @@ namespace __profile ...@@ -430,6 +437,7 @@ namespace __profile
_Base::rehash(__n); _Base::rehash(__n);
_M_profile_resize(__old_size, _Base::bucket_count()); _M_profile_resize(__old_size, _Base::bucket_count());
} }
private: private:
_Base& _Base&
_M_base() { return *this; } _M_base() { return *this; }
......
// Internal header for TR1 unordered_set and unordered_map -*- C++ -*- // 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -409,9 +409,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1 ...@@ -409,9 +409,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
_M_erase_node(_Node*, _Node**); _M_erase_node(_Node*, _Node**);
public: public:
// Expose insert_return_type for profiling mode.
typedef _Insert_Return_Type insert_return_type;
// Insert and erase // Insert and erase
_Insert_Return_Type _Insert_Return_Type
insert(const value_type& __v) insert(const value_type& __v)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment