summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-09-22 17:50:36 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-09-22 17:50:36 +0000
commita0f415f0a2526028dd14f39dabbec1672c566eac (patch)
treeb73cdce0684496f719170bd56a651d918abf795d /libstdc++-v3
parentb994ffebe518318c57dda4de89d1c6e35614db72 (diff)
downloadgcc-a0f415f0a2526028dd14f39dabbec1672c566eac.tar.gz
2010-09-22 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/functional_hash.h (__hash_base): Add. (hash): Derive from __hash_base instead. * include/debug/bitset (hash): Likewise. * include/debug/vector (hash): Likewise. * include/std/system_error (hash): Likewise. * include/std/thread (hash): Likewise. * include/std/bitset (hash): Likewise. * include/profile/bitset (hash): Likewise. * include/profile/vector (hash): Likewise. * include/bits/basic_string.h (hash): Likewise. * include/bits/stl_bvector.h (hash): Likewise. * include/std/typeindex (hash): Do not derive from unary_function, add result_type and argument_type typedefs; trim includes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164528 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog16
-rw-r--r--libstdc++-v3/include/bits/basic_string.h8
-rw-r--r--libstdc++-v3/include/bits/functional_hash.h12
-rw-r--r--libstdc++-v3/include/bits/stl_bvector.h2
-rw-r--r--libstdc++-v3/include/debug/bitset2
-rw-r--r--libstdc++-v3/include/debug/vector2
-rw-r--r--libstdc++-v3/include/profile/bitset2
-rw-r--r--libstdc++-v3/include/profile/vector2
-rw-r--r--libstdc++-v3/include/std/bitset4
-rw-r--r--libstdc++-v3/include/std/system_error2
-rw-r--r--libstdc++-v3/include/std/thread5
-rw-r--r--libstdc++-v3/include/std/typeindex6
12 files changed, 41 insertions, 22 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 58171dce3dd..8f5dc71af88 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,21 @@
2010-09-22 Paolo Carlini <paolo.carlini@oracle.com>
+ * include/bits/functional_hash.h (__hash_base): Add.
+ (hash): Derive from __hash_base instead.
+ * include/debug/bitset (hash): Likewise.
+ * include/debug/vector (hash): Likewise.
+ * include/std/system_error (hash): Likewise.
+ * include/std/thread (hash): Likewise.
+ * include/std/bitset (hash): Likewise.
+ * include/profile/bitset (hash): Likewise.
+ * include/profile/vector (hash): Likewise.
+ * include/bits/basic_string.h (hash): Likewise.
+ * include/bits/stl_bvector.h (hash): Likewise.
+ * include/std/typeindex (hash): Do not derive from unary_function,
+ add result_type and argument_type typedefs; trim includes.
+
+2010-09-22 Paolo Carlini <paolo.carlini@oracle.com>
+
* include/std/typeindex: New.
* include/Makefile.am: Add.
* include/Makefile.in: Regenerate.
diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index 2fb671721ab..308285bec86 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -2925,7 +2925,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// std::hash specialization for string.
template<>
struct hash<string>
- : public std::unary_function<string, size_t>
+ : public __hash_base<size_t, string>
{
size_t
operator()(const string& __s) const
@@ -2936,7 +2936,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// std::hash specialization for wstring.
template<>
struct hash<wstring>
- : public std::unary_function<wstring, size_t>
+ : public __hash_base<size_t, wstring>
{
size_t
operator()(const wstring& __s) const
@@ -2950,7 +2950,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// std::hash specialization for u16string.
template<>
struct hash<u16string>
- : public std::unary_function<u16string, size_t>
+ : public __hash_base<size_t, u16string>
{
size_t
operator()(const u16string& __s) const
@@ -2961,7 +2961,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// std::hash specialization for u32string.
template<>
struct hash<u32string>
- : public std::unary_function<u32string, size_t>
+ : public __hash_base<size_t, u32string>
{
size_t
operator()(const u32string& __s) const
diff --git a/libstdc++-v3/include/bits/functional_hash.h b/libstdc++-v3/include/bits/functional_hash.h
index 36396878892..a132cce7689 100644
--- a/libstdc++-v3/include/bits/functional_hash.h
+++ b/libstdc++-v3/include/bits/functional_hash.h
@@ -33,7 +33,6 @@
#pragma GCC system_header
#include <bits/c++config.h>
-#include <bits/stl_function.h>
namespace std
{
@@ -45,9 +44,16 @@ namespace std
* @{
*/
+ template<typename _Result, typename _Arg>
+ struct __hash_base
+ {
+ typedef _Result result_type;
+ typedef _Arg argument_type;
+ };
+
/// Primary class template hash.
template<typename _Tp>
- struct hash : public std::unary_function<_Tp, size_t>
+ struct hash : public __hash_base<size_t, _Tp>
{
size_t
operator()(_Tp __val) const;
@@ -55,7 +61,7 @@ namespace std
/// Partial specializations for pointer types.
template<typename _Tp>
- struct hash<_Tp*> : public std::unary_function<_Tp*, size_t>
+ struct hash<_Tp*> : public __hash_base<size_t, _Tp*>
{
size_t
operator()(_Tp* __p) const
diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index c489b447ca1..74c2e85fd70 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -1038,7 +1038,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// std::hash specialization for vector<bool>.
template<typename _Alloc>
struct hash<_GLIBCXX_STD_D::vector<bool, _Alloc>>
- : public std::unary_function<_GLIBCXX_STD_D::vector<bool, _Alloc>, size_t>
+ : public __hash_base<size_t, _GLIBCXX_STD_D::vector<bool, _Alloc>>
{
size_t
operator()(const _GLIBCXX_STD_D::vector<bool, _Alloc>& __b) const;
diff --git a/libstdc++-v3/include/debug/bitset b/libstdc++-v3/include/debug/bitset
index f452062e154..017c9e020dd 100644
--- a/libstdc++-v3/include/debug/bitset
+++ b/libstdc++-v3/include/debug/bitset
@@ -385,7 +385,7 @@ namespace __debug
/// std::hash specialization for bitset.
template<size_t _Nb>
struct hash<__debug::bitset<_Nb>>
- : public std::unary_function<__debug::bitset<_Nb>, size_t>
+ : public __hash_base<size_t, __debug::bitset<_Nb>>
{
size_t
operator()(const __debug::bitset<_Nb>& __b) const
diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector
index b0846b8f42e..9004f2902ae 100644
--- a/libstdc++-v3/include/debug/vector
+++ b/libstdc++-v3/include/debug/vector
@@ -584,7 +584,7 @@ namespace __debug
/// std::hash specialization for vector<bool>.
template<typename _Alloc>
struct hash<__debug::vector<bool, _Alloc>>
- : public std::unary_function<__debug::vector<bool, _Alloc>, size_t>
+ : public __hash_base<size_t, __debug::vector<bool, _Alloc>>
{
size_t
operator()(const __debug::vector<bool, _Alloc>& __b) const
diff --git a/libstdc++-v3/include/profile/bitset b/libstdc++-v3/include/profile/bitset
index f6b8249a321..79175244bed 100644
--- a/libstdc++-v3/include/profile/bitset
+++ b/libstdc++-v3/include/profile/bitset
@@ -359,7 +359,7 @@ namespace __profile
/// std::hash specialization for bitset.
template<size_t _Nb>
struct hash<__profile::bitset<_Nb>>
- : public std::unary_function<__profile::bitset<_Nb>, size_t>
+ : public __hash_base<size_t, __profile::bitset<_Nb>>
{
size_t
operator()(const __profile::bitset<_Nb>& __b) const
diff --git a/libstdc++-v3/include/profile/vector b/libstdc++-v3/include/profile/vector
index 1bd4346ec67..cd04b515599 100644
--- a/libstdc++-v3/include/profile/vector
+++ b/libstdc++-v3/include/profile/vector
@@ -505,7 +505,7 @@ namespace __profile
/// std::hash specialization for vector<bool>.
template<typename _Alloc>
struct hash<__profile::vector<bool, _Alloc>>
- : public std::unary_function<__profile::vector<bool, _Alloc>, size_t>
+ : public __hash_base<size_t, __profile::vector<bool, _Alloc>>
{
size_t
operator()(const __profile::vector<bool, _Alloc>& __b) const
diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset
index 6fe1235ee89..d263fae645a 100644
--- a/libstdc++-v3/include/std/bitset
+++ b/libstdc++-v3/include/std/bitset
@@ -1495,7 +1495,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// std::hash specialization for bitset.
template<size_t _Nb>
struct hash<_GLIBCXX_STD_D::bitset<_Nb>>
- : public std::unary_function<_GLIBCXX_STD_D::bitset<_Nb>, size_t>
+ : public __hash_base<size_t, _GLIBCXX_STD_D::bitset<_Nb>>
{
size_t
operator()(const _GLIBCXX_STD_D::bitset<_Nb>& __b) const
@@ -1507,7 +1507,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<>
struct hash<_GLIBCXX_STD_D::bitset<0>>
- : public std::unary_function<_GLIBCXX_STD_D::bitset<0>, size_t>
+ : public __hash_base<size_t, _GLIBCXX_STD_D::bitset<0>>
{
size_t
operator()(const _GLIBCXX_STD_D::bitset<0>&) const
diff --git a/libstdc++-v3/include/std/system_error b/libstdc++-v3/include/std/system_error
index 2c968e92e90..ce4e23825a3 100644
--- a/libstdc++-v3/include/std/system_error
+++ b/libstdc++-v3/include/std/system_error
@@ -353,7 +353,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// std::hash specialization for error_code.
template<>
struct hash<error_code>
- : public std::unary_function<error_code, size_t>
+ : public __hash_base<size_t, error_code>
{
size_t
operator()(const error_code& __e) const
diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread
index 38e9d45a46d..d5bbf6e0146 100644
--- a/libstdc++-v3/include/std/thread
+++ b/libstdc++-v3/include/std/thread
@@ -56,9 +56,6 @@ namespace std
* @{
*/
- template<typename _Tp>
- struct hash;
-
/// thread
class thread
{
@@ -224,7 +221,7 @@ namespace std
/// std::hash specialization for thread::id.
template<>
struct hash<thread::id>
- : public std::unary_function<thread::id, size_t>
+ : public __hash_base<size_t, thread::id>
{
size_t
operator()(const thread::id& __id) const
diff --git a/libstdc++-v3/include/std/typeindex b/libstdc++-v3/include/std/typeindex
index a5d37666e78..44836f67ea3 100644
--- a/libstdc++-v3/include/std/typeindex
+++ b/libstdc++-v3/include/std/typeindex
@@ -35,9 +35,7 @@
# include <bits/c++0x_warning.h>
#else
-#include <bits/c++config.h>
#include <typeinfo>
-#include <bits/stl_function.h> // For unary_function
namespace std
{
@@ -92,8 +90,10 @@ namespace std
/// std::hash specialization for type_index.
template<>
struct hash<type_index>
- : public std::unary_function<type_index, size_t>
{
+ typedef size_t result_type;
+ typedef type_index argument_type;
+
size_t
operator()(const type_index& __ti) const
{ return __ti.hash_code(); }