Hi,

tested make check/check-debug on x86_64-linux, committed to mainline.

Thanks,
Paolo.

/////////////////////
2013-04-25  Paolo Carlini  <paolo.carl...@oracle.com>

        PR libstdc++/57065
        * include/debug/unordered_map (unordered_map, unordered_multimap):
        Fix default allocator type.
        * include/profile/unordered_map (unordered_map, unordered_multimap):
        Likewise.
        * include/bits/unordered_map.h: Fix comments.
Index: include/bits/unordered_map.h
===================================================================
--- include/bits/unordered_map.h        (revision 198275)
+++ include/bits/unordered_map.h        (working copy)
@@ -75,12 +75,13 @@
    *
    *  @ingroup unordered_associative_containers
    *
-   *  @tparam  _Key  Type of key objects.
-   *  @tparam  _Tp  Type of mapped objects.
-   *  @tparam  _Hash  Hashing function object type, defaults to hash<_Value>.
-   *  @tparam  _Pred  Predicate function object type, defaults
-   *                  to equal_to<_Value>.
-   *  @tparam  _Alloc  Allocator type, defaults to allocator<_Key>.
+   *  @tparam  _Key    Type of key objects.
+   *  @tparam  _Tp     Type of mapped objects.
+   *  @tparam  _Hash   Hashing function object type, defaults to hash<_Value>.
+   *  @tparam  _Pred   Predicate function object type, defaults
+   *                   to equal_to<_Value>.
+   *  @tparam  _Alloc  Allocator type, defaults to 
+   *                   std::allocator<std::pair<const _Key, _Tp>>.
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, and
    *  <a href="tables.html#xx">unordered associative container</a>
@@ -786,12 +787,13 @@
    *
    *  @ingroup unordered_associative_containers
    *
-   *  @tparam  _Key  Type of key objects.
-   *  @tparam  _Tp  Type of mapped objects.
-   *  @tparam  _Hash  Hashing function object type, defaults to hash<_Value>.
-   *  @tparam  _Pred  Predicate function object type, defaults
-   *                  to equal_to<_Value>.
-   *  @tparam  _Alloc  Allocator type, defaults to allocator<_Key>.
+   *  @tparam  _Key    Type of key objects.
+   *  @tparam  _Tp     Type of mapped objects.
+   *  @tparam  _Hash   Hashing function object type, defaults to hash<_Value>.
+   *  @tparam  _Pred   Predicate function object type, defaults
+   *                   to equal_to<_Value>.
+   *  @tparam  _Alloc  Allocator type, defaults to
+   *                   std::allocator<std::pair<const _Key, _Tp>>.
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, and
    *  <a href="tables.html#xx">unordered associative container</a>
Index: include/debug/unordered_map
===================================================================
--- include/debug/unordered_map (revision 198275)
+++ include/debug/unordered_map (working copy)
@@ -46,7 +46,7 @@
   template<typename _Key, typename _Tp,
           typename _Hash = std::hash<_Key>,
           typename _Pred = std::equal_to<_Key>,
-          typename _Alloc = std::allocator<_Key> >
+          typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_map
     : public _GLIBCXX_STD_C::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>,
       public __gnu_debug::_Safe_unordered_container<unordered_map<_Key, _Tp,
@@ -500,7 +500,7 @@
   template<typename _Key, typename _Tp,
           typename _Hash = std::hash<_Key>,
           typename _Pred = std::equal_to<_Key>,
-          typename _Alloc = std::allocator<_Key> >
+          typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_multimap
     : public _GLIBCXX_STD_C::unordered_multimap<_Key, _Tp, _Hash,
                                                _Pred, _Alloc>,
Index: include/profile/unordered_map
===================================================================
--- include/profile/unordered_map       (revision 198275)
+++ include/profile/unordered_map       (working copy)
@@ -44,9 +44,9 @@
 {
   /// Class std::unordered_map wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-          typename _Hash  = std::hash<_Key>,
+          typename _Hash = std::hash<_Key>,
           typename _Pred = std::equal_to<_Key>,
-          typename _Alloc =  std::allocator<_Key> >
+          typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_map
     : public _GLIBCXX_STD_BASE
     {
@@ -346,9 +346,9 @@
 
   /// Class std::unordered_multimap wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-          typename _Hash  = std::hash<_Key>,
+          typename _Hash = std::hash<_Key>,
           typename _Pred = std::equal_to<_Key>,
-          typename _Alloc =  std::allocator<_Key> >
+          typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_multimap
     : public _GLIBCXX_STD_BASE
     {      

Reply via email to