summaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/bits
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-06-25 20:54:34 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-06-25 20:54:34 +0000
commitf933d589beb2babe9b7e79a9bd1d166572422909 (patch)
treef3a84d666fa92e4f7a93b4d2eb03df42dc538a1d /libstdc++-v3/include/bits
parent7c8ba2fd33c1f50e3b3abbfa31c90ed00dea2548 (diff)
downloadgcc-f933d589beb2babe9b7e79a9bd1d166572422909.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211995 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/bits')
-rw-r--r--libstdc++-v3/include/bits/alloc_traits.h3
-rw-r--r--libstdc++-v3/include/bits/forward_list.h9
-rw-r--r--libstdc++-v3/include/bits/hashtable_policy.h7
3 files changed, 8 insertions, 11 deletions
diff --git a/libstdc++-v3/include/bits/alloc_traits.h b/libstdc++-v3/include/bits/alloc_traits.h
index 23fe8de0947..3afcc6fcad2 100644
--- a/libstdc++-v3/include/bits/alloc_traits.h
+++ b/libstdc++-v3/include/bits/alloc_traits.h
@@ -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
diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h
index 524fad1c342..7cf699eab5d 100644
--- a/libstdc++-v3/include/bits/forward_list.h
+++ b/libstdc++-v3/include/bits/forward_list.h
@@ -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
diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h
index ef15b0e5a77..606fbabbcdf 100644
--- a/libstdc++-v3/include/bits/hashtable_policy.h
+++ b/libstdc++-v3/include/bits/hashtable_policy.h
@@ -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;