aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2010-01-03 14:50:09 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2010-01-03 14:50:09 +0000
commit5004040e8df391914c26eb02c3514578dded2c66 (patch)
treecf5f69958c571b59e816f33865c5ed216a4f9983
parentb0de17ef396499ebc675c7c902927984625c1752 (diff)
downloadgcc-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
-rw-r--r--libstdc++-v3/ChangeLog10
-rw-r--r--libstdc++-v3/include/profile/unordered_map22
-rw-r--r--libstdc++-v3/include/profile/unordered_set22
-rw-r--r--libstdc++-v3/include/tr1_impl/hashtable5
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)