Unordered: No need for value_allocator.

[SVN r80387]
This commit is contained in:
Daniel James
2012-09-03 20:04:55 +00:00
parent 2f09079d3f
commit 1e07edc1ad
5 changed files with 13 additions and 23 deletions

View File

@ -125,16 +125,15 @@ namespace boost { namespace unordered { namespace detail {
{ {
typedef boost::unordered::detail::multiset<A, T, H, P> types; typedef boost::unordered::detail::multiset<A, T, H, P> types;
typedef A allocator;
typedef T value_type; typedef T value_type;
typedef H hasher; typedef H hasher;
typedef P key_equal; typedef P key_equal;
typedef T key_type; typedef T key_type;
typedef typename boost::unordered::detail::rebind_wrap<
A, value_type>::type allocator;
typedef boost::unordered::detail::allocator_traits<allocator> traits; typedef boost::unordered::detail::allocator_traits<allocator> traits;
typedef boost::unordered::detail::pick_grouped_node<allocator, value_type> pick; typedef boost::unordered::detail::pick_grouped_node<allocator,
value_type> pick;
typedef typename pick::node node; typedef typename pick::node node;
typedef typename pick::bucket bucket; typedef typename pick::bucket bucket;
typedef typename pick::link_pointer link_pointer; typedef typename pick::link_pointer link_pointer;
@ -150,16 +149,15 @@ namespace boost { namespace unordered { namespace detail {
{ {
typedef boost::unordered::detail::multimap<A, K, M, H, P> types; typedef boost::unordered::detail::multimap<A, K, M, H, P> types;
typedef A allocator;
typedef std::pair<K const, M> value_type; typedef std::pair<K const, M> value_type;
typedef H hasher; typedef H hasher;
typedef P key_equal; typedef P key_equal;
typedef K key_type; typedef K key_type;
typedef typename boost::unordered::detail::rebind_wrap<
A, value_type>::type allocator;
typedef boost::unordered::detail::allocator_traits<allocator> traits; typedef boost::unordered::detail::allocator_traits<allocator> traits;
typedef boost::unordered::detail::pick_grouped_node<allocator, value_type> pick; typedef boost::unordered::detail::pick_grouped_node<allocator,
value_type> pick;
typedef typename pick::node node; typedef typename pick::node node;
typedef typename pick::bucket bucket; typedef typename pick::bucket bucket;
typedef typename pick::link_pointer link_pointer; typedef typename pick::link_pointer link_pointer;

View File

@ -144,12 +144,11 @@ namespace boost { namespace unordered { namespace detail {
typename Types::hasher, typename Types::hasher,
typename Types::key_equal> functions; typename Types::key_equal> functions;
// TODO: Better to use the original allocator here. typedef typename Types::allocator allocator;
typedef typename Types::allocator value_allocator;
typedef typename boost::unordered::detail:: typedef typename boost::unordered::detail::
rebind_wrap<value_allocator, node>::type node_allocator; rebind_wrap<allocator, node>::type node_allocator;
typedef typename boost::unordered::detail:: typedef typename boost::unordered::detail::
rebind_wrap<value_allocator, bucket>::type bucket_allocator; rebind_wrap<allocator, bucket>::type bucket_allocator;
typedef boost::unordered::detail::allocator_traits<node_allocator> typedef boost::unordered::detail::allocator_traits<node_allocator>
node_allocator_traits; node_allocator_traits;
typedef boost::unordered::detail::allocator_traits<bucket_allocator> typedef boost::unordered::detail::allocator_traits<bucket_allocator>

View File

@ -121,14 +121,12 @@ namespace boost { namespace unordered { namespace detail {
{ {
typedef boost::unordered::detail::set<A, T, H, P> types; typedef boost::unordered::detail::set<A, T, H, P> types;
typedef A allocator;
typedef T value_type; typedef T value_type;
typedef H hasher; typedef H hasher;
typedef P key_equal; typedef P key_equal;
typedef T key_type; typedef T key_type;
typedef typename boost::unordered::detail::rebind_wrap<
A, value_type>::type allocator;
typedef boost::unordered::detail::allocator_traits<allocator> traits; typedef boost::unordered::detail::allocator_traits<allocator> traits;
typedef boost::unordered::detail::pick_node<allocator, value_type> pick; typedef boost::unordered::detail::pick_node<allocator, value_type> pick;
typedef typename pick::node node; typedef typename pick::node node;
@ -146,15 +144,14 @@ namespace boost { namespace unordered { namespace detail {
{ {
typedef boost::unordered::detail::map<A, K, M, H, P> types; typedef boost::unordered::detail::map<A, K, M, H, P> types;
typedef A allocator;
typedef std::pair<K const, M> value_type; typedef std::pair<K const, M> value_type;
typedef H hasher; typedef H hasher;
typedef P key_equal; typedef P key_equal;
typedef K key_type; typedef K key_type;
typedef typename boost::unordered::detail::rebind_wrap< typedef boost::unordered::detail::allocator_traits<allocator>
A, value_type>::type allocator; traits;
typedef boost::unordered::detail::allocator_traits<allocator> traits;
typedef boost::unordered::detail::pick_node<allocator, value_type> pick; typedef boost::unordered::detail::pick_node<allocator, value_type> pick;
typedef typename pick::node node; typedef typename pick::node node;
typedef typename pick::bucket bucket; typedef typename pick::bucket bucket;

View File

@ -56,7 +56,6 @@ namespace unordered
private: private:
typedef boost::unordered::detail::map<A, K, T, H, P> types; typedef boost::unordered::detail::map<A, K, T, H, P> types;
typedef typename types::allocator value_allocator;
typedef typename types::traits allocator_traits; typedef typename types::traits allocator_traits;
typedef typename types::table table; typedef typename types::table table;
@ -542,7 +541,6 @@ namespace unordered
private: private:
typedef boost::unordered::detail::multimap<A, K, T, H, P> types; typedef boost::unordered::detail::multimap<A, K, T, H, P> types;
typedef typename types::allocator value_allocator;
typedef typename types::traits allocator_traits; typedef typename types::traits allocator_traits;
typedef typename types::table table; typedef typename types::table table;

View File

@ -54,7 +54,6 @@ namespace unordered
private: private:
typedef boost::unordered::detail::set<A, T, H, P> types; typedef boost::unordered::detail::set<A, T, H, P> types;
typedef typename types::allocator value_allocator;
typedef typename types::traits allocator_traits; typedef typename types::traits allocator_traits;
typedef typename types::table table; typedef typename types::table table;
@ -526,7 +525,6 @@ namespace unordered
private: private:
typedef boost::unordered::detail::multiset<A, T, H, P> types; typedef boost::unordered::detail::multiset<A, T, H, P> types;
typedef typename types::allocator value_allocator;
typedef typename types::traits allocator_traits; typedef typename types::traits allocator_traits;
typedef typename types::table table; typedef typename types::table table;