alloc_traits.h (__alloc_rebind): Define alias template.
authorJonathan Wakely <jwakely@redhat.com>
Wed, 25 Jun 2014 20:54:34 +0000 (21:54 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 25 Jun 2014 20:54:34 +0000 (21:54 +0100)
* include/bits/alloc_traits.h (__alloc_rebind): Define alias template.
* include/bits/forward_list.h (_Fwd_list_base): Use __alloc_rebind.
* include/bits/hashtable_policy.h (_Insert_base, _Hashtable_alloc):
Likewise.
* include/ext/alloc_traits.h: Fix comment.

From-SVN: r211995

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/alloc_traits.h
libstdc++-v3/include/bits/forward_list.h
libstdc++-v3/include/bits/hashtable_policy.h
libstdc++-v3/include/ext/alloc_traits.h

index 864f7b2..2042b55 100644 (file)
@@ -1,3 +1,11 @@
+2014-06-25  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/alloc_traits.h (__alloc_rebind): Define alias template.
+       * include/bits/forward_list.h (_Fwd_list_base): Use __alloc_rebind.
+       * include/bits/hashtable_policy.h (_Insert_base, _Hashtable_alloc):
+       Likewise.
+       * include/ext/alloc_traits.h: Fix comment.
+
 2014-06-24  Jonathan Wakely  <jwakely@redhat.com>
 
        * include/bits/functexcept.h (__throw_out_of_range_fmt): Change
index 23fe8de..3afcc6f 100644 (file)
@@ -72,6 +72,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       typedef _Alloc<_Tp, _Args...> __type;
     };
 
+  template<typename _Ptr, typename _Tp>
+    using __alloc_rebind = typename __alloctr_rebind<_Ptr, _Tp>::__type;
+
   /**
    * @brief  Uniform interface to all allocator types.
    * @ingroup allocators
index 524fad1..7cf699e 100644 (file)
@@ -274,13 +274,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
     struct _Fwd_list_base
     {
     protected:
-      typedef typename __gnu_cxx::__alloc_traits<_Alloc> _Alloc_traits;
-      typedef typename _Alloc_traits::template rebind<_Tp>::other
-        _Tp_alloc_type;
-
-      typedef typename _Alloc_traits::template
-        rebind<_Fwd_list_node<_Tp>>::other _Node_alloc_type;
-
+      typedef __alloc_rebind<_Alloc, _Tp>                _Tp_alloc_type;
+      typedef __alloc_rebind<_Alloc, _Fwd_list_node<_Tp>> _Node_alloc_type;
       typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> _Node_alloc_traits;
 
       struct _Fwd_list_impl 
index ef15b0e..606fbab 100644 (file)
@@ -701,8 +701,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       using __unique_keys = typename __hashtable_base::__unique_keys;
       using __ireturn_type = typename __hashtable_base::__ireturn_type;
       using __node_type = _Hash_node<_Value, _Traits::__hash_cached::value>;
-      using __node_alloc_type =
-       typename __alloctr_rebind<_Alloc, __node_type>::__type;
+      using __node_alloc_type = __alloc_rebind<_Alloc, __node_type>;
       using __node_gen_type = _AllocNode<__node_alloc_type>;
 
       __hashtable&
@@ -1898,13 +1897,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       using __value_type = typename __node_type::value_type;
       using __value_alloc_type =
-       typename __alloctr_rebind<__node_alloc_type, __value_type>::__type;
+       __alloc_rebind<__node_alloc_type, __value_type>;
       using __value_alloc_traits = std::allocator_traits<__value_alloc_type>;
 
       using __node_base = __detail::_Hash_node_base;
       using __bucket_type = __node_base*;      
       using __bucket_alloc_type =
-       typename __alloctr_rebind<__node_alloc_type, __bucket_type>::__type;
+       __alloc_rebind<__node_alloc_type, __bucket_type>;
       using __bucket_alloc_traits = std::allocator_traits<__bucket_alloc_type>;
 
       _Hashtable_alloc(const _Hashtable_alloc&) = default;
index 14fbc43..abdb611 100644 (file)
@@ -210,6 +210,6 @@ template<typename _Alloc>
   };
 
 _GLIBCXX_END_NAMESPACE_VERSION
-} // namespace std
+} // namespace __gnu_cxx
 
 #endif