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
This commit is contained in:
Paolo Carlini 2010-01-03 14:50:09 +00:00 committed by Paolo Carlini
parent b0de17ef39
commit 5004040e8d
4 changed files with 37 additions and 22 deletions

View file

@ -1,3 +1,13 @@
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&),

View file

@ -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)
{

View file

@ -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; }

View file

@ -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)