Hi, committed to mainline.
Paolo. //////////////////////
2011-07-18 Paolo Carlini <paolo.carl...@oracle.com> PR libstdc++/48430 * include/bits/shared_ptr.h (struct hash<shared_ptr<>>): Use __hash_base. * include/bits/unique_ptr.h (struct hash<unique_ptr<>>): Likewise.
Index: include/bits/shared_ptr.h =================================================================== --- include/bits/shared_ptr.h (revision 176398) +++ include/bits/shared_ptr.h (working copy) @@ -614,7 +614,7 @@ /// std::hash specialization for shared_ptr. template<typename _Tp> struct hash<shared_ptr<_Tp>> - : public std::unary_function<shared_ptr<_Tp>, size_t> + : public __hash_base<size_t, shared_ptr<_Tp>> { size_t operator()(const shared_ptr<_Tp>& __s) const Index: include/bits/unique_ptr.h =================================================================== --- include/bits/unique_ptr.h (revision 176398) +++ include/bits/unique_ptr.h (working copy) @@ -542,7 +542,7 @@ /// std::hash specialization for unique_ptr. template<typename _Tp, typename _Dp> struct hash<unique_ptr<_Tp, _Dp>> - : public std::unary_function<unique_ptr<_Tp, _Dp>, size_t> + : public __hash_base<size_t, unique_ptr<_Tp, _Dp>> { size_t operator()(const unique_ptr<_Tp, _Dp>& __u) const