diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-22 17:50:36 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-22 17:50:36 +0000 |
commit | a0f415f0a2526028dd14f39dabbec1672c566eac (patch) | |
tree | b73cdce0684496f719170bd56a651d918abf795d /libstdc++-v3 | |
parent | b994ffebe518318c57dda4de89d1c6e35614db72 (diff) | |
download | gcc-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/ChangeLog | 16 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/basic_string.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/functional_hash.h | 12 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_bvector.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/bitset | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/vector | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/profile/bitset | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/profile/vector | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/std/bitset | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/std/system_error | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/std/thread | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/std/typeindex | 6 |
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(); } |