aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-10-23 17:14:43 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2019-10-23 17:14:43 +0100
commitec541f1bc17be5fd7f181aeb60c3cc239957ae92 (patch)
treefbe8c775d7d0015ded132327530e85d74384be04 /libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
parent603aec6775d5191fafd57412364578db68432f74 (diff)
downloadgcc-ec541f1bc17be5fd7f181aeb60c3cc239957ae92.zip
gcc-ec541f1bc17be5fd7f181aeb60c3cc239957ae92.tar.gz
gcc-ec541f1bc17be5fd7f181aeb60c3cc239957ae92.tar.bz2
Adjust pb_ds extensions to use allocator_traits
These changes are largely useless, because most of them are simply allowing 'reference' and 'const_reference' types to be obtained from an allocator, and since C++11 allocators don't define reference types (they just use plain lvalue references. Pretending to support C++98 allocators with user-defined reference types is a waste of time (especially as several of the pb_ds types appear to use a static allocator object which means stateful allocators are not supported). * include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp: Use detail::rebind_traits. * include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp: Likewise. * include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Likewise. * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Likewise. * include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp: Likewise. * include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp: Likewise. * include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp: Likewise. * include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp: Likewise. * include/ext/pb_ds/detail/branch_policy/branch_policy.hpp: Likewise. * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Likewise. * include/ext/pb_ds/detail/cond_dealtor.hpp: Likewise. * include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp (has_eq_fn): Likewise. * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Likewise. * include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Likewise. * include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Likewise. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ left_child_next_sibling_heap_.hpp: Likewise. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp: Likewise. * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ point_const_iterator.hpp: Likewise. * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Likewise. * include/ext/pb_ds/detail/ov_tree_map_/ constructors_destructor_fn_imps.hpp: Likewise. * include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp: Likewise. * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Likewise. * include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Likewise. * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Likewise. * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Likewise. * include/ext/pb_ds/detail/rb_tree_map_/node.hpp: Likewise. * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Likewise. * include/ext/pb_ds/detail/splay_tree_/node.hpp: Likewise. * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Likewise. * include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp: Likewise. * include/ext/pb_ds/detail/type_utils.hpp: Fix typo in comment. * include/ext/pb_ds/detail/types_traits.hpp (stored_value): Add bool parameter to control whether the hash value is stored. (select_base_type): New class template and partial specialization. (maybe_null_type): Likewise. (rebind_traits): New class template. (type_base): Remove four nearly identical specializations. (type_dispatch): Remove. (type_traits): Use select_base_type and maybe_null_type instead of type_base to control differences between specializations. * include/ext/pb_ds/list_update_policy.hpp: Use detail::rebind_traits. * include/ext/pb_ds/priority_queue.hpp: Likewise. * include/ext/pb_ds/tree_policy.hpp: Likewise. * include/ext/pb_ds/trie_policy.hpp: Likewise. From-SVN: r277336
Diffstat (limited to 'libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp')
-rw-r--r--libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
index dbfd612..58cb69e 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
@@ -102,23 +102,23 @@ namespace __gnu_pbds
typedef integral_constant<int, simple_value> no_throw_copies_t;
- typedef typename _Alloc::template rebind<value_type> __rebind_v;
- typedef typename __rebind_v::other value_allocator;
+ typedef rebind_traits<_Alloc, value_type> __rebind_v;
+ typedef typename __rebind_v::allocator_type value_allocator;
public:
- typedef typename value_allocator::pointer pointer;
- typedef typename value_allocator::const_pointer const_pointer;
- typedef typename value_allocator::reference reference;
- typedef typename value_allocator::const_reference const_reference;
+ typedef typename __rebind_v::pointer pointer;
+ typedef typename __rebind_v::const_pointer const_pointer;
+ typedef typename __rebind_v::reference reference;
+ typedef typename __rebind_v::const_reference const_reference;
typedef typename __conditional_type<simple_value,
value_type, pointer>::__type
entry;
- typedef typename _Alloc::template rebind<entry>::other
+ typedef typename rebind_traits<_Alloc, entry>::allocator_type
entry_allocator;
- typedef typename entry_allocator::pointer entry_pointer;
+ typedef typename rebind_traits<_Alloc, entry>::pointer entry_pointer;
typedef binary_heap_point_const_iterator_<value_type, entry,
simple_value, _Alloc>