diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2006-09-20 13:49:46 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2006-09-20 13:49:46 +0000 |
commit | d7f245b19d871058abf50fc7c1cd734720f347a7 (patch) | |
tree | 15f8c35008650f79d951be7a72aec0264ec1ceb5 | |
parent | a186e616b9605ef36a084db0a407551c04060dbd (diff) | |
download | gcc-d7f245b19d871058abf50fc7c1cd734720f347a7.zip gcc-d7f245b19d871058abf50fc7c1cd734720f347a7.tar.gz gcc-d7f245b19d871058abf50fc7c1cd734720f347a7.tar.bz2 |
typelist_assoc_container.hpp: Remove, unused.
2006-09-20 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/pb_ds/detail/
typelist_assoc_container.hpp: Remove, unused.
* include/ext/pb_ds/detail/typelist/
typelist_assoc_container_find.hpp: Same.
* include/ext/pb_ds/detail/typelist: Remove.
* include/ext/pb_ds/detail/typelist.hpp: Merge...
* include/ext/pb_ds/detail/typelist/typelist_flatten.hpp: Same.
* include/ext/pb_ds/detail/typelist/typelist_contains.hpp: Same.
* include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp: Same.
* include/ext/pb_ds/detail/typelist/typelist_apply.hpp: Same.
* include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same.
* include/ext/pb_ds/detail/typelist/typelist_append.hpp: Same.
* include/ext/pb_ds/detail/typelist/typelist_at_index.hpp: Same.
* include/ext/pb_ds/detail/typelist/typelist_transform.hpp: Same.
* include/ext/typelist.h: ... into this.
* include/Makefile.am: Subtractions.
* include/Makefile.in: Regenerate.
* include/ext/pb_ds/assoc_container.hpp: Fixups for new includes,
namespaces, and names.
* include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
hash_prime_size_policy_imp.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
cc_hash_max_collision_check_resize_trigger_imp.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
sample_resize_policy.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
sample_resize_trigger.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
hash_exponential_size_policy_imp.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
hash_load_check_resize_trigger_size_base.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
hash_load_check_resize_trigger_imp.hpp: Same.
* include/ext/pb_ds/detail/resize_policy/
hash_standard_resize_policy_imp.hpp: Same.
* include/ext/pb_ds/detail/container_base_dispatch.hpp: Same.
* testsuite/performance/ext/pb_ds/text_find_timing.cc
* testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc
* testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc
* testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc
* testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc
* testsuite/performance/ext/pb_ds/tree_split_join_timing.cc
* testsuite/performance/ext/pb_ds/random_int_find_timing.cc
* testsuite/performance/ext/pb_ds/
multimap_text_insert_mem_usage.hpp: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_random_int_push_timing.cc
* testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp: Same.
* testsuite/performance/ext/pb_ds/
priority_queue_text_modify_timing.hpp: Same.
* testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc
* testsuite/performance/ext/pb_ds/
priority_queue_text_push_pop_timing.cc
* testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc
* testsuite/performance/ext/pb_ds/
priority_queue_random_int_push_pop_timing.cc
* testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc
* testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc
* testsuite/performance/ext/pb_ds/
multimap_text_insert_timing.hpp: Same.
* testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc
* testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc
* testsuite/performance/23_containers/find/map.cc
* testsuite/performance/23_containers/create/map.cc
* testsuite/performance/23_containers/insert_erase/associative.cc
* testsuite/performance/23_containers/insert/sequence.cc
* testsuite/performance/23_containers/insert/associative.cc
* testsuite/performance/23_containers/create_from_sorted/set.cc
* testsuite/performance/23_containers/index/map.cc
* testsuite/performance/23_containers/insert_from_sorted/set.cc
* testsuite/performance/23_containers/create_sort/list.cc
* testsuite/performance/23_containers/sort_search/list.cc
* testsuite/performance/23_containers/producer_consumer/sequence.cc
* testsuite/performance/23_containers/producer_consumer/associative.cc
* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
* testsuite/util/regression/rand/priority_queue/
rand_regression_test.hpp: Same.
* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same.
* testsuite/util/regression/assoc/common_type.hpp: Same.
* testsuite/util/native_type/assoc/native_multimap.hpp: Same.
* testsuite/util/native_type/assoc/native_tree_tag.hpp: Same.
* testsuite/util/native_type/assoc/native_hash_multimap.hpp: Same.
* testsuite/util/native_type/assoc/native_set.hpp: Same.
* testsuite/util/native_type/assoc/native_map.hpp: Same.
* testsuite/util/native_type/assoc/native_hash_set.hpp: Same.
* testsuite/util/native_type/assoc/native_hash_map.hpp: Same.
* testsuite/util/common_type/priority_queue/common_type.hpp: Same.
* testsuite/util/common_type/assoc/common_type.hpp: Same.
* testsuite/util/common_type/assoc/string_form.hpp: Same.
* testsuite/util/common_type/assoc/template_policy.hpp: Same.
* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
Same.
* testsuite/util/performance/priority_queue/timing/push_pop_test.hpp:
Same.
* testsuite/util/performance/priority_queue/timing/join_test.hpp: Same.
* testsuite/util/performance/priority_queue/timing/push_test.hpp: Same.
* testsuite/util/performance/priority_queue/timing/modify_test.hpp:
Same.
* testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp:
Same.
* testsuite/util/performance/assoc/mem_usage/erase_test.hpp: Same.
* testsuite/util/performance/assoc/timing/common_type.hpp: Same.
* testsuite/util/performance/assoc/timing/multimap_insert_test.hpp:
Same.
* testsuite/util/performance/assoc/timing/subscript_find_test.hpp:
Same.
* testsuite/util/performance/assoc/timing/find_test.hpp: Same.
* testsuite/util/performance/assoc/timing/subscript_insert_test.hpp:
Same.
* testsuite/util/performance/assoc/timing/insert_test.hpp: Same.
* testsuite/util/performance/assoc/timing/
tree_order_statistics_test.hpp: Same.
* testsuite/util/performance/assoc/timing/multimap_find_test.hpp: Same.
* testsuite/util/performance/assoc/timing/tree_split_join_test.hpp:
Same.
* testsuite/util/performance/assoc/multimap_common_type.hpp: Same.
* testsuite/ext/pb_ds/example/hash_resize_neg.cc: Fixup line numbers.
From-SVN: r117081
92 files changed, 958 insertions, 2315 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0d8622b..c4f2fe8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,126 @@ +2006-09-20 Benjamin Kosnik <bkoz@redhat.com> + + * include/ext/pb_ds/detail/ + typelist_assoc_container.hpp: Remove, unused. + * include/ext/pb_ds/detail/typelist/ + typelist_assoc_container_find.hpp: Same. + * include/ext/pb_ds/detail/typelist: Remove. + * include/ext/pb_ds/detail/typelist.hpp: Merge... + * include/ext/pb_ds/detail/typelist/typelist_flatten.hpp: Same. + * include/ext/pb_ds/detail/typelist/typelist_contains.hpp: Same. + * include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp: Same. + * include/ext/pb_ds/detail/typelist/typelist_apply.hpp: Same. + * include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same. + * include/ext/pb_ds/detail/typelist/typelist_append.hpp: Same. + * include/ext/pb_ds/detail/typelist/typelist_at_index.hpp: Same. + * include/ext/pb_ds/detail/typelist/typelist_transform.hpp: Same. + * include/ext/typelist.h: ... into this. + * include/Makefile.am: Subtractions. + * include/Makefile.in: Regenerate. + + * include/ext/pb_ds/assoc_container.hpp: Fixups for new includes, + namespaces, and names. + * include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + hash_prime_size_policy_imp.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + cc_hash_max_collision_check_resize_trigger_imp.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + sample_resize_policy.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + sample_resize_trigger.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + hash_exponential_size_policy_imp.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + hash_load_check_resize_trigger_size_base.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + hash_load_check_resize_trigger_imp.hpp: Same. + * include/ext/pb_ds/detail/resize_policy/ + hash_standard_resize_policy_imp.hpp: Same. + * include/ext/pb_ds/detail/container_base_dispatch.hpp: Same. + * testsuite/performance/ext/pb_ds/text_find_timing.cc + * testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc + * testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc + * testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc + * testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc + * testsuite/performance/ext/pb_ds/tree_split_join_timing.cc + * testsuite/performance/ext/pb_ds/random_int_find_timing.cc + * testsuite/performance/ext/pb_ds/ + multimap_text_insert_mem_usage.hpp: Same. + * testsuite/performance/ext/pb_ds/ + priority_queue_random_int_push_timing.cc + * testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp: Same. + * testsuite/performance/ext/pb_ds/ + priority_queue_text_modify_timing.hpp: Same. + * testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc + * testsuite/performance/ext/pb_ds/ + priority_queue_text_push_pop_timing.cc + * testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc + * testsuite/performance/ext/pb_ds/ + priority_queue_random_int_push_pop_timing.cc + * testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc + * testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc + * testsuite/performance/ext/pb_ds/ + multimap_text_insert_timing.hpp: Same. + * testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc + * testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc + * testsuite/performance/23_containers/find/map.cc + * testsuite/performance/23_containers/create/map.cc + * testsuite/performance/23_containers/insert_erase/associative.cc + * testsuite/performance/23_containers/insert/sequence.cc + * testsuite/performance/23_containers/insert/associative.cc + * testsuite/performance/23_containers/create_from_sorted/set.cc + * testsuite/performance/23_containers/index/map.cc + * testsuite/performance/23_containers/insert_from_sorted/set.cc + * testsuite/performance/23_containers/create_sort/list.cc + * testsuite/performance/23_containers/sort_search/list.cc + * testsuite/performance/23_containers/producer_consumer/sequence.cc + * testsuite/performance/23_containers/producer_consumer/associative.cc + * testsuite/util/regression/trait/assoc/type_trait.hpp: Same. + * testsuite/util/regression/rand/priority_queue/ + rand_regression_test.hpp: Same. + * testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same. + * testsuite/util/regression/assoc/common_type.hpp: Same. + * testsuite/util/native_type/assoc/native_multimap.hpp: Same. + * testsuite/util/native_type/assoc/native_tree_tag.hpp: Same. + * testsuite/util/native_type/assoc/native_hash_multimap.hpp: Same. + * testsuite/util/native_type/assoc/native_set.hpp: Same. + * testsuite/util/native_type/assoc/native_map.hpp: Same. + * testsuite/util/native_type/assoc/native_hash_set.hpp: Same. + * testsuite/util/native_type/assoc/native_hash_map.hpp: Same. + * testsuite/util/common_type/priority_queue/common_type.hpp: Same. + * testsuite/util/common_type/assoc/common_type.hpp: Same. + * testsuite/util/common_type/assoc/string_form.hpp: Same. + * testsuite/util/common_type/assoc/template_policy.hpp: Same. + * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp: + Same. + * testsuite/util/performance/priority_queue/timing/push_pop_test.hpp: + Same. + * testsuite/util/performance/priority_queue/timing/join_test.hpp: Same. + * testsuite/util/performance/priority_queue/timing/push_test.hpp: Same. + * testsuite/util/performance/priority_queue/timing/modify_test.hpp: + Same. + * testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp: + Same. + * testsuite/util/performance/assoc/mem_usage/erase_test.hpp: Same. + * testsuite/util/performance/assoc/timing/common_type.hpp: Same. + * testsuite/util/performance/assoc/timing/multimap_insert_test.hpp: + Same. + * testsuite/util/performance/assoc/timing/subscript_find_test.hpp: + Same. + * testsuite/util/performance/assoc/timing/find_test.hpp: Same. + * testsuite/util/performance/assoc/timing/subscript_insert_test.hpp: + Same. + * testsuite/util/performance/assoc/timing/insert_test.hpp: Same. + * testsuite/util/performance/assoc/timing/ + tree_order_statistics_test.hpp: Same. + * testsuite/util/performance/assoc/timing/multimap_find_test.hpp: Same. + * testsuite/util/performance/assoc/timing/tree_split_join_test.hpp: + Same. + * testsuite/util/performance/assoc/multimap_common_type.hpp: Same. + + * testsuite/ext/pb_ds/example/hash_resize_neg.cc: Fixup line numbers. + 2006-09-19 Paolo Carlini <pcarlini@suse.de> * include/tr1/hashtable_policy.h: Uglify all the names. diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am index 7c941f7..04cd930 100644 --- a/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am @@ -204,7 +204,6 @@ pb_subdirs = \ ${pb_builddir}/detail/pairing_heap_ \ ${pb_builddir}/detail/splay_tree_ \ ${pb_builddir}/detail/list_update_map_ \ - ${pb_builddir}/detail/typelist \ ${pb_builddir}/detail/basic_tree_policy \ ${pb_builddir}/detail/trie_policy \ ${pb_builddir}/detail/gp_hash_table_map_ \ @@ -503,17 +502,6 @@ pb_headers7 = \ ${pb_srcdir}/detail/trie_policy/sample_trie_node_update.hpp \ ${pb_srcdir}/detail/trie_policy/string_trie_e_access_traits_imp.hpp \ ${pb_srcdir}/detail/trie_policy/trie_policy_base.hpp \ - ${pb_srcdir}/detail/typelist_assoc_container.hpp \ - ${pb_srcdir}/detail/typelist.hpp \ - ${pb_srcdir}/detail/typelist/typelist_append.hpp \ - ${pb_srcdir}/detail/typelist/typelist_apply.hpp \ - ${pb_srcdir}/detail/typelist/typelist_assoc_container_find.hpp \ - ${pb_srcdir}/detail/typelist/typelist_at_index.hpp \ - ${pb_srcdir}/detail/typelist/typelist_contains.hpp \ - ${pb_srcdir}/detail/typelist/typelist_filter.hpp \ - ${pb_srcdir}/detail/typelist/typelist_flatten.hpp \ - ${pb_srcdir}/detail/typelist/typelist_transform.hpp \ - ${pb_srcdir}/detail/typelist/typelist_typelist_append.hpp \ ${pb_srcdir}/detail/types_traits.hpp \ ${pb_srcdir}/detail/type_utils.hpp \ ${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \ diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index eef91dd..87eb188 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -427,7 +427,6 @@ pb_subdirs = \ ${pb_builddir}/detail/pairing_heap_ \ ${pb_builddir}/detail/splay_tree_ \ ${pb_builddir}/detail/list_update_map_ \ - ${pb_builddir}/detail/typelist \ ${pb_builddir}/detail/basic_tree_policy \ ${pb_builddir}/detail/trie_policy \ ${pb_builddir}/detail/gp_hash_table_map_ \ @@ -726,17 +725,6 @@ pb_headers7 = \ ${pb_srcdir}/detail/trie_policy/sample_trie_node_update.hpp \ ${pb_srcdir}/detail/trie_policy/string_trie_e_access_traits_imp.hpp \ ${pb_srcdir}/detail/trie_policy/trie_policy_base.hpp \ - ${pb_srcdir}/detail/typelist_assoc_container.hpp \ - ${pb_srcdir}/detail/typelist.hpp \ - ${pb_srcdir}/detail/typelist/typelist_append.hpp \ - ${pb_srcdir}/detail/typelist/typelist_apply.hpp \ - ${pb_srcdir}/detail/typelist/typelist_assoc_container_find.hpp \ - ${pb_srcdir}/detail/typelist/typelist_at_index.hpp \ - ${pb_srcdir}/detail/typelist/typelist_contains.hpp \ - ${pb_srcdir}/detail/typelist/typelist_filter.hpp \ - ${pb_srcdir}/detail/typelist/typelist_flatten.hpp \ - ${pb_srcdir}/detail/typelist/typelist_transform.hpp \ - ${pb_srcdir}/detail/typelist/typelist_typelist_append.hpp \ ${pb_srcdir}/detail/types_traits.hpp \ ${pb_srcdir}/detail/type_utils.hpp \ ${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \ diff --git a/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp b/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp index bfc88b4..4491768 100644 --- a/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp +++ b/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp @@ -47,7 +47,7 @@ #ifndef PB_DS_ASSOC_CNTNR_HPP #define PB_DS_ASSOC_CNTNR_HPP -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <ext/pb_ds/tag_and_trait.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> #include <ext/pb_ds/detail/container_base_dispatch.hpp> @@ -55,7 +55,7 @@ namespace pb_ds { -#define PB_DS_BASE_C_DEC \ +#define PB_DS_BASE_C_DEC \ detail::container_base_dispatch<Key, Mapped, Tag, Policy_Tl, Allocator>::type // An abstract basic associative container. @@ -117,10 +117,9 @@ namespace pb_ds #undef PB_DS_BASE_C_DEC -#define PB_DS_BASE_C_DEC \ - container_base<Key, Mapped, Tag, typename detail::typelist_append< \ - typename detail::typelist4<Hash_Fn, Eq_Fn, Resize_Policy, detail::integral_constant<int,Store_Hash> >::type, \ - Policy_TL>::type, Allocator> +#define PB_DS_BASE_C_DEC \ + container_base<Key, Mapped, Tag, typename __gnu_cxx::typelist::append< \ + typename __gnu_cxx::typelist::create4<Hash_Fn, Eq_Fn, Resize_Policy, detail::integral_constant<int, Store_Hash> >::type, Policy_TL>::type, Allocator> // An abstract basic hash-based associative container. template<typename Key, @@ -154,10 +153,10 @@ namespace pb_ds #undef PB_DS_BASE_C_DEC -#define PB_DS_BASE_C_DEC \ +#define PB_DS_BASE_C_DEC \ basic_hash_table<Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, \ - cc_hash_tag, \ - typename detail::typelist1<Comb_Hash_Fn>::type, Allocator> + cc_hash_tag, \ + typename __gnu_cxx::typelist::create1<Comb_Hash_Fn>::type, Allocator> // A concrete collision-chaining hash-based associative container. template<typename Key, @@ -291,10 +290,10 @@ namespace pb_ds #undef PB_DS_BASE_C_DEC -#define PB_DS_BASE_C_DEC \ +#define PB_DS_BASE_C_DEC \ basic_hash_table<Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, \ - gp_hash_tag, \ - typename detail::typelist2<Comb_Probe_Fn, Probe_Fn>::type, Allocator> + gp_hash_tag, \ + typename __gnu_cxx::typelist::create2<Comb_Probe_Fn, Probe_Fn>::type, Allocator> // A concrete general-probing hash-based associative container. template<typename Key, @@ -490,7 +489,7 @@ namespace pb_ds #define PB_DS_BASE_C_DEC \ basic_tree<Key,Mapped,Tag,typename PB_DS_TREE_NODE_AND_IT_TRAITS_C_DEC::node_update, \ - typename detail::typelist2<Cmp_Fn, PB_DS_TREE_NODE_AND_IT_TRAITS_C_DEC >::type, Allocator> + typename __gnu_cxx::typelist::create2<Cmp_Fn, PB_DS_TREE_NODE_AND_IT_TRAITS_C_DEC >::type, Allocator> // A concrete basic tree-based associative container. template<typename Key, typename Mapped, typename Cmp_Fn = std::less<Key>, @@ -561,7 +560,7 @@ namespace pb_ds #define PB_DS_BASE_C_DEC \ basic_tree<Key,Mapped,Tag, typename PB_DS_TRIE_NODE_AND_ITS_TRAITS::node_update, \ - typename detail::typelist2<E_Access_Traits, PB_DS_TRIE_NODE_AND_ITS_TRAITS >::type, Allocator> + typename __gnu_cxx::typelist::create2<E_Access_Traits, PB_DS_TRIE_NODE_AND_ITS_TRAITS >::type, Allocator> // A concrete basic trie-based associative container. template<typename Key, @@ -632,9 +631,9 @@ namespace pb_ds #undef PB_DS_TRIE_NODE_AND_ITS_TRAITS -#define PB_DS_BASE_C_DEC \ - container_base<Key, Mapped, list_update_tag, \ - typename detail::typelist2<Eq_Fn, Update_Policy>::type, Allocator> +#define PB_DS_BASE_C_DEC \ + container_base<Key, Mapped, list_update_tag, \ + typename __gnu_cxx::typelist::create2<Eq_Fn, Update_Policy>::type, Allocator> // A list-update based associative container. template<typename Key, diff --git a/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp b/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp index 6009a68..37db003 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp @@ -47,7 +47,7 @@ #ifndef PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP #define PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #define PB_DS_DATA_TRUE_INDICATOR #include <ext/pb_ds/detail/list_update_map_/lu_map_.hpp> @@ -107,303 +107,232 @@ namespace pb_ds { - namespace detail +namespace detail +{ + // Primary template. + template<typename Key, typename Mapped, typename Data_Structure_Taq, + typename Policy_Tl, typename Alloc> + struct container_base_dispatch; + + template<typename Key, typename Mapped, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, Mapped, list_update_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef lu_map_data_<Key, Mapped, at0t, Alloc, at1t> type; + }; + + template<typename Key, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, null_mapped_type, list_update_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef lu_map_no_data_<Key, null_mapped_type, at0t, Alloc, at1t> type; + }; + + template<typename Key, typename Mapped, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, Mapped, pat_trie_tag, Policy_Tl, Alloc> { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; - template<typename Key, - typename Mapped, - class Data_Structure_Taq, - class Policy_Tl, - class Allocator> - struct container_base_dispatch; - - template<typename Key, - typename Mapped, - class Policy_Tl, - class Allocator> - struct container_base_dispatch< - Key, - Mapped, - list_update_tag, - Policy_Tl, - Allocator> - { - typedef - lu_map_data_< - Key, - Mapped, - typename typelist_at_index<Policy_Tl, 0>::type, - Allocator, - typename typelist_at_index<Policy_Tl, 1>::type> - type; - }; - - template<typename Key, class Policy_Tl, class Allocator> - struct container_base_dispatch< - Key, - null_mapped_type, - list_update_tag, - Policy_Tl, - Allocator> - { - typedef - lu_map_no_data_< - Key, - null_mapped_type, - typename typelist_at_index<Policy_Tl, 0>::type, - Allocator, - typename typelist_at_index<Policy_Tl, 1>::type> - type; - }; - - template<typename Key, - typename Mapped, - class Policy_Tl, - class Allocator> - struct container_base_dispatch< - Key, - Mapped, - pat_trie_tag, - Policy_Tl, - Allocator> - { - typedef - pat_trie_data_< - Key, - Mapped, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, class Policy_Tl, class Allocator> - struct container_base_dispatch< - Key, - null_mapped_type, - pat_trie_tag, - Policy_Tl, - Allocator> - { - typedef - pat_trie_no_data_< - Key, - null_mapped_type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, - typename Mapped, - class Policy_Tl, - class Allocator> - struct container_base_dispatch< - Key, - Mapped, - rb_tree_tag, - Policy_Tl, - Allocator> - { - typedef - rb_tree_data_< - Key, - Mapped, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, class Policy_Tl, class Allocator> - struct container_base_dispatch< - Key, - null_mapped_type, - rb_tree_tag, - Policy_Tl, - Allocator> - { - typedef - rb_tree_no_data_< - Key, - null_mapped_type, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, - typename Mapped, - class Policy_Tl, - class Allocator> - struct container_base_dispatch< - Key, - Mapped, - splay_tree_tag, - Policy_Tl, - Allocator> - - { - typedef - splay_tree_data_< - Key, - Mapped, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, class Policy_Tl, class Allocator> - struct container_base_dispatch< - Key, - null_mapped_type, - splay_tree_tag, - Policy_Tl, - Allocator> - { - typedef - splay_tree_no_data_< - Key, - null_mapped_type, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, - typename Mapped, - class Policy_Tl, - class Allocator> - struct container_base_dispatch< - Key, - Mapped, - ov_tree_tag, - Policy_Tl, - Allocator> - { - typedef - ov_tree_data_< - Key, - Mapped, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, class Policy_Tl, class Allocator> - struct container_base_dispatch< - Key, - null_mapped_type, - ov_tree_tag, - Policy_Tl, - Allocator> - { - typedef - ov_tree_no_data_< - Key, - null_mapped_type, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator> - type; - }; - - template<typename Key, - typename Mapped, - class Policy_Tl, - class Allocator> - struct container_base_dispatch< - Key, - Mapped, - cc_hash_tag, - Policy_Tl, - Allocator> - { - typedef - cc_ht_map_data_< - Key, - Mapped, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator, - typelist_at_index<Policy_Tl, 3>::type::value, - typename typelist_at_index<Policy_Tl, 4>::type, - typename typelist_at_index<Policy_Tl, 2>::type> - type; - }; - - template<typename Key, class Policy_Tl, class Allocator> - struct container_base_dispatch< - Key, - null_mapped_type, - cc_hash_tag, - Policy_Tl, - Allocator> - { - typedef - cc_ht_map_no_data_< - Key, - null_mapped_type, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator, - typelist_at_index<Policy_Tl, 3>::type::value, - typename typelist_at_index<Policy_Tl, 4>::type, - typename typelist_at_index<Policy_Tl, 2>::type> - type; - }; - - template<typename Key, - typename Mapped, - class Policy_Tl, - class Allocator> - struct container_base_dispatch< - Key, - Mapped, - gp_hash_tag, - Policy_Tl, - Allocator> - { - typedef - gp_ht_map_data_< - Key, - Mapped, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator, - typelist_at_index<Policy_Tl, 3>::type::value, - typename typelist_at_index<Policy_Tl, 4>::type, - typename typelist_at_index<Policy_Tl, 5>::type, - typename typelist_at_index<Policy_Tl, 2>::type> - type; - }; - - template<typename Key, class Policy_Tl, class Allocator> - struct container_base_dispatch< - Key, - null_mapped_type, - gp_hash_tag, - Policy_Tl, - Allocator> - { - typedef - gp_ht_map_no_data_< - Key, - null_mapped_type, - typename typelist_at_index<Policy_Tl, 0>::type, - typename typelist_at_index<Policy_Tl, 1>::type, - Allocator, - typelist_at_index<Policy_Tl, 3>::type::value, - typename typelist_at_index<Policy_Tl, 4>::type, - typename typelist_at_index<Policy_Tl, 5>::type, - typename typelist_at_index<Policy_Tl, 2>::type> - type; - }; - - } // namespace detail + public: + typedef pat_trie_data_<Key, Mapped, at1t, Alloc> type; + }; + + template<typename Key, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, null_mapped_type, pat_trie_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef pat_trie_no_data_<Key, null_mapped_type, at1t, Alloc> type; + }; + + template<typename Key, typename Mapped, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, Mapped, rb_tree_tag, Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef rb_tree_data_<Key, Mapped, at0t, at1t, Alloc> type; + }; + + template<typename Key, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, null_mapped_type, rb_tree_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef rb_tree_no_data_<Key, null_mapped_type, at0t, at1t, Alloc> type; + }; + + template<typename Key, typename Mapped, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, Mapped, splay_tree_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef splay_tree_data_<Key, Mapped, at0t, at1t, Alloc> type; + }; + + template<typename Key, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, null_mapped_type, splay_tree_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef splay_tree_no_data_<Key, null_mapped_type, at0t, at1t, Alloc> type; + }; + + template<typename Key, typename Mapped, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, Mapped, ov_tree_tag, Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef ov_tree_data_<Key, Mapped, at0t, at1t, Alloc> type; + }; + + template<typename Key, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, null_mapped_type, ov_tree_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + + public: + typedef ov_tree_no_data_<Key, null_mapped_type, at0t, at1t, Alloc> type; + }; + + template<typename Key, typename Mapped, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, Mapped, cc_hash_tag, Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2> at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3> at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4> at4; + typedef typename at4::type at4t; + + public: + typedef cc_ht_map_data_<Key, Mapped, at0t, at1t, Alloc, at3t::value, + at4t, at2t> type; + }; + + template<typename Key, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, null_mapped_type, cc_hash_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2> at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3> at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4> at4; + typedef typename at4::type at4t; + + public: + typedef cc_ht_map_no_data_<Key, null_mapped_type, at0t, at1t, Alloc, + at3t::value, at4t, at2t> type; + }; + + template<typename Key, typename Mapped, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, Mapped, gp_hash_tag, Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2> at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3> at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4> at4; + typedef typename at4::type at4t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 5> at5; + typedef typename at5::type at5t; + + public: + typedef gp_ht_map_data_<Key, Mapped, at0t, at1t, Alloc, at3t::value, + at4t, at5t, at2t> type; + }; + + template<typename Key, typename Policy_Tl, typename Alloc> + struct container_base_dispatch<Key, null_mapped_type, gp_hash_tag, + Policy_Tl, Alloc> + { + private: + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 0> at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 1> at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 2> at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 3> at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 4> at4; + typedef typename at4::type at4t; + typedef __gnu_cxx::typelist::at_index<Policy_Tl, 5> at5; + typedef typename at5::type at5t; + + public: + typedef gp_ht_map_no_data_<Key, null_mapped_type, at0t, at1t, Alloc, + at3t::value, at4t, at5t, at2t> type; + }; +} // namespace detail } // namespace pb_ds -#endif // #ifndef PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP +#endif diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp index 6365672..c10f7b6 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp @@ -44,9 +44,8 @@ * Contains a resize trigger implementation. */ -#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ - typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> \ - UNIQUE##static_assert_type +#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ + typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> UNIQUE##static_assert_type PB_DS_CLASS_T_DEC PB_DS_CLASS_C_DEC:: @@ -80,25 +79,19 @@ PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_insert_search_start() -{ - m_num_col = 0; -} +{ m_num_col = 0; } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_insert_search_collision() -{ - ++m_num_col; -} +{ ++m_num_col; } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_insert_search_end() -{ - calc_resize_needed(); -} +{ calc_resize_needed(); } PB_DS_CLASS_T_DEC inline void @@ -121,40 +114,32 @@ notify_erase_search_end() PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: -notify_inserted(size_type /*num_e*/) +notify_inserted(size_type) { } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: -notify_erased(size_type /*num_e*/) -{ - m_resize_needed = true; -} +notify_erased(size_type) +{ m_resize_needed = true; } PB_DS_CLASS_T_DEC void PB_DS_CLASS_C_DEC:: notify_cleared() -{ - m_resize_needed = false; -} +{ m_resize_needed = false; } PB_DS_CLASS_T_DEC inline bool PB_DS_CLASS_C_DEC:: is_resize_needed() const -{ - return (m_resize_needed); -} +{ return m_resize_needed; } PB_DS_CLASS_T_DEC inline bool PB_DS_CLASS_C_DEC:: is_grow_needed(size_type /*size*/, size_type /*num_used_e*/) const -{ - return (m_num_col >= m_max_col); -} +{ return m_num_col >= m_max_col; } PB_DS_CLASS_T_DEC void @@ -164,14 +149,12 @@ notify_resized(size_type new_size) m_size = new_size; #ifdef PB_DS_HT_MAP_RESIZE_TRACE_ - std::cerr << "chmccrt::notify_resized " << - static_cast<unsigned long>(new_size) << std::endl; -#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_ + std::cerr << "chmccrt::notify_resized " + << static_cast<unsigned long>(new_size) << std::endl; +#endif calc_max_num_coll(); - calc_resize_needed(); - m_num_col = 0; } @@ -181,25 +164,21 @@ PB_DS_CLASS_C_DEC:: calc_max_num_coll() { // max_col <-- \sqrt{2 load \ln( 2 m \ln( m ) ) } - - const double ln_arg = 2* m_size* ::log( (double)m_size); - - m_max_col =(size_type)::ceil( ::sqrt(2* m_load* ::log(ln_arg) ) ); + const double ln_arg = 2 * m_size * ::log(double(m_size)); + m_max_col = size_type(::ceil(::sqrt(2 * m_load * ::log(ln_arg)))); #ifdef PB_DS_HT_MAP_RESIZE_TRACE_ - std::cerr << "chmccrt::calc_max_num_coll " << - static_cast<unsigned long>(m_size) << " " << - static_cast<unsigned long>(m_max_col) << std::endl; -#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_ + std::cerr << "chmccrt::calc_max_num_coll " + << static_cast<unsigned long>(m_size) << " " + << static_cast<unsigned long>(m_max_col) << std::endl; +#endif } PB_DS_CLASS_T_DEC void PB_DS_CLASS_C_DEC:: notify_externally_resized(size_type new_size) -{ - notify_resized(new_size); -} +{ notify_resized(new_size); } PB_DS_CLASS_T_DEC void @@ -207,13 +186,9 @@ PB_DS_CLASS_C_DEC:: swap(PB_DS_CLASS_C_DEC& other) { std::swap(m_load, other.m_load); - std::swap(m_size, other.m_size); - std::swap(m_num_col, other.m_num_col); - std::swap(m_max_col, other.m_max_col); - std::swap(m_resize_needed, other.m_resize_needed); } @@ -223,18 +198,14 @@ PB_DS_CLASS_C_DEC:: get_load() const { PB_DS_STATIC_ASSERT(access, external_load_access); - - return (m_load); + return m_load; } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: calc_resize_needed() -{ - m_resize_needed = - m_resize_needed || m_num_col >= m_max_col; -} +{ m_resize_needed = m_resize_needed || m_num_col >= m_max_col; } PB_DS_CLASS_T_DEC void @@ -242,11 +213,8 @@ PB_DS_CLASS_C_DEC:: set_load(float load) { PB_DS_STATIC_ASSERT(access, external_load_access); - m_load = load; - calc_max_num_coll(); - calc_resize_needed(); } diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp index ca98d9b..ccd7221 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp @@ -57,7 +57,6 @@ PB_DS_CLASS_C_DEC:: swap(PB_DS_CLASS_C_DEC& other) { std::swap(m_start_size, other.m_start_size); - std::swap(m_grow_factor, other.m_grow_factor); } @@ -67,18 +66,14 @@ PB_DS_CLASS_C_DEC:: get_nearest_larger_size(size_type size) const { size_type ret = m_start_size; - while (ret <= size) { const size_type next_ret = ret* m_grow_factor; - if (next_ret < ret) throw insert_error(); - ret = next_ret; } - - return (ret); + return ret; } PB_DS_CLASS_T_DEC @@ -87,20 +82,15 @@ PB_DS_CLASS_C_DEC:: get_nearest_smaller_size(size_type size) const { size_type ret = m_start_size; - while (true) { const size_type next_ret = ret* m_grow_factor; - if (next_ret < ret) throw resize_error(); - if (next_ret >= size) return (ret); - ret = next_ret; } - - return (ret); + return ret; } diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp index 2733030..9d67959 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp @@ -44,8 +44,8 @@ * Contains a resize trigger implementation. */ -#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ - typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> UNIQUE##static_assert_type +#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ + typedef detail::static_assert_dumclass<sizeof(detail::static_assert<bool(E)>)> UNIQUE##static_assert_type PB_DS_CLASS_T_DEC PB_DS_CLASS_C_DEC:: diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp index 488f4c5..436de79 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp @@ -49,124 +49,52 @@ namespace pb_ds { - namespace detail { - + // Primary template. template<typename Size_Type, bool Hold_Size> class hash_load_check_resize_trigger_size_base; -#define PB_DS_CLASS_T_DEC \ + // Specializations. template<typename Size_Type> - -#define PB_DS_CLASS_C_DEC \ - hash_load_check_resize_trigger_size_base< \ - Size_Type, \ - true> - - template<typename Size_Type> - class hash_load_check_resize_trigger_size_base< - Size_Type, - true> + class hash_load_check_resize_trigger_size_base<Size_Type, true> { protected: typedef Size_Type size_type; - protected: - inline - hash_load_check_resize_trigger_size_base(); + hash_load_check_resize_trigger_size_base(): m_size(0) + { } inline void - swap(PB_DS_CLASS_C_DEC& other); + swap(hash_load_check_resize_trigger_size_base& other) + { std::swap(m_size, other.m_size); } inline void - set_size(size_type size); + set_size(size_type size) + { m_size = size; } inline size_type - get_size() const; + get_size() const + { return m_size; } private: size_type m_size; }; - PB_DS_CLASS_T_DEC - PB_DS_CLASS_C_DEC:: - hash_load_check_resize_trigger_size_base() : - m_size(0) - { } - - PB_DS_CLASS_T_DEC - inline void - PB_DS_CLASS_C_DEC:: - set_size(size_type size) - { - m_size = size; - } - - PB_DS_CLASS_T_DEC - inline typename PB_DS_CLASS_C_DEC::size_type - PB_DS_CLASS_C_DEC:: - get_size() const - { - return (m_size); - } - - PB_DS_CLASS_T_DEC - inline void - PB_DS_CLASS_C_DEC:: - swap(PB_DS_CLASS_C_DEC& other) - { - std::swap(m_size, other.m_size); - } - -#undef PB_DS_CLASS_T_DEC - -#undef PB_DS_CLASS_C_DEC - -#define PB_DS_CLASS_T_DEC \ - template<typename Size_Type> - -#define PB_DS_CLASS_C_DEC \ - hash_load_check_resize_trigger_size_base< \ - Size_Type, \ - false> - template<typename Size_Type> - class hash_load_check_resize_trigger_size_base< - Size_Type, - false> + class hash_load_check_resize_trigger_size_base<Size_Type, false> { protected: typedef Size_Type size_type; protected: inline void - swap(PB_DS_CLASS_C_DEC& other); + swap(hash_load_check_resize_trigger_size_base& other) { } inline void - set_size(size_type size); + set_size(size_type size) { } }; - - PB_DS_CLASS_T_DEC - inline void - PB_DS_CLASS_C_DEC:: - swap(PB_DS_CLASS_C_DEC& /*other*/) - { } - - PB_DS_CLASS_T_DEC - inline void - PB_DS_CLASS_C_DEC:: - set_size(size_type /*size*/) - { - // Do nothing - } - -#undef PB_DS_CLASS_T_DEC - -#undef PB_DS_CLASS_C_DEC - } // namespace detail - } // namespace pb_ds -#endif // #ifndef PB_DS_HASH_LOAD_CHECK_RESIZE_TRIGGER_SIZE_BASE_HPP +#endif diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp index fea534c..8303c3f 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp @@ -46,7 +46,6 @@ namespace detail { - enum { num_distinct_sizes_32_bit = 30, @@ -57,7 +56,6 @@ namespace detail // Originally taken from the SGI implementation; acknowledged in the docs. // Further modified (for 64 bits) from tr1's hashtable. - static const std::size_t g_a_sizes[num_distinct_sizes_64_bit] = { /* 0 */ 5ul, @@ -129,33 +127,26 @@ namespace detail PB_DS_CLASS_T_DEC inline PB_DS_CLASS_C_DEC:: -hash_prime_size_policy(size_type start_size) : - m_start_size(start_size) -{ - m_start_size = - get_nearest_larger_size(start_size); -} +hash_prime_size_policy(size_type start_size) : m_start_size(start_size) +{ m_start_size = get_nearest_larger_size(start_size); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: swap(PB_DS_CLASS_C_DEC& other) -{ - std::swap(m_start_size, other.m_start_size); -} +{ std::swap(m_start_size, other.m_start_size); } PB_DS_CLASS_T_DEC inline PB_DS_CLASS_C_DEC::size_type PB_DS_CLASS_C_DEC:: get_nearest_larger_size(size_type size) const { - const std::size_t* const p_upper = - std::upper_bound( detail::g_a_sizes, detail::g_a_sizes + detail::num_distinct_sizes, size); + const std::size_t* const p_upper = std::upper_bound(detail::g_a_sizes, + detail::g_a_sizes + detail::num_distinct_sizes, size); if (p_upper == detail::g_a_sizes + detail::num_distinct_sizes) throw resize_error(); - - return (*p_upper); + return *p_upper; } PB_DS_CLASS_T_DEC @@ -163,13 +154,12 @@ inline PB_DS_CLASS_C_DEC::size_type PB_DS_CLASS_C_DEC:: get_nearest_smaller_size(size_type size) const { - const size_t* p_lower = std::lower_bound( detail::g_a_sizes, detail::g_a_sizes + detail::num_distinct_sizes, size); + const size_t* p_lower = std::lower_bound(detail::g_a_sizes, + detail::g_a_sizes + detail::num_distinct_sizes, size); if (*p_lower >= size&& p_lower != detail::g_a_sizes) --p_lower; - if (*p_lower < m_start_size) - return (m_start_size); - - return (*p_lower); + return m_start_size; + return *p_lower; } diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp index 460528a..bbea0b2 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp @@ -44,36 +44,30 @@ * Contains a resize policy implementation. */ -#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ - typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> \ - UNIQUE##static_assert_type +#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ + typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> UNIQUE##static_assert_type PB_DS_CLASS_T_DEC PB_DS_CLASS_C_DEC:: hash_standard_resize_policy() : m_size(Size_Policy::get_nearest_larger_size(1)) -{ - trigger_policy_base::notify_externally_resized(m_size); -} +{ trigger_policy_base::notify_externally_resized(m_size); } PB_DS_CLASS_T_DEC PB_DS_CLASS_C_DEC:: hash_standard_resize_policy(const Size_Policy& r_size_policy) : Size_Policy(r_size_policy), m_size(Size_Policy::get_nearest_larger_size(1)) -{ - trigger_policy_base::notify_externally_resized(m_size); -} +{ trigger_policy_base::notify_externally_resized(m_size); } PB_DS_CLASS_T_DEC PB_DS_CLASS_C_DEC:: -hash_standard_resize_policy(const Size_Policy& r_size_policy, const Trigger_Policy& r_trigger_policy) : +hash_standard_resize_policy(const Size_Policy& r_size_policy, + const Trigger_Policy& r_trigger_policy) : Size_Policy(r_size_policy), Trigger_Policy(r_trigger_policy), m_size(Size_Policy::get_nearest_larger_size(1)) -{ - trigger_policy_base::notify_externally_resized(m_size); -} +{ trigger_policy_base::notify_externally_resized(m_size); } PB_DS_CLASS_T_DEC PB_DS_CLASS_C_DEC:: @@ -86,9 +80,7 @@ PB_DS_CLASS_C_DEC:: swap(PB_DS_CLASS_C_DEC& other) { trigger_policy_base::swap(other); - size_policy_base::swap(other); - std::swap(m_size, other.m_size); } @@ -96,105 +88,79 @@ PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_find_search_start() -{ - trigger_policy_base::notify_find_search_start(); -} +{ trigger_policy_base::notify_find_search_start(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_find_search_collision() -{ - trigger_policy_base::notify_find_search_collision(); -} +{ trigger_policy_base::notify_find_search_collision(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_find_search_end() -{ - trigger_policy_base::notify_find_search_end(); -} +{ trigger_policy_base::notify_find_search_end(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_insert_search_start() -{ - trigger_policy_base::notify_insert_search_start(); -} +{ trigger_policy_base::notify_insert_search_start(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_insert_search_collision() -{ - trigger_policy_base::notify_insert_search_collision(); -} +{ trigger_policy_base::notify_insert_search_collision(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_insert_search_end() -{ - trigger_policy_base::notify_insert_search_end(); -} +{ trigger_policy_base::notify_insert_search_end(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_erase_search_start() -{ - trigger_policy_base::notify_erase_search_start(); -} +{ trigger_policy_base::notify_erase_search_start(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_erase_search_collision() -{ - trigger_policy_base::notify_erase_search_collision(); -} +{ trigger_policy_base::notify_erase_search_collision(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_erase_search_end() -{ - trigger_policy_base::notify_erase_search_end(); -} +{ trigger_policy_base::notify_erase_search_end(); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_inserted(size_type num_e) -{ - trigger_policy_base::notify_inserted(num_e); -} +{ trigger_policy_base::notify_inserted(num_e); } PB_DS_CLASS_T_DEC inline void PB_DS_CLASS_C_DEC:: notify_erased(size_type num_e) -{ - trigger_policy_base::notify_erased(num_e); -} +{ trigger_policy_base::notify_erased(num_e); } PB_DS_CLASS_T_DEC void PB_DS_CLASS_C_DEC:: notify_cleared() -{ - trigger_policy_base::notify_cleared(); -} +{ trigger_policy_base::notify_cleared(); } PB_DS_CLASS_T_DEC inline bool PB_DS_CLASS_C_DEC:: is_resize_needed() const -{ - return (trigger_policy_base::is_resize_needed()); -} +{ return trigger_policy_base::is_resize_needed(); } PB_DS_CLASS_T_DEC typename PB_DS_CLASS_C_DEC::size_type @@ -203,9 +169,8 @@ get_new_size(size_type size, size_type num_used_e) const { if (trigger_policy_base:: is_grow_needed(size, num_used_e)) - return (size_policy_base::get_nearest_larger_size(size)); - - return (size_policy_base::get_nearest_smaller_size(size)); + return size_policy_base::get_nearest_larger_size(size); + return size_policy_base::get_nearest_smaller_size(size); } PB_DS_CLASS_T_DEC @@ -214,7 +179,6 @@ PB_DS_CLASS_C_DEC:: notify_resized(size_type new_size) { trigger_policy_base::notify_resized(new_size); - m_size = new_size; } @@ -224,8 +188,7 @@ PB_DS_CLASS_C_DEC:: get_actual_size() const { PB_DS_STATIC_ASSERT(access, external_size_access); - - return (m_size); + return m_size; } PB_DS_CLASS_T_DEC @@ -234,7 +197,6 @@ PB_DS_CLASS_C_DEC:: resize(size_type new_size) { PB_DS_STATIC_ASSERT(access, external_size_access); - size_type actual_new_size = size_policy_base::get_nearest_larger_size(1); while (actual_new_size < new_size) { @@ -243,7 +205,6 @@ resize(size_type new_size) if (pot == actual_new_size&& pot < new_size) throw resize_error(); - actual_new_size = pot; } @@ -251,7 +212,6 @@ resize(size_type new_size) --actual_new_size; const size_type old_size = m_size; - try { do_resize(actual_new_size - 1); @@ -259,13 +219,11 @@ resize(size_type new_size) catch(insert_error& ) { m_size = old_size; - throw resize_error(); } catch(...) { m_size = old_size; - throw; } } @@ -273,7 +231,7 @@ resize(size_type new_size) PB_DS_CLASS_T_DEC void PB_DS_CLASS_C_DEC:: -do_resize(size_type /*new_size*/) +do_resize(size_type) { // Do nothing } @@ -282,33 +240,25 @@ PB_DS_CLASS_T_DEC Trigger_Policy& PB_DS_CLASS_C_DEC:: get_trigger_policy() -{ - return (*this); -} +{ return *this; } PB_DS_CLASS_T_DEC const Trigger_Policy& PB_DS_CLASS_C_DEC:: get_trigger_policy() const -{ - return (*this); -} +{ return *this; } PB_DS_CLASS_T_DEC Size_Policy& PB_DS_CLASS_C_DEC:: get_size_policy() -{ - return (*this); -} +{ return *this; } PB_DS_CLASS_T_DEC const Size_Policy& PB_DS_CLASS_C_DEC:: get_size_policy() const -{ - return (*this); -} +{ return *this; } #undef PB_DS_STATIC_ASSERT diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp index 371ce31..cf7b1fb 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp @@ -50,14 +50,11 @@ // A sample resize policy. class sample_resize_policy { - public: // Size type. typedef size_t size_type; -public: - // Default constructor. sample_resize_policy(); @@ -129,7 +126,6 @@ protected: // Queries what the new size should be. size_type get_new_size(size_type size, size_type num_used_e) const; - }; -#endif // #ifndef PB_DS_SAMPLE_RESIZE_POLICY_HPP +#endif diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp index f85fe23..db07fbb 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp @@ -50,14 +50,11 @@ // A sample resize trigger policy. class sample_resize_trigger { - public: // Size type. typedef size_t size_type; -public: - // Default constructor. sample_resize_trigger(); @@ -106,7 +103,8 @@ protected: inline void notify_erase_search_end(); - // Notifies an element was inserted. the total number of entries in the table is num_entries. + // Notifies an element was inserted. the total number of entries in + // the table is num_entries. inline void notify_inserted(size_type num_entries); @@ -118,7 +116,8 @@ protected: void notify_cleared(); - // Notifies the table was resized as a result of this object's signifying that a resize is needed. + // Notifies the table was resized as a result of this object's + // signifying that a resize is needed. void notify_resized(size_type new_size); @@ -139,9 +138,8 @@ private: // Resizes to new_size. virtual void do_resize(size_type new_size); - }; } // namespace pb_ds -#endif // #ifndef PB_DS_SAMPLE_RESIZE_TRIGGER_HPP +#endif diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp index 9681c87..b88e7036 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp @@ -50,14 +50,11 @@ // A sample size policy. class sample_size_policy { - public: // Size type. typedef size_t size_type; -public: - // Default constructor. sample_size_policy(); @@ -77,7 +74,6 @@ protected: // Given a __size size, returns a __size that is smaller. inline size_type get_nearest_smaller_size(size_type size) const; - }; -#endif // #ifndef PB_DS_SAMPLE_SIZE_POLICY_HPP +#endif diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp deleted file mode 100644 index 267db80..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp +++ /dev/null @@ -1,296 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist.hpp - * Contains typelist_chain definitions. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_HPP -#define PB_DS_TYPELIST_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace pb_ds -{ - namespace detail - { - struct null_type - { }; - - template<typename Hd, typename Tl> - struct typelist_chain - { - typedef Hd head; - typedef Tl tail; - }; - - template<typename Root> - struct typelist - { - typedef Root root; - }; - -#define PB_DS_TYPELIST_CHAIN1(X0) typelist_chain<X0, null_type> -#define PB_DS_TYPELIST_CHAIN2(X0, X1) typelist_chain<X0, PB_DS_TYPELIST_CHAIN1(X1) > -#define PB_DS_TYPELIST_CHAIN3(X0, X1, X2) typelist_chain<X0, PB_DS_TYPELIST_CHAIN2(X1, X2) > -#define PB_DS_TYPELIST_CHAIN4(X0, X1, X2, X3) typelist_chain<X0, PB_DS_TYPELIST_CHAIN3(X1, X2, X3) > -#define PB_DS_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) typelist_chain<X0, PB_DS_TYPELIST_CHAIN4(X1, X2, X3, X4) > -#define PB_DS_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) typelist_chain<X0, PB_DS_TYPELIST_CHAIN5(X1, X2, X3, X4, X5) > -#define PB_DS_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) typelist_chain<X0, PB_DS_TYPELIST_CHAIN6(X1, X2, X3, X4, X5, X6) > -#define PB_DS_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) typelist_chain<X0, PB_DS_TYPELIST_CHAIN7(X1, X2, X3, X4, X5, X6, X7) > -#define PB_DS_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) typelist_chain<X0, PB_DS_TYPELIST_CHAIN8(X1, X2, X3, X4, X5, X6, X7, X8) > -#define PB_DS_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) typelist_chain<X0, PB_DS_TYPELIST_CHAIN9(X1, X2, X3, X4, X5, X6, X7, X8, X9) > -#define PB_DS_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) typelist_chain<X0, PB_DS_TYPELIST_CHAIN10(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) > -#define PB_DS_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) typelist_chain<X0, PB_DS_TYPELIST_CHAIN11(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) > -#define PB_DS_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) typelist_chain<X0, PB_DS_TYPELIST_CHAIN12(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) > -#define PB_DS_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) typelist_chain<X0, PB_DS_TYPELIST_CHAIN13(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) > -#define PB_DS_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) typelist_chain<X0, PB_DS_TYPELIST_CHAIN14(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) > - -#include <ext/pb_ds/detail/typelist/typelist_apply.hpp> - - template<typename Fn, class Typelist> - void - typelist_apply(Fn& r_fn, Typelist) - { - detail::apply_<Fn, typename Typelist::root> a; - a(r_fn); - } - -#include <ext/pb_ds/detail/typelist/typelist_append.hpp> - - template<typename Typelist0, class Typelist1> - struct typelist_append - { - private: - typedef - typename detail::typelist_append_< - typename Typelist0::root, - typename Typelist1::root>::type - res_hd; - - public: - typedef typelist< res_hd> type; - }; - -#include <ext/pb_ds/detail/typelist/typelist_typelist_append.hpp> - - template<typename Typelist_Typelist> - struct typelist_typelist_append - { - private: - typedef - typename detail::typelist_typelist_append_< - typename Typelist_Typelist::root>::type - res_hd; - - public: - typedef typelist< res_hd> type; - }; - -#include <ext/pb_ds/detail/typelist/typelist_contains.hpp> - - template<typename Typelist, typename T> - struct typelist_contains - { - enum - { - value = - detail::typelist_contains_< - typename Typelist::root, - T>::value - }; - }; - -#include <ext/pb_ds/detail/typelist/typelist_filter.hpp> - - template<typename Typelist, template<typename T> - class Pred> - struct typelist_filter - { - private: - typedef - typename detail::typelist_chain_filter_< - typename Typelist::root, - Pred>::type - root_type; - - public: - typedef typelist< root_type> type; - }; - -#include <ext/pb_ds/detail/typelist/typelist_at_index.hpp> - - template<typename Typelist, int i> - struct typelist_at_index - { - typedef - typename detail::typelist_chain_at_index_< - typename Typelist::root, - i>::type - type; - }; - -#include <ext/pb_ds/detail/typelist/typelist_transform.hpp> - - template<typename Typelist, template<typename T> - class Transform> - struct typelist_transform - { - private: - typedef - typename detail::typelist_chain_transform_< - typename Typelist::root, - Transform>::type - root_type; - - public: - typedef typelist< root_type> type; - }; - -#include <ext/pb_ds/detail/typelist/typelist_flatten.hpp> - - template<typename Typelist_Typelist> - struct typelist_flatten - { - private: - typedef - typename detail::typelist_chain_flatten_< - typename Typelist_Typelist::root>::type - root_type; - - public: - typedef typelist< root_type> type; - }; - - template<typename Typelist> - struct typelist_from_first - { - private: - typedef typename typelist_at_index< Typelist, 0>::type first_type; - - public: - typedef typelist< typelist_chain< first_type, null_type> > type; - }; - - template<typename T0> - struct typelist1 - { - typedef typelist< PB_DS_TYPELIST_CHAIN1( T0)> type; - }; - - template<typename T0, typename T1> - struct typelist2 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN2( T0, T1)> - type; - }; - - template<typename T0, typename T1, typename T2> - struct typelist3 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN3( T0, T1, T2)> - type; - }; - - template<typename T0, typename T1, typename T2, typename T3> - struct typelist4 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN4( T0, T1, T2, T3)> - type; - }; - - template<typename T0, - typename T1, - typename T2, - typename T3, - typename T4> - struct typelist5 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN5( T0, T1, T2, T3, T4)> - type; - }; - - template<typename T0, - typename T1, - typename T2, - typename T3, - typename T4, - typename T5> - struct typelist6 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN6( T0, T1, T2, T3, T4, T5)> - type; - }; - -#undef PB_DS_TYPELIST_CHAIN1 -#undef PB_DS_TYPELIST_CHAIN2 -#undef PB_DS_TYPELIST_CHAIN3 -#undef PB_DS_TYPELIST_CHAIN4 -#undef PB_DS_TYPELIST_CHAIN5 -#undef PB_DS_TYPELIST_CHAIN6 -#undef PB_DS_TYPELIST_CHAIN7 -#undef PB_DS_TYPELIST_CHAIN8 -#undef PB_DS_TYPELIST_CHAIN9 -#undef PB_DS_TYPELIST_CHAIN10 -#undef PB_DS_TYPELIST_CHAIN11 -#undef PB_DS_TYPELIST_CHAIN12 -#undef PB_DS_TYPELIST_CHAIN13 -#undef PB_DS_TYPELIST_CHAIN14 -#undef PB_DS_TYPELIST_CHAIN15 - - } // namespace detail - -} // namespace pb_ds - -#endif // #ifndef PB_DS_TYPELIST_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp deleted file mode 100644 index 2498628..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_append.hpp - * Contains typelist_chain utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_APPEND_HPP -#define PB_DS_TYPELIST_APPEND_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Typelist_Chain0, class Typelist_Chain1> - struct typelist_append_; - - template<typename Hd, typename Tl, class Typelist_Chain1> - struct typelist_append_<typelist_chain<Hd, Tl>, Typelist_Chain1> - { - typedef typelist_chain<Hd, typename typelist_append_<Tl, Typelist_Chain1>::type> type; - }; - - template<typename Typelist_Chain1> - struct typelist_append_< null_type, Typelist_Chain1> - { - typedef Typelist_Chain1 type; - }; - - template<typename Typelist_Chain0> - struct typelist_append_<Typelist_Chain0, null_type> - { - typedef Typelist_Chain0 type; - }; - - template<> - struct typelist_append_<null_type, null_type> - { - typedef null_type type; - }; -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_APPEND_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp deleted file mode 100644 index 311301c..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_apply.hpp - * Contains typelist utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_APPLY_HPP -#define PB_DS_TYPELIST_APPLY_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Fn, class Typelist_Chain> - struct apply_; - - template<typename Fn, class Hd, class Tl> - struct apply_<Fn, typelist_chain<Hd, Tl> > - { - void - operator()(Fn& r_fn) - { - r_fn(type_to_type<Hd>()); - apply_<Fn, Tl> next; - next(r_fn); - } - }; - - template<typename Fn> - struct apply_<Fn, null_type> - { - void - operator()(Fn&) { } - }; -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_APPLY_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp deleted file mode 100644 index 68b7e8b..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_assoc_container_find.hpp - * Contains typelist utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_ASSOC_CNTNR_FIND_HPP -#define PB_DS_TYPELIST_ASSOC_CNTNR_FIND_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Tl, typename Key> - struct typelist_assoc_container_find_; - - template<typename Now_Key, typename Now_Data, typename Rest_Tl, typename Key> - struct typelist_assoc_container_find_< - typelist_chain<std::pair<Now_Key, Now_Data>, Rest_Tl>, Key> - { - typedef typename typelist_assoc_container_find_< Rest_Tl, Key>::type type; - }; - - template<typename Now_Key, typename Now_Data, typename Rest_Tl> - struct typelist_assoc_container_find_< - typelist_chain<std::pair<Now_Key, Now_Data>, Rest_Tl>, Now_Key> - { - typedef Now_Data type; - }; -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_ASSOC_CNTNR_FIND_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp deleted file mode 100644 index a392d12..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_at_index.hpp - * Contains typelist utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_AT_INDEX_HPP -#define PB_DS_TYPELIST_AT_INDEX_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Typelist_Chain, int i> - struct typelist_chain_at_index_; - - template<typename Hd, class Tl> - struct typelist_chain_at_index_<typelist_chain<Hd, Tl>, 0> - { - typedef Hd type; - }; - - template<typename Hd, class Tl, int i> - struct typelist_chain_at_index_<typelist_chain<Hd, Tl>, i> - { - typedef typename typelist_chain_at_index_< Tl, i - 1>::type type; - }; -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_AT_INDEX_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp deleted file mode 100644 index dc8a347..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_contains.hpp - * Contains typelist utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_CONTAINS_HPP -#define PB_DS_TYPELIST_CONTAINS_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Typelist_Chain, class T> - struct typelist_contains_; - - template<typename T> - struct typelist_contains_<null_type, T> - { - enum - { - value = false - }; - }; - - template<typename Hd, class Tl, class T> - struct typelist_contains_<typelist_chain<Hd, Tl>, T> - { - enum - { - value = typelist_contains_<Tl, T>::value - }; - }; - - template<typename Tl, class T> - struct typelist_contains_<typelist_chain<T, Tl>, T> - { - enum - { - value = true - }; - }; -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_CONTAINS_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp deleted file mode 100644 index a29facb..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_filter.hpp - * Contains typelist utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_FILTER_HPP -#define PB_DS_TYPELIST_FILTER_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Typelist_Chain, template<typename T> class Pred> - struct typelist_chain_filter_; - - template<template<typename T> - class Pred> - struct typelist_chain_filter_<null_type, Pred> - { - typedef null_type type; - }; - - template<typename Hd, class Tl, template<typename T> class Pred> - struct typelist_chain_filter_< typelist_chain<Hd, Tl>, Pred> - { - typedef typename typelist_chain_filter_< Tl, Pred>::type rest; - - enum - { - include_hd = Pred<Hd>::value - }; - - typedef typename __conditional_type<include_hd, typelist_chain<Hd, rest>, rest>::__type type; - }; -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_FILTER_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp deleted file mode 100644 index 5d8e498..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_flatten.hpp - * Contains typelist utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_FLATTEN_HPP -#define PB_DS_TYPELIST_FLATTEN_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Typelist_Typelist_Chain> - struct typelist_chain_flatten_; - - template<typename Hd_Tl> - struct typelist_chain_flatten_<typelist_chain<Hd_Tl, null_type> > - { - typedef typename Hd_Tl::root type; - }; - - template<typename Hd_Typelist, class Tl_Typelist> - struct typelist_chain_flatten_<typelist_chain<Hd_Typelist, Tl_Typelist> > - { - typedef typename typelist_chain_flatten_< Tl_Typelist>::type rest; - typedef typename typelist_append<Hd_Typelist, typelist<rest> >::type::root type; - }; -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_FLATTEN_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp deleted file mode 100644 index e62de8d6..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_transform.hpp - * Contains typelist utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_TRANSFORM_HPP -#define PB_DS_TYPELIST_TRANSFORM_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - template<typename Typelist_Chain, template<typename T> class Transform> - struct typelist_chain_transform_; - - template<template<typename T> class Transform> - struct typelist_chain_transform_<null_type, Transform> - { - typedef null_type type; - }; - - template<typename Hd, class Tl, template<typename T> class Transform> - struct typelist_chain_transform_<typelist_chain<Hd, Tl>, Transform> - { - typedef typename typelist_chain_transform_< Tl, Transform>::type rest; - typedef typename Transform<Hd>::type transform_type; - typedef typelist_chain<transform_type, rest> type; - }; - -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_TRANSFORM_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp deleted file mode 100644 index 92ede86..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_typelist_append.hpp - * Contains typelist_chain utilities. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_TYPELIST_APPEND_HPP -#define PB_DS_TYPELIST_TYPELIST_APPEND_HPP - -#include <ext/pb_ds/detail/type_utils.hpp> - -namespace detail -{ - - template<typename Typelist_Typelist_Chain> - struct typelist_typelist_append_; - - template<typename Hd> - struct typelist_typelist_append_< - typelist_chain<Hd, null_type> > - { - typedef typelist_chain< Hd, null_type> type; - }; - - template<typename Hd, class Tl> - struct typelist_typelist_append_< - typelist_chain< - Hd, - Tl> > - { - private: - typedef typename typelist_typelist_append_< Tl>::type rest; - - public: - typedef - typename typelist_append< - Hd, - typelist< - rest> >::type::root - type; - }; - -} // namespace detail - -#endif // #ifndef PB_DS_TYPELIST_TYPELIST_APPEND_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp deleted file mode 100644 index 19c703f..0000000 --- a/libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -*- C++ -*- - -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the terms -// of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later -// version. - -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. - -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. - -// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. - -// Permission to use, copy, modify, sell, and distribute this software -// is hereby granted without fee, provided that the above copyright -// notice appears in all copies, and that both that copyright notice -// and this permission notice appear in supporting documentation. None -// of the above authors, nor IBM Haifa Research Laboratories, make any -// representation about the suitability of this software for any -// purpose. It is provided "as is" without express or implied -// warranty. - -/** - * @file typelist_assoc_container.hpp - * Contains an associative container based on typelists. - * Typelists are an idea by Andrei Alexandrescu. - */ - -#ifndef PB_DS_TYPELIST_CHAIN_HPP -#define PB_DS_TYPELIST_CHAIN_HPP - -#include <utility> -#include <ext/pb_ds/detail/typelist.hpp> - -namespace pb_ds -{ - namespace detail - { - template<typename Typelist = typelist<null_type> > - struct typelist_assoc_container - { - typedef Typelist tl; - }; - - template<typename Typelist_Assoc_Cntnr, typename Key, typename Data> - struct typelist_assoc_container_insert - { - private: - typedef typename Typelist_Assoc_Cntnr::tl already_tl; - - typedef typelist<typelist_chain<std::pair<Key, Data>, null_type> > new_tl; - - typedef typename typelist_append< new_tl, already_tl>::type so_happy_together; - - public: - typedef typelist_assoc_container< so_happy_together> type; - }; - -#include <ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp> - - template<typename Typelist_Assoc_Cntnr, typename Key> - struct typelist_assoc_container_find - { - private: - typedef typename Typelist_Assoc_Cntnr::tl already; - typedef typename already::root already_root; - }; - } // namespace detail -} // namespace pb_ds - -#endif // #ifndef PB_DS_TYPELIST_CHAIN_HPP - diff --git a/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp b/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp index 3d3f20b..c17d978 100644 --- a/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp +++ b/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp @@ -51,6 +51,7 @@ #include <vector> #include <cmath> #include <ext/pb_ds/exception.hpp> +#include <ext/pb_ds/detail/type_utils.hpp> #include <ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp> #include <ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp> #include <ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp> diff --git a/libstdc++-v3/include/ext/typelist.h b/libstdc++-v3/include/ext/typelist.h index a32259e..9a4813f 100644 --- a/libstdc++-v3/include/ext/typelist.h +++ b/libstdc++-v3/include/ext/typelist.h @@ -43,8 +43,8 @@ * Typelists are an idea by Andrei Alexandrescu. */ -#ifndef TYPELIST_HPP -#define TYPELIST_HPP 1 +#ifndef _TYPELIST_H +#define _TYPELIST_H 1 #include <ext/type_traits.h> @@ -68,6 +68,10 @@ namespace typelist typedef Typelist tail; }; + template<typename Fn, class Typelist> + void + apply(Fn&, Typelist); + template<typename Typelist0, typename Typelist1> struct append; @@ -83,11 +87,33 @@ namespace typelist template<typename Typelist, int i> struct at_index; - template<typename Fn, typename Typelist> - struct apply; - template<typename Typelist, template<typename T> class Transform> struct transform; + + template<typename Typelist_Typelist> + struct flatten; + + template<typename Typelist> + struct from_first; + + template<typename T1> + struct create1; + + template<typename T1, typename T2> + struct create2; + + template<typename T1, typename T2, typename T3> + struct create3; + + template<typename T1, typename T2, typename T3, typename T4> + struct create4; + + template<typename T1, typename T2, typename T3, typename T4, typename T5> + struct create5; + + template<typename T1, typename T2, typename T3, + typename T4, typename T5, typename T6> + struct create6; } // namespace typelist _GLIBCXX_END_NAMESPACE @@ -133,16 +159,50 @@ namespace detail template<typename Hd, typename Tl, typename Typelist_Chain> struct append_<chain<Hd, Tl>, Typelist_Chain> { - typedef append_<Tl, Typelist_Chain> append_type; - typedef chain<Hd, typename append_type::type> type; + private: + typedef append_<Tl, Typelist_Chain> append_type; + + public: + typedef chain<Hd, typename append_type::type> type; }; template<typename Typelist_Chain> struct append_<null_type, Typelist_Chain> { + typedef Typelist_Chain type; + }; + + template<typename Typelist_Chain> + struct append_<Typelist_Chain, null_type> + { typedef Typelist_Chain type; }; + template<> + struct append_<null_type, null_type> + { + typedef null_type type; + }; + + template<typename Typelist_Typelist_Chain> + struct append_typelist_; + + template<typename Hd> + struct append_typelist_<chain<Hd, null_type> > + { + typedef chain<Hd, null_type> type; + }; + + template<typename Hd, typename Tl> + struct append_typelist_<chain< Hd, Tl> > + { + private: + typedef typename append_typelist_<Tl>::type rest_type; + + public: + typedef typename append<Hd, node<rest_type> >::type::root type; + }; + template<typename Typelist_Chain, typename T> struct contains_; @@ -179,19 +239,22 @@ namespace detail template<template<typename T> class Pred> struct chain_filter_<null_type, Pred> { - typedef null_type type; + typedef null_type type; }; template<typename Hd, typename Tl, template<typename T> class Pred> struct chain_filter_<chain<Hd, Tl>, Pred> { + private: enum { include_hd = Pred<Hd>::value }; - typedef typename chain_filter_<Tl, Pred>::type rest_type; - typedef chain<Hd, rest_type> chain_type; + typedef typename chain_filter_<Tl, Pred>::type rest_type; + typedef chain<Hd, rest_type> chain_type; + + public: typedef typename __conditional_type<include_hd, chain_type, rest_type>::__type type; }; @@ -207,7 +270,7 @@ namespace detail template<typename Hd, typename Tl, int i> struct chain_at_index_<chain<Hd, Tl>, i> { - typedef typename chain_at_index_<Tl, i - 1>::type type; + typedef typename chain_at_index_<Tl, i - 1>::type type; }; template<class Typelist_Chain, template<typename T> class Transform> @@ -216,56 +279,70 @@ namespace detail template<template<typename T> class Transform> struct chain_transform_<null_type, Transform> { - typedef null_type type; + typedef null_type type; }; template<class Hd, class Tl, template<typename T> class Transform> struct chain_transform_<chain<Hd, Tl>, Transform> { - typedef typename chain_transform_<Tl, Transform>::type rest_type; - typedef typename Transform<Hd>::type transform_type; - typedef chain<transform_type, rest_type> type; + private: + typedef typename chain_transform_<Tl, Transform>::type rest_type; + typedef typename Transform<Hd>::type transform_type; + + public: + typedef chain<transform_type, rest_type> type; }; template<typename Typelist_Typelist_Chain> - struct append_typelist_; + struct chain_flatten_; - template<typename Hd> - struct append_typelist_<chain<Hd, null_type> > - { - typedef chain<Hd, null_type> type; - }; + template<typename Hd_Tl> + struct chain_flatten_<chain<Hd_Tl, null_type> > + { + typedef typename Hd_Tl::root type; + }; - template<typename Hd, typename Tl> - struct append_typelist_<chain< Hd, Tl> > - { - private: - typedef typename append_typelist_<Tl>::type rest; - - public: - typedef typename append<Hd, node<rest> >::type::root type; - }; + template<typename Hd_Typelist, class Tl_Typelist> + struct chain_flatten_<chain<Hd_Typelist, Tl_Typelist> > + { + private: + typedef typename chain_flatten_<Tl_Typelist>::type rest_type; + typedef append<Hd_Typelist, node<rest_type> > append_type; + public: + typedef typename append_type::type::root type; + }; } // namespace detail } // namespace typelist _GLIBCXX_END_NAMESPACE +#define _GLIBCXX_TYPELIST_CHAIN1(X0) __gnu_cxx::typelist::chain<X0, __gnu_cxx::typelist::null_type> +#define _GLIBCXX_TYPELIST_CHAIN2(X0, X1) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN1(X1) > +#define _GLIBCXX_TYPELIST_CHAIN3(X0, X1, X2) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN2(X1, X2) > +#define _GLIBCXX_TYPELIST_CHAIN4(X0, X1, X2, X3) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN3(X1, X2, X3) > +#define _GLIBCXX_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN4(X1, X2, X3, X4) > +#define _GLIBCXX_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN5(X1, X2, X3, X4, X5) > +#define _GLIBCXX_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN6(X1, X2, X3, X4, X5, X6) > +#define _GLIBCXX_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN7(X1, X2, X3, X4, X5, X6, X7) > +#define _GLIBCXX_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN8(X1, X2, X3, X4, X5, X6, X7, X8) > +#define _GLIBCXX_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN9(X1, X2, X3, X4, X5, X6, X7, X8, X9) > +#define _GLIBCXX_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN10(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) > +#define _GLIBCXX_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN11(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) > +#define _GLIBCXX_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN12(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) > +#define _GLIBCXX_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN13(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) > +#define _GLIBCXX_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN14(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) > _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) namespace typelist { - template<typename Fn, typename Typelist> - struct apply + template<typename Fn, class Typelist> + void + apply(Fn& fn, Typelist) { - void - operator()(Fn& f) - { - typedef typename Typelist::root root_type; - detail::apply_<Fn, root_type> a; - a(f); - } - }; + detail::apply_<Fn, typename Typelist::root> a; + a(fn); + } template<typename Typelist0, typename Typelist1> struct append @@ -276,7 +353,7 @@ namespace typelist typedef detail::append_<root0_type, root1_type> append_type; public: - typedef node<typename append_type::type> type; + typedef node<typename append_type::type> type; }; template<typename Typelist_Typelist> @@ -287,14 +364,16 @@ namespace typelist typedef detail::append_typelist_<root_type> append_type; public: - typedef node<typename append_type::type> type; + typedef node<typename append_type::type> type; }; template<typename Typelist, typename T> struct contains { + private: typedef typename Typelist::root root_type; + public: enum { value = detail::contains_<root_type, T>::value @@ -309,15 +388,17 @@ namespace typelist typedef detail::chain_filter_<root_type, Pred> filter_type; public: - typedef node<typename filter_type::type> type; + typedef node<typename filter_type::type> type; }; template<typename Typelist, int i> struct at_index { + private: typedef typename Typelist::root root_type; typedef detail::chain_at_index_<root_type, i> index_type; + public: typedef typename index_type::type type; }; @@ -331,25 +412,68 @@ namespace typelist public: typedef node<typename transform_type::type> type; }; + + template<typename Typelist_Typelist> + struct flatten + { + private: + typedef typename Typelist_Typelist::root root_type; + typedef typename detail::chain_flatten_<root_type>::type flatten_type; + + public: + typedef node<flatten_type> type; + }; + + template<typename Typelist> + struct from_first + { + private: + typedef typename at_index<Typelist, 0>::type first_type; + + public: + typedef node<chain<first_type, null_type> > type; + }; + + template<typename T1> + struct create1 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN1(T1)> type; + }; + + template<typename T1, typename T2> + struct create2 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN2(T1,T2)> type; + }; + + template<typename T1, typename T2, typename T3> + struct create3 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN3(T1,T2,T3)> type; + }; + + template<typename T1, typename T2, typename T3, typename T4> + struct create4 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN4(T1,T2,T3,T4)> type; + }; + + template<typename T1, typename T2, typename T3, + typename T4, typename T5> + struct create5 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN5(T1,T2,T3,T4,T5)> type; + }; + + template<typename T1, typename T2, typename T3, + typename T4, typename T5, typename T6> + struct create6 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN6(T1,T2,T3,T4,T5,T6)> type; + }; } // namespace typelist _GLIBCXX_END_NAMESPACE -#define _GLIBCXX_TYPELIST_CHAIN1(X0) __gnu_cxx::typelist::chain<X0, __gnu_cxx::typelist::null_type> -#define _GLIBCXX_TYPELIST_CHAIN2(X0, X1) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN1(X1) > -#define _GLIBCXX_TYPELIST_CHAIN3(X0, X1, X2) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN2(X1, X2) > -#define _GLIBCXX_TYPELIST_CHAIN4(X0, X1, X2, X3) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN3(X1, X2, X3) > -#define _GLIBCXX_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN4(X1, X2, X3, X4) > -#define _GLIBCXX_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN5(X1, X2, X3, X4, X5) > -#define _GLIBCXX_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN6(X1, X2, X3, X4, X5, X6) > -#define _GLIBCXX_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN7(X1, X2, X3, X4, X5, X6, X7) > -#define _GLIBCXX_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN8(X1, X2, X3, X4, X5, X6, X7, X8) > -#define _GLIBCXX_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN9(X1, X2, X3, X4, X5, X6, X7, X8, X9) > -#define _GLIBCXX_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN10(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) > -#define _GLIBCXX_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN11(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) > -#define _GLIBCXX_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN12(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) > -#define _GLIBCXX_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN13(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) > -#define _GLIBCXX_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) __gnu_cxx::typelist::chain<X0, _GLIBCXX_TYPELIST_CHAIN14(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) > - #endif diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc index 908675c..cb13b9a 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc @@ -70,5 +70,5 @@ int main() h.resize(20); // { dg-error "instantiated from" } } -// { dg-error "invalid" "" { target *-*-* } 236 } +// { dg-error "invalid" "" { target *-*-* } 199 } // { dg-excess-errors "member function" } diff --git a/libstdc++-v3/testsuite/performance/23_containers/create/map.cc b/libstdc++-v3/testsuite/performance/23_containers/create/map.cc index 08009ec..5049e1a 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/create/map.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/create/map.cc @@ -51,11 +51,9 @@ main() #endif typedef __gnu_test::maps<int, thread_type>::type container_types; - typedef test_sequence<thread_type> test_type; test_type test("create"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc b/libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc index 0c6bd70..97ea3af 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc @@ -61,11 +61,9 @@ main() #endif typedef __gnu_test::sets<int, thread_type>::type container_types; - typedef test_sequence<thread_type> test_type; test_type test("create_from_sorted"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc b/libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc index 02b25cd..7a47f32 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc @@ -54,11 +54,9 @@ main() #endif typedef __gnu_test::lists<int, thread_type>::type container_types; - typedef test_sequence<thread_type> test_type; test_type test("create_sort"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/find/map.cc b/libstdc++-v3/testsuite/performance/23_containers/find/map.cc index f11bda1..e6c2c79 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/find/map.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/find/map.cc @@ -57,11 +57,9 @@ main() #endif typedef __gnu_test::maps<int, thread_type>::type container_types; - typedef test_sequence<thread_type> test_type; test_type test("find"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/index/map.cc b/libstdc++-v3/testsuite/performance/23_containers/index/map.cc index 8682c90..386890d 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/index/map.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/index/map.cc @@ -58,13 +58,10 @@ main() #define thread_type true #endif - using __gnu_test::associative_containers; typedef __gnu_test::maps<int, thread_type>::type container_types; - typedef test_sequence<thread_type> test_type; test_type test("index_associative"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc b/libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc index 8be68f6..b3f8f71 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc @@ -65,8 +65,7 @@ main() typedef test_sequence<thread_type> test_type; test_type test("insert_associative"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc b/libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc index b6cdbf1..7023332 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc @@ -61,8 +61,7 @@ main() typedef test_sequence<thread_type> test_type; test_type test("insert_sequence"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc b/libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc index c0ce6f9aa..ee48ce2 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc @@ -68,8 +68,7 @@ main() typedef test_sequence<thread_type> test_type; test_type test("insert_erase_associative"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc b/libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc index 863c7a6..72b1921 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc @@ -76,13 +76,10 @@ main() #define thread_type true #endif - using __gnu_test::associative_containers; typedef __gnu_test::sets<int, thread_type>::type container_types; - typedef test_sequence<thread_type> test_type; test_type test("insert_from_sorted"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc b/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc index 3ccfca9..841cdf0 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc @@ -250,8 +250,7 @@ main() typedef test_sequence<thread_type> test_type; test_type test("producer_consumer_associative"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc b/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc index 4adccb9..1590c97 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc @@ -249,8 +249,7 @@ main() typedef test_sequence<thread_type> test_type; test_type test("producer_consumer_sequence"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc b/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc index ed48eb9..14b42b4 100644 --- a/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc +++ b/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc @@ -71,13 +71,10 @@ main() #define thread_type true #endif - using __gnu_test::sequence_containers; typedef __gnu_test::lists<int, thread_type>::type container_types; - typedef test_sequence<thread_type> test_type; test_type test("sort_search"); - __gnu_cxx::typelist::apply<test_type, container_types> applier; - applier(test); + __gnu_cxx::typelist::apply(test, container_types()); return 0; } diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc index 075c495..48d0d86 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc @@ -44,13 +44,12 @@ * Contains test for erasing random integers. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <rng/twister_rand_gen.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/mem_usage/erase_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <performance/mem/mem_track_allocator.hpp> #include <iostream> #include <vector> @@ -94,7 +93,7 @@ main(int argc, char* a_p_argv[]) tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { @@ -104,7 +103,7 @@ main(int argc, char* a_p_argv[]) std::less<int>, alloc_t> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc index a5e9f5f..7f27da9 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc @@ -44,14 +44,13 @@ * Contains test for finding random integers. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <native_type/assoc/native_hash_set.hpp> #include <io/verified_cmd_line_input.hpp> #include <rng/twister_rand_gen.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/find_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <iostream> #include <vector> @@ -87,13 +86,13 @@ main(int argc, char* a_p_argv[]) test_t tst(b, b, vn, vs, vm, vn, vs, vm); { typedef native_hash_map< int, char> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { typedef hash_common_types<int, char>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp index a57254a..bd60c0f 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp @@ -44,7 +44,7 @@ * Contains test for inserting text words. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <io/text_populate.hpp> #include <performance/io/xml_formatter.hpp> #include <native_type/assoc/native_hash_multimap.hpp> @@ -55,7 +55,6 @@ #include <performance/assoc/timing/multimap_find_test.hpp> #include <performance/assoc/multimap_common_type.hpp> #include <hash_fn/string_hash_fn.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <iostream> #include <vector> @@ -101,21 +100,21 @@ main(int argc, char* a_p_argv[]) typedef multimap_find_test<vec_t::const_iterator, false> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_hash_multimap<std::string, int, 8, string_hash_fn> native_t; typedef multimap_find_test<vec_t::const_iterator, true> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { typedef native_multimap<std::string, int> native_t; typedef multimap_find_test<vec_t::const_iterator, true> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp index 896d766..e0b8afd 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp @@ -44,7 +44,7 @@ * Contains test for inserting text words. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <io/text_populate.hpp> #include <performance/io/xml_formatter.hpp> #include <native_type/assoc/native_hash_multimap.hpp> @@ -54,7 +54,6 @@ #include <common_type/assoc/common_type.hpp> #include <performance/assoc/mem_usage/multimap_insert_test.hpp> #include <performance/assoc/multimap_common_type.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <performance/mem/mem_track_allocator.hpp> #include <hash_fn/string_hash_fn.hpp> #include <iostream> @@ -102,7 +101,7 @@ main(int argc, char* a_p_argv[]) tl_t tl; typedef multimap_insert_test<vec_t::const_iterator, false> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { @@ -110,14 +109,14 @@ main(int argc, char* a_p_argv[]) tl_t tl; typedef multimap_insert_test<vec_t::const_iterator, false> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } typedef multimap_insert_test<vec_t::const_iterator, true> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); { typedef native_multimap<string_t, int, std::less<string_t>, alloc_t> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { @@ -131,7 +130,7 @@ main(int argc, char* a_p_argv[]) alloc_t> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp index 1c757d5..694a5f2 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp @@ -44,7 +44,7 @@ * Contains test for inserting text words. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <io/text_populate.hpp> #include <performance/io/xml_formatter.hpp> #include <native_type/assoc/native_hash_multimap.hpp> @@ -54,7 +54,6 @@ #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/multimap_insert_test.hpp> #include <performance/assoc/multimap_common_type.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <hash_fn/string_hash_fn.hpp> #include <iostream> #include <vector> @@ -99,21 +98,21 @@ main(int argc, char* a_p_argv[]) mmap_tl_tl tl; typedef multimap_insert_test<vec_t::const_iterator, false> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_hash_multimap<std::string, int, 8, string_hash_fn> native_t; typedef multimap_insert_test<vec_t::const_iterator, true> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { typedef native_multimap<std::string, int> native_t; typedef multimap_insert_test<vec_t::const_iterator, true> test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc index 64f19b1..4f0f1a4 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc @@ -44,12 +44,11 @@ * Contains test for finding random_int. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/priority_queue/common_type.hpp> #include <performance/priority_queue/timing/push_pop_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <native_type/priority_queue/native_priority_queue.hpp> #include <rng/twister_rand_gen.hpp> #include <iostream> @@ -84,17 +83,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types<int>::performance_tl pq_tl_t; pq_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_priority_queue<int, true> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } { typedef native_priority_queue<int, false> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc index 7706175..098378d 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc @@ -44,12 +44,11 @@ * Contains test for finding random_int. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/priority_queue/common_type.hpp> #include <performance/priority_queue/timing/push_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <native_type/priority_queue/native_priority_queue.hpp> #include <rng/twister_rand_gen.hpp> #include <iostream> @@ -82,17 +81,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types<int>::performance_tl pq_tl_t; pq_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_priority_queue<int, true> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } { typedef native_priority_queue<int, false> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc index c13f060..c5c24f7 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc @@ -44,7 +44,7 @@ * Contains test for finding text. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/priority_queue/common_type.hpp> @@ -101,17 +101,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types<std::string>::performance_tl pq_tl_t; pq_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_priority_queue<std::string, true> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } { typedef native_priority_queue<std::string, false> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp index 58e9cf5..ab0da1f 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp @@ -44,13 +44,12 @@ * Contains test for finding text. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/priority_queue/common_type.hpp> #include <performance/priority_queue/timing/modify_test.hpp> #include <io/text_populate.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <native_type/priority_queue/native_priority_queue.hpp> #include <iostream> #include <vector> @@ -88,17 +87,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types<std::string>::performance_tl pq_tl_t; pq_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_priority_queue<std::string, true> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } { typedef native_priority_queue<std::string, false> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc index 12820e9..49ba5b5 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc @@ -44,13 +44,12 @@ * Contains test for finding text. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/priority_queue/common_type.hpp> #include <performance/priority_queue/mem_usage/pop_test.hpp> #include <io/text_populate.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <native_type/priority_queue/native_priority_queue.hpp> #include <performance/mem/mem_track_allocator.hpp> #include <iostream> @@ -84,17 +83,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types<string_t, std::less<string_t>, mem_track_allocator<char> >::performance_tl pq_tl_t; pq_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_priority_queue<string_t, true, std::less<string_t>, mem_track_allocator<string_t> > native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } { typedef native_priority_queue<string_t, false, std::less<string_t>, mem_track_allocator<string_t> > native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc index 13f5c00..e7e06bc 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc @@ -44,13 +44,12 @@ * Contains test for finding text. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/priority_queue/common_type.hpp> #include <performance/priority_queue/timing/push_pop_test.hpp> #include <io/text_populate.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <native_type/priority_queue/native_priority_queue.hpp> #include <iostream> #include <vector> @@ -81,17 +80,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types<std::string>::performance_tl pq_tl_t; pq_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_priority_queue<std::string, true> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } { typedef native_priority_queue<std::string, false> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc index f1f76e8..e723892 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc @@ -44,13 +44,12 @@ * Contains test for finding text. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/priority_queue/common_type.hpp> #include <performance/priority_queue/timing/push_test.hpp> #include <io/text_populate.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <native_type/priority_queue/native_priority_queue.hpp> #include <iostream> #include <vector> @@ -81,17 +80,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types<std::string>::performance_tl pq_tl_t; pq_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_priority_queue<std::string, true> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } { typedef native_priority_queue<std::string, false> native_pq_t; - tst(pb_ds::detail::type_to_type<native_pq_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_pq_t>()); } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc index ce7c569..7ac42c8 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc @@ -44,7 +44,7 @@ * Contains test for finding random integers. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <native_type/assoc/native_hash_map.hpp> #include <native_type/assoc/native_map.hpp> @@ -52,7 +52,6 @@ #include <rng/twister_rand_gen.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/find_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <iostream> #include <vector> @@ -83,24 +82,24 @@ main(int argc, char* a_p_argv[]) test_t tst(b, b, vn, vs, vm, vn, vs, vm); { typedef native_hash_map< int, char> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { typedef native_map< int, char> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { typedef hash_common_types<int, char>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_common_types<int, char>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc index 5d796c2..8fadbe1 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc @@ -44,7 +44,7 @@ * Contains test for subscripting random integers. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <native_type/assoc/native_hash_map.hpp> #include <native_type/assoc/native_map.hpp> @@ -52,7 +52,6 @@ #include <rng/twister_rand_gen.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/subscript_find_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <iostream> #include <vector> @@ -84,23 +83,23 @@ main(int argc, char* a_p_argv[]) { typedef hash_common_types<int, size_t>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_common_types<int, size_t>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_hash_map<int, size_t> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { typedef native_map< int, size_t> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc index 60e16dd..fc83735f 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc @@ -44,7 +44,7 @@ * Contains test for subscripting random integers. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <native_type/assoc/native_hash_map.hpp> #include <native_type/assoc/native_map.hpp> @@ -52,7 +52,6 @@ #include <rng/twister_rand_gen.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/subscript_insert_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <iostream> #include <vector> @@ -84,23 +83,23 @@ main(int argc, char* a_p_argv[]) { typedef hash_common_types<int, size_t>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_common_types<int, size_t>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_hash_map< int, size_t> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } { typedef native_map< int, size_t> native_t; - tst(pb_ds::detail::type_to_type<native_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_t>()); } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc index a1cc598..c0a2e96 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc @@ -44,13 +44,12 @@ * Contains test for finding text. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/find_test.hpp> #include <io/text_populate.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <hash_fn/string_hash_fn.hpp> #include <native_type/assoc/native_hash_map.hpp> #include <native_type/assoc/native_map.hpp> @@ -86,22 +85,20 @@ main(int argc, char* a_p_argv[]) typedef hash_common_types<std::string, char, string_hash_fn>::performance_tl hash_tl_t; - typedef pb_ds::detail::typelist_append<pat_trie_tl_t, pb_ds::detail::typelist_append<hash_tl_t, tree_tl_t>::type>::type tl_t; + typedef __gnu_cxx::typelist::append<pat_trie_tl_t, __gnu_cxx::typelist::append<hash_tl_t, tree_tl_t>::type>::type tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_map<std::string, char> native_map_t; - tst(pb_ds::detail::type_to_type<native_map_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_map_t>()); +#ifdef PB_DS_USE_TR1 typedef native_hash_map<std::string, char, 8, string_hash_fn> native_hash_map_t; - tst(pb_ds::detail::type_to_type<native_hash_map_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_hash_map_t>()); - // XXX Unfortunately, this crashes -#if 0 -#ifdef PB_DS_USE_TR1 typedef native_hash_map< std::string, @@ -117,9 +114,8 @@ main(int argc, char* a_p_argv[]) true> sth_native_hash_map_t; - tst(pb_ds::detail::type_to_type<sth_native_hash_map_t>()); -#endif // #ifdef PB_DS_USE_TR1 -#endif // #if 0 + tst(__gnu_cxx::typelist::detail::type_to_type<sth_native_hash_map_t>()); +#endif } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc index 2af32f3..3a67b63 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc @@ -46,12 +46,11 @@ #include <iostream> #include <vector> -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <rng/twister_rand_gen.hpp> #include <common_type/assoc/common_type.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <performance/assoc/timing/tree_order_statistics_test.hpp> void @@ -74,14 +73,14 @@ main(int argc, char* a_p_argv[]) test_t tst(vn, vs, vm); typedef tree_common_types<int, pb_ds::null_mapped_type, std::less<int>, pb_ds::tree_order_statistics_node_update>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_order_statistics_test<false> test_t; test_t tst(vn, vs, vm); typedef native_set<int> native_set_t; - tst(pb_ds::detail::type_to_type<native_set_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_set_t>()); } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc index 6de06c5..675309c 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc @@ -44,13 +44,12 @@ * Contains test for joining trees. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <rng/twister_rand_gen.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/tree_split_join_test.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <iostream> #include <vector> @@ -75,14 +74,14 @@ main(int argc, char* a_p_argv[]) typedef tree_common_types<int, pb_ds::null_mapped_type>::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_split_join_test<false> test_t; test_t tst(vn, vs, vm); typedef native_set<int> native_set_t; - tst(pb_ds::detail::type_to_type<native_set_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_set_t>()); } } catch(...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc index f61fe1c..9436977 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc @@ -44,13 +44,12 @@ * Contains test for finding text. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/insert_test.hpp> #include <io/text_populate.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <hash_fn/string_hash_fn.hpp> #include <native_type/assoc/native_hash_map.hpp> #include <native_type/assoc/native_map.hpp> @@ -83,14 +82,14 @@ main(int argc, char* a_p_argv[]) { typedef trie_common_types<std::string, char>::performance_tl pat_trie_tl_t; typedef tree_common_types<std::string, char>::performance_tl tree_tl_t; - typedef pb_ds::detail::typelist_append<pat_trie_tl_t, tree_tl_t>::type tl_t; + typedef __gnu_cxx::typelist::append<pat_trie_tl_t, tree_tl_t>::type tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_map<std::string, char> native_map_t; - tst(pb_ds::detail::type_to_type<native_map_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_map_t>()); } } catch (...) diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc index 4dd5244..3c1bc0c 100644 --- a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc +++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc @@ -44,13 +44,12 @@ * Contains test for finding text with locality of reference. */ -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> #include <performance/io/xml_formatter.hpp> #include <io/verified_cmd_line_input.hpp> #include <common_type/assoc/common_type.hpp> #include <performance/assoc/timing/find_test.hpp> #include <io/text_populate.hpp> -#include <ext/pb_ds/detail/typelist.hpp> #include <native_type/assoc/native_map.hpp> #include <iostream> #include <vector> @@ -81,13 +80,13 @@ main(int argc, char* a_p_argv[]) test_t tst(b, b, vn, vs, vm, vn, vs, vm); { typedef native_map<std::string, char> native_set_t; - tst(pb_ds::detail::type_to_type<native_set_t>()); + tst(__gnu_cxx::typelist::detail::type_to_type<native_set_t>()); } { typedef tree_common_types<std::string, char>::performance_tl tree_tl_t; tree_tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } } catch(...) diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp index df07eb3..60ab0d8 100644 --- a/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp +++ b/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp @@ -65,7 +65,7 @@ namespace pb_ds class Eq_Fn = std::equal_to<Key>, class Allocator = - std::allocator< std::pair<const Key, Data> > > + std::allocator<std::pair<const Key, Data> > > struct hash_common_types { private: @@ -109,12 +109,12 @@ namespace pb_ds true> access_half_max_col_check_check_resize_trigger_policy; - typedef pb_ds::test::linear_probe_fn_t_< Key, Allocator> lin_p_t; + typedef pb_ds::test::linear_probe_fn_t_<Key, Allocator> lin_p_t; - typedef pb_ds::test::quadratic_probe_fn_t_< Key, Allocator> quad_p_t; + typedef pb_ds::test::quadratic_probe_fn_t_<Key, Allocator> quad_p_t; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::false_type, pb_ds::test::direct_mask_range_hashing_t_< Allocator>, @@ -124,7 +124,7 @@ namespace pb_ds performance_cc_policy0; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::false_type, pb_ds::test::direct_mod_range_hashing_t_< Allocator>, @@ -133,7 +133,7 @@ namespace pb_ds performance_cc_policy1; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::false_type, pb_ds::test::direct_mask_range_hashing_t_< Allocator>, @@ -143,7 +143,7 @@ namespace pb_ds performance_cc_policy2; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::false_type, pb_ds::test::direct_mod_range_hashing_t_< Allocator>, @@ -152,7 +152,7 @@ namespace pb_ds performance_cc_policy3; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::true_type, pb_ds::test::direct_mask_range_hashing_t_< Allocator>, @@ -162,7 +162,7 @@ namespace pb_ds performance_cc_policy4; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::false_type, pb_ds::test::direct_mask_range_hashing_t_< Allocator>, @@ -172,7 +172,7 @@ namespace pb_ds performance_cc_policy5; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::false_type, pb_ds::test::direct_mask_range_hashing_t_< Allocator>, @@ -182,7 +182,7 @@ namespace pb_ds regression_cc_policy0; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::false_type, pb_ds::test::direct_mask_range_hashing_t_< Allocator>, @@ -192,7 +192,7 @@ namespace pb_ds regression_cc_policy1; typedef - typename pb_ds::detail::typelist4< + typename __gnu_cxx::typelist::create4< pb_ds::detail::true_type, pb_ds::test::direct_mod_range_hashing_t_< Allocator>, @@ -201,7 +201,7 @@ namespace pb_ds regression_cc_policy2; typedef - typename pb_ds::detail::typelist5< + typename __gnu_cxx::typelist::create5< pb_ds::detail::false_type, lin_p_t, pb_ds::test::direct_mask_range_hashing_t_< @@ -212,7 +212,7 @@ namespace pb_ds performance_gp_policy0; typedef - typename pb_ds::detail::typelist5< + typename __gnu_cxx::typelist::create5< pb_ds::detail::false_type, quad_p_t, pb_ds::test::direct_mod_range_hashing_t_< @@ -222,7 +222,7 @@ namespace pb_ds performance_gp_policy1; typedef - typename pb_ds::detail::typelist5< + typename __gnu_cxx::typelist::create5< pb_ds::detail::false_type, quad_p_t, pb_ds::test::direct_mod_range_hashing_t_< @@ -232,7 +232,7 @@ namespace pb_ds regression_gp_policy0; typedef - typename pb_ds::detail::typelist5< + typename __gnu_cxx::typelist::create5< pb_ds::detail::true_type, lin_p_t, pb_ds::test::direct_mask_range_hashing_t_< @@ -243,7 +243,7 @@ namespace pb_ds regression_gp_policy1; typedef - typename pb_ds::detail::typelist6< + typename __gnu_cxx::typelist::create6< performance_cc_policy0, performance_cc_policy1, performance_cc_policy2, @@ -253,20 +253,20 @@ namespace pb_ds performance_cc_range_hashing_policies; typedef - typename pb_ds::detail::typelist3< + typename __gnu_cxx::typelist::create3< regression_cc_policy0, regression_cc_policy1, regression_cc_policy2>::type regression_cc_range_hashing_policies; typedef - typename pb_ds::detail::typelist2< + typename __gnu_cxx::typelist::create2< performance_gp_policy0, performance_gp_policy1>::type performance_gp_range_hashing_policies; typedef - typename pb_ds::detail::typelist2< + typename __gnu_cxx::typelist::create2< regression_gp_policy0, regression_gp_policy1>::type regression_gp_range_hashing_policies; @@ -276,7 +276,7 @@ namespace pb_ds { private: typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 0>::type store_hash_indicator; @@ -286,17 +286,17 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 1>::type comb_hash_fn; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 2>::type trigger_policy; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 3>::type size_policy; @@ -322,7 +322,7 @@ namespace pb_ds { private: typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 0>::type store_hash_indicator; @@ -332,17 +332,17 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 1>::type comb_hash_fn; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 2>::type trigger_policy; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 3>::type size_policy; @@ -368,7 +368,7 @@ namespace pb_ds { private: typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 0>::type store_hash_indicator; @@ -378,22 +378,22 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 1>::type probe_fn; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 2>::type comb_probe_fn; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 3>::type trigger_policy; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 4>::type size_policy; @@ -420,7 +420,7 @@ namespace pb_ds { private: typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 0>::type store_hash_indicator; @@ -430,22 +430,22 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 1>::type probe_fn; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 2>::type comb_probe_fn; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 3>::type trigger_policy; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 4>::type size_policy; @@ -468,56 +468,56 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::transform< performance_cc_range_hashing_policies, no_access_generic_cc_hash_table_t>::type performance_cc_types; typedef - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::transform< regression_cc_range_hashing_policies, access_generic_cc_hash_table_t>::type regression_cc_types; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< performance_cc_types, 0>::type performance_min_cc_type; typedef - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::transform< performance_gp_range_hashing_policies, no_access_generic_gp_hash_table_t>::type performance_gp_types; typedef - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::transform< regression_gp_range_hashing_policies, access_generic_gp_hash_table_t>::type regression_gp_types; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< performance_gp_types, 0>::type performance_min_gp_type; public: typedef - typename pb_ds::detail::typelist_append< + typename __gnu_cxx::typelist::append< performance_cc_types, performance_gp_types>::type performance_tl; typedef - typename pb_ds::detail::typelist_append< + typename __gnu_cxx::typelist::append< regression_gp_types, regression_cc_types>::type regression_tl; typedef - typename pb_ds::detail::typelist1< + typename __gnu_cxx::typelist::create1< performance_min_cc_type>::type performance_min_tl; }; @@ -636,7 +636,7 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::transform< Comb_Hash_Fn_TL, generic_cc_hash_table_t>::type performance_cc_types; @@ -660,14 +660,14 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::transform< Comb_Probe_Fn_TL, no_access_generic_gp_hash_table_t>::type performance_gp_types; public: typedef - typename pb_ds::detail::typelist_append< + typename __gnu_cxx::typelist::append< performance_cc_types, performance_gp_types>::type performance_tl; @@ -683,14 +683,14 @@ namespace pb_ds typedef pb_ds::test::move_to_front_lu_policy_t_ mtf_u; - typedef pb_ds::test::counter_lu_policy_t_< Allocator, 5> cnt_5_u; + typedef pb_ds::test::counter_lu_policy_t_<Allocator, 5> cnt_5_u; - typedef typename pb_ds::detail::typelist1< mtf_u>::type lu_policy0; + typedef typename __gnu_cxx::typelist::create1<mtf_u>::type lu_policy0; - typedef typename pb_ds::detail::typelist1< cnt_5_u>::type lu_policy1; + typedef typename __gnu_cxx::typelist::create1<cnt_5_u>::type lu_policy1; typedef - typename pb_ds::detail::typelist2< + typename __gnu_cxx::typelist::create2< lu_policy0, lu_policy1>::type lu_policies; @@ -700,7 +700,7 @@ namespace pb_ds { private: typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< Policy_Tl, 0>::type update_policy_t; @@ -716,26 +716,22 @@ namespace pb_ds }; typedef - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::transform< lu_policies, generic_list_update_t>::type lu_types; typedef - typename pb_ds::detail::typelist_at_index< + typename __gnu_cxx::typelist::at_index< lu_types, 0>::type min_lu_type; public: typedef lu_types performance_tl; - typedef lu_types regression_tl; - typedef - typename pb_ds::detail::typelist1< - min_lu_type>::type - performance_min_tl; + typedef typename __gnu_cxx::typelist::create1<min_lu_type>::type performance_min_tl; }; template<typename Key, typename Data, class Cmp_Fn = std::less<Key>, @@ -743,10 +739,8 @@ namespace pb_ds class Node_Iterator, class Cmp_Fn_, class Allocator_> - class Node_Update = - pb_ds::null_tree_node_update, - class Allocator = - std::allocator<std::pair<const Key, Data> > > + class Node_Update = pb_ds::null_tree_node_update, + class Allocator = std::allocator<std::pair<const Key, Data> > > struct tree_common_types { private: @@ -782,21 +776,21 @@ namespace pb_ds public: typedef - typename pb_ds::detail::typelist3< + typename __gnu_cxx::typelist::create3< splay_tree_assoc_container_t, rb_tree_assoc_container_t, ov_tree_assoc_container_t>::type performance_tl; typedef - typename pb_ds::detail::typelist3< + typename __gnu_cxx::typelist::create3< ov_tree_assoc_container_t, splay_tree_assoc_container_t, rb_tree_assoc_container_t>::type regression_tl; typedef - typename pb_ds::detail::typelist1< + typename __gnu_cxx::typelist::create1< rb_tree_assoc_container_t>::type performance_min_tl; }; @@ -804,40 +798,23 @@ namespace pb_ds template<typename Key, typename Data, class E_Access_Traits = - typename pb_ds::detail::default_trie_e_access_traits< - Key>::type, - class Tag = - pb_ds::pat_trie_tag, + typename pb_ds::detail::default_trie_e_access_traits<Key>::type, + class Tag = pb_ds::pat_trie_tag, template<typename Const_Node_Iterator, typename Node_Iterator, class E_Access_Traits_, typename Allocator_> - class Node_Update = - pb_ds::null_trie_node_update, - class Allocator = - std::allocator<char> > + class Node_Update = pb_ds::null_trie_node_update, + class Allocator = std::allocator<char> > class trie_common_types { private: - typedef - pb_ds::trie< - Key, - Data, - E_Access_Traits, - Tag, - Node_Update, - Allocator> - type; + typedef pb_ds::trie<Key, Data, E_Access_Traits, Tag, Node_Update, Allocator> type; public: - typedef typename pb_ds::detail::typelist1< type>::type performance_tl; - - typedef typename pb_ds::detail::typelist1< type>::type regression_tl; - - typedef - typename pb_ds::detail::typelist1< - type>::type - performance_min_tl; + typedef typename __gnu_cxx::typelist::create1<type>::type performance_tl; + typedef typename __gnu_cxx::typelist::create1<type>::type regression_tl; + typedef typename __gnu_cxx::typelist::create1<type>::type performance_min_tl; }; } // namespace test diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp index 983f8a1..f28cb83 100644 --- a/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp +++ b/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp @@ -81,74 +81,74 @@ namespace pb_ds private: template<typename D_Cntnr> static std::string - name(pb_ds::detail::type_to_type<D_Cntnr>) + name(__gnu_cxx::typelist::detail::type_to_type<D_Cntnr>) { return ("mmap_" + pb_ds_string_form<D_Cntnr>::name()); } template<typename D_Cntnr> static std::string - desc(pb_ds::detail::type_to_type<D_Cntnr>) + desc(__gnu_cxx::typelist::detail::type_to_type<D_Cntnr>) { return (pb_ds_string_form<D_Cntnr>::desc()); } static std::string - name(pb_ds::detail::type_to_type<size_t>) + name(__gnu_cxx::typelist::detail::type_to_type<size_t>) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type<size_t>) + desc(__gnu_cxx::typelist::detail::type_to_type<size_t>) { return (""); } static std::string - name(pb_ds::detail::type_to_type<basic_type>) + name(__gnu_cxx::typelist::detail::type_to_type<basic_type>) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type<basic_type>) + desc(__gnu_cxx::typelist::detail::type_to_type<basic_type>) { return (""); } static std::string - name(pb_ds::detail::type_to_type<int>) + name(__gnu_cxx::typelist::detail::type_to_type<int>) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type<int>) + desc(__gnu_cxx::typelist::detail::type_to_type<int>) { return (""); } static std::string - name(pb_ds::detail::type_to_type<char>) + name(__gnu_cxx::typelist::detail::type_to_type<char>) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type<char>) + desc(__gnu_cxx::typelist::detail::type_to_type<char>) { return (""); } static std::string - name(pb_ds::detail::type_to_type<pb_ds::null_mapped_type>) + name(__gnu_cxx::typelist::detail::type_to_type<pb_ds::null_mapped_type>) { return ("set"); } static std::string - desc(pb_ds::detail::type_to_type<pb_ds::null_mapped_type>) + desc(__gnu_cxx::typelist::detail::type_to_type<pb_ds::null_mapped_type>) { return (""); } @@ -157,13 +157,13 @@ namespace pb_ds static std::string name() { - return (name(pb_ds::detail::type_to_type<mapped_type>())); + return (name(__gnu_cxx::typelist::detail::type_to_type<mapped_type>())); } static std::string desc() { - return (desc(pb_ds::detail::type_to_type<mapped_type>())); + return (desc(__gnu_cxx::typelist::detail::type_to_type<mapped_type>())); } }; diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp index 288aba2..3df687c 100644 --- a/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp +++ b/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp @@ -47,8 +47,7 @@ #ifndef PB_DS_TEMPLATE_POLICY_HPP #define PB_DS_TEMPLATE_POLICY_HPP -#include <ext/pb_ds/detail/typelist.hpp> - +#include <ext/typelist.h> #include <ext/pb_ds/hash_policy.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/list_update_policy.hpp> diff --git a/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp b/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp index 437fe6e..a997557 100644 --- a/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp +++ b/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp @@ -49,7 +49,7 @@ #include <ext/pb_ds/detail/type_utils.hpp> #include <ext/pb_ds/priority_queue.hpp> -#include <ext/pb_ds/detail/typelist.hpp> +#include <ext/typelist.h> namespace pb_ds { @@ -72,7 +72,7 @@ namespace pb_ds typedef pb_ds::priority_queue<Value_Type, Cmp_Fn, pb_ds::thin_heap_tag, Allocator> thin_heap_t; - typedef typename pb_ds::detail::typelist5<thin_heap_t, pairing_heap_t, binomial_heap_t, rc_binomial_heap_t, binary_heap_t>::type all_tl; + typedef typename __gnu_cxx::typelist::create5<thin_heap_t, pairing_heap_t, binomial_heap_t, rc_binomial_heap_t, binary_heap_t>::type all_tl; public: typedef all_tl performance_tl; diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp index 528934e..889edf2 100644 --- a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp +++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp @@ -47,10 +47,11 @@ #ifndef PB_DS_NATIVE_HASH_MAP_HPP #define PB_DS_NATIVE_HASH_MAP_HPP +#include <string> +#include <ext/pb_ds/detail/type_utils.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> #include <native_type/assoc/native_hash_tag.hpp> #include <io/xml.hpp> -#include <string> // Default to using tr1. #define PB_DS_USE_TR1 1 diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp index 937cc67..a525ef2 100644 --- a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp +++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp @@ -47,57 +47,27 @@ #ifndef PB_DS_NATIVE_HASH_MULTIMAP_HPP #define PB_DS_NATIVE_HASH_MULTIMAP_HPP +#include <string> +#include <ext/hash_map> +#include <ext/pb_ds/detail/type_utils.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> #include <native_type/assoc/native_hash_tag.hpp> #include <io/xml.hpp> -#include <string> -#include <ext/hash_map> namespace pb_ds { - namespace test { - -#define PB_DS_CLASS_T_DEC \ - template< \ - typename Key, \ - typename Data, \ - size_t Init_Size, \ - class Hash_Fn, \ - class Eq_Fn, \ - class Less_Fn, \ - class Allocator> - -#define PB_DS_CLASS_C_DEC \ - native_hash_multimap< \ - Key, \ - Data, \ - Init_Size, \ - Hash_Fn, \ - Eq_Fn, \ - Less_Fn, \ - Allocator> - -#define PB_DS_BASE_C_DEC \ - __gnu_cxx::hash_multimap< \ - Key, \ - Data, \ - Hash_Fn, \ - Eq_Fn, \ - Allocator> +#define PB_DS_BASE_C_DEC \ + __gnu_cxx::hash_multimap<Key, Data, Hash_Fn, Eq_Fn, Allocator> template<typename Key, typename Data, size_t Init_Size = 8, - class Hash_Fn = - typename pb_ds::detail::default_hash_fn<Key>::type, - class Eq_Fn = - std::equal_to<Key>, - class Less_Fn = - std::less<Key>, - class Allocator = - std::allocator<char> > + class Hash_Fn = typename pb_ds::detail::default_hash_fn<Key>::type, + class Eq_Fn = std::equal_to<Key>, + class Less_Fn = std::less<Key>, + class Allocator = std::allocator<char> > class native_hash_multimap : public PB_DS_BASE_C_DEC { private: @@ -114,119 +84,78 @@ namespace pb_ds typedef typename Allocator::template rebind< - std::pair< - Key, - Data> >::other::const_reference + std::pair<Key, Data> >::other::const_reference const_reference; - public: - native_hash_multimap(); + native_hash_multimap() : base_type(Init_Size) + { } + + template<typename It> + native_hash_multimap(It f, It l) : base_type(f, l) + { } inline void insert(typename base_type::const_reference r_val) { - typedef - std::pair< - typename base_type::iterator, - typename base_type::iterator> - eq_range_t; - + typedef std::pair<iterator, iterator> eq_range_t; eq_range_t f = base_type::equal_range(r_val.first); - typename base_type::iterator it = f.first; - + iterator it = f.first; while (it != f.second) { if (it->second == r_val.second) return; - ++it; } - base_type::insert(r_val); } inline iterator find(const_reference r_val) { - typedef - std::pair< - typename base_type::iterator, - typename base_type::iterator> - eq_range_t; - + typedef std::pair<iterator, iterator> eq_range_t; eq_range_t f = base_type::equal_range(r_val.first); - typename base_type::iterator it = f.first; - + iterator it = f.first; while (it != f.second) { if (it->second == r_val.second) return it; - ++it; } - return base_type::end(); } inline const_iterator find(const_reference r_val) const { - typedef - std::pair< - typename base_type::const_iterator, - typename base_type::const_iterator> - eq_range_t; - + typedef std::pair<const_iterator, const_iterator> eq_range_t; eq_range_t f = base_type::equal_range(r_val.first); - typename base_type::const_iterator it = f.first; - + const_iterator it = f.first; while (it != f.second) { if (it->second == r_val.second) return it; - ++it; } - return base_type::end(); } - template<typename It> - native_hash_multimap(It f, It l); - static std::string name() - { - return ("n_hash_mmap"); - } + { return std::string("n_hash_mmap"); } static std::string desc() { - return (make_xml_tag("type", "value", "__gnucxx_hash_multimap")); + return make_xml_tag("type", "value", "__gnucxx_hash_multimap"); } }; - PB_DS_CLASS_T_DEC - PB_DS_CLASS_C_DEC:: - native_hash_multimap() : base_type(Init_Size) - { } - - PB_DS_CLASS_T_DEC - template<typename It> - PB_DS_CLASS_C_DEC:: - native_hash_multimap(It f, It l) : base_type(f, l) - { } - -#undef PB_DS_CLASS_T_DEC -#undef PB_DS_CLASS_C_DEC #undef PB_DS_BASE_C_DEC } // namespace test - } // namespace pb_ds -#endif // #ifndef PB_DS_NATIVE_HASH_MULTIMAP_HPP +#endif diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp index e1082c9..7f89392 100644 --- a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp +++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp @@ -47,10 +47,11 @@ #ifndef PB_DS_NATIVE_HASH_SET_HPP #define PB_DS_NATIVE_HASH_SET_HPP +#include <string> +#include <ext/pb_ds/detail/type_utils.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> #include <native_type/assoc/native_hash_tag.hpp> #include <io/xml.hpp> -#include <string> // Default to using tr1. #define PB_DS_USE_TR1 1 @@ -77,7 +78,7 @@ namespace pb_ds template<typename Key, size_t Init_Size = 8, - typename Hash_Fn = typename pb_ds::detail::default_hash_fn<Key>::type, + typename Hash_Fn = typename pb_ds::detail::default_hash_fn<Key>::type, typename Eq_Fn = std::equal_to<Key>, typename Less_Fn = std::less<Key>, typename Allocator = std::allocator<char> diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp index a9d8e11..d32730c 100644 --- a/libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp +++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp @@ -48,30 +48,22 @@ #define PB_DS_NATIVE_MAP_HPP #include <map> +#include <string> +#include <ext/pb_ds/detail/type_utils.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> #include <native_type/assoc/native_tree_tag.hpp> #include <io/xml.hpp> -#include <string> namespace pb_ds { - namespace test { - -#define PB_DS_BASE_C_DEC \ - std::map< \ - Key, \ - Data, \ - Cmp_Fn, \ - typename Allocator::template rebind< \ - std::pair< \ - const Key, \ - Data > >::other > +#define PB_DS_BASE_C_DEC \ + std::map<Key, Data, Cmp_Fn, \ +typename Allocator::template rebind<std::pair<const Key, Data > >::other > template<typename Key, typename Data, class Cmp_Fn = std::less<Key>, - class Allocator = - std::allocator<char> > + class Allocator = std::allocator<char> > class native_map : public PB_DS_BASE_C_DEC { private: @@ -80,7 +72,6 @@ namespace pb_ds public: typedef native_tree_tag container_category; - public: native_map() : base_type() { } @@ -90,15 +81,11 @@ namespace pb_ds static std::string name() - { - return ("n_map"); - } + { return std::string("n_map"); } static std::string desc() - { - return (make_xml_tag( "type", "value", "std_map")); - } + { return make_xml_tag("type", "value", "std_map"); } }; #undef PB_DS_BASE_C_DEC diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp index 42b9766..e2e1baf 100644 --- a/libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp +++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp @@ -48,38 +48,20 @@ #define PB_DS_NATIVE_MULTIMAP_HPP #include <map> -#include <native_type/assoc/native_tree_tag.hpp> #include <string> +#include <ext/pb_ds/detail/type_utils.hpp> +#include <native_type/assoc/native_tree_tag.hpp> namespace pb_ds { - namespace test { - -#define PB_DS_CLASS_T_DEC \ - template<typename Key, typename Data, class Less_Fn, class Allocator> - -#define PB_DS_CLASS_C_DEC \ - native_multimap< \ - Key, \ - Data, \ - Less_Fn, \ - Allocator> - -#define PB_DS_BASE_C_DEC \ - std::multimap< \ - Key, \ - Data, \ - Less_Fn, \ - typename Allocator::template rebind< \ - std::pair< \ - const Key, \ - Data> >::other > +#define PB_DS_BASE_C_DEC \ + std::multimap<Key, Data, Less_Fn, \ + typename Allocator::template rebind<std::pair<const Key, Data> >::other> template<typename Key, typename Data, class Less_Fn = std::less<Key>, - class Allocator = - std::allocator<char> > + class Allocator = std::allocator<char> > class native_multimap : public PB_DS_BASE_C_DEC { private: @@ -92,55 +74,41 @@ namespace pb_ds typedef typename Allocator::template rebind< - std::pair< - Key, - Data> >::other::const_reference + std::pair<Key, Data> >::other::const_reference const_reference; typedef typename base_type::iterator iterator; - typedef typename base_type::const_iterator const_iterator; - public: - native_multimap(); + native_multimap() { } + + template<typename It> + native_multimap(It f, It l) : base_type(f, l) + { } inline void insert(const_reference r_val) { - typedef - std::pair< - typename base_type::iterator, - typename base_type::iterator> - eq_range_t; - + typedef std::pair<iterator, iterator> eq_range_t; eq_range_t f = base_type::equal_range(r_val.first); - typename base_type::iterator it = f.first; - + iterator it = f.first; while (it != f.second) { if (it->second == r_val.second) return; - ++it; } - base_type::insert(r_val); } inline iterator find(const_reference r_val) { - typedef - std::pair< - typename base_type::iterator, - typename base_type::iterator> - eq_range_t; - + typedef std::pair<iterator, iterator> eq_range_t; eq_range_t f = base_type::equal_range(r_val.first); - typename base_type::iterator it = f.first; - + iterator it = f.first; while (it != f.second) { if (it->second == r_val.second) @@ -154,55 +122,28 @@ namespace pb_ds inline const_iterator find(const_reference r_val) const { - typedef - std::pair< - typename base_type::const_iterator, - typename base_type::const_iterator> - eq_range_t; - + typedef std::pair<const_iterator, const_iterator> eq_range_t; eq_range_t f = base_type::equal_range(r_val.first); - typename base_type::const_iterator it = f.first; - + const_iterator it = f.first; while (it != f.second) { if (it->second == r_val.second) return it; ++it; } - return base_type::end(); } - - template<typename It> - native_multimap(It f, It l); - + static std::string name() - { - return ("n_mmap"); - } + { return std::string("n_mmap"); } static std::string desc() - { - return (make_xml_tag("type", "value", "std_multimap")); - } + { return make_xml_tag("type", "value", "std_multimap"); } }; - PB_DS_CLASS_T_DEC - PB_DS_CLASS_C_DEC:: - native_multimap() - { } - - PB_DS_CLASS_T_DEC - template<typename It> - PB_DS_CLASS_C_DEC:: - native_multimap(It f, It l) : base_type(f, l) - { } - -#undef PB_DS_CLASS_T_DEC -#undef PB_DS_CLASS_C_DEC #undef PB_DS_BASE_C_DEC } // namespace test diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp index ec72648..9d03adc 100644 --- a/libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp +++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp @@ -47,38 +47,30 @@ #ifndef PB_DS_NATIVE_SET_HPP #define PB_DS_NATIVE_SET_HPP +#include <string> +#include <ext/pb_ds/detail/type_utils.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> #include <native_type/assoc/native_tree_tag.hpp> #include <io/xml.hpp> -#include <string> namespace pb_ds { - namespace test { - -#define PB_DS_BASE_C_DEC \ - std::set< \ - Key, \ - Cmp_Fn, \ - typename Allocator::template rebind< \ - Key>::other> +#define PB_DS_BASE_C_DEC \ + std::set<Key, Cmp_Fn, typename Allocator::template rebind<Key>::other> template<typename Key, class Cmp_Fn = std::less<Key>, - class Allocator = - std::allocator<char> > + class Allocator = std::allocator<char> > class native_set : public PB_DS_BASE_C_DEC { private: - typedef PB_DS_BASE_C_DEC base_type; + typedef PB_DS_BASE_C_DEC base_type; public: - typedef native_tree_tag container_category; + typedef native_tree_tag container_category; + typedef typename base_type::const_iterator const_iterator; - typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator; - - public: native_set() : base_type() { } @@ -91,21 +83,15 @@ namespace pb_ds static std::string name() - { - return ("n_set"); - } + { return std::string("n_set"); } static std::string desc() - { - return (make_xml_tag( "type", "value", "std_set")); - } + { return make_xml_tag("type", "value", "std_set"); } }; #undef PB_DS_BASE_C_DEC - } // namespace test - } // namespace pb_ds #endif // #ifndef PB_DS_NATIVE_SET_HPP diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp index bf69c92..079f148 100644 --- a/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp +++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp @@ -49,15 +49,11 @@ namespace pb_ds { - namespace test { - struct native_tree_tag { }; - } // namespace test - } // namespace pb_ds #endif // #ifndef PB_DS_NATIVE_TREE_DS_TAG_HPP diff --git a/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp index 0754567..83e5fda 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp @@ -74,7 +74,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: erase_test(const erase_test& ); @@ -100,7 +100,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp index 2cb9abc..c20aee3 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp @@ -75,18 +75,18 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: multimap_insert_test(const multimap_insert_test& ); template<typename Cntnr> size_t - insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::true_type); + insert(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::true_type); template<typename Cntnr> size_t - insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::false_type); + insert(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::false_type); private: const It m_ins_b; @@ -109,7 +109,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), @@ -123,7 +123,7 @@ namespace pb_ds It ins_it_e = m_ins_b; std::advance(ins_it_e, ins_size); - const size_t delta_mem = insert(pb_ds::detail::type_to_type<Cntnr>(), + const size_t delta_mem = insert(__gnu_cxx::typelist::detail::type_to_type<Cntnr>(), ins_it_b, ins_it_e, pb_ds::detail::integral_constant<int,Native>()); @@ -136,7 +136,7 @@ namespace pb_ds template<typename Cntnr> size_t PB_DS_CLASS_C_DEC:: - insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::true_type) + insert(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::true_type) { mem_track_allocator<char> alloc; @@ -158,7 +158,7 @@ namespace pb_ds template<typename Cntnr> size_t PB_DS_CLASS_C_DEC:: - insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::false_type) + insert(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::false_type) { mem_track_allocator<char> alloc; diff --git a/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp b/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp index 51cc3cc..c26cf3d 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp @@ -129,8 +129,8 @@ namespace pb_ds public: typedef - typename pb_ds::detail::typelist_flatten< - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::flatten< + typename __gnu_cxx::typelist::transform< Sec_Tl, hash_mmap_transform>::type>::type type; @@ -159,8 +159,8 @@ namespace pb_ds public: typedef - typename pb_ds::detail::typelist_flatten< - typename pb_ds::detail::typelist_transform< + typename __gnu_cxx::typelist::flatten< + typename __gnu_cxx::typelist::transform< Sec_Tl, tree_mmap_transform>::type>::type type; @@ -242,11 +242,11 @@ namespace pb_ds public: typedef - typename pb_ds::detail::typelist_append< + typename __gnu_cxx::typelist::append< hl_mmap_tl_t, - typename pb_ds::detail::typelist_append< + typename __gnu_cxx::typelist::append< hh_mmap_tl_t, - typename pb_ds::detail::typelist_append< + typename __gnu_cxx::typelist::append< th_mmap_tl_t, tl_mmap_tl_t>::type>::type>::type type; diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp index 8a6a22e..be4a31b 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp @@ -73,8 +73,8 @@ namespace pb_ds }; typedef - pb_ds::detail::typelist_flatten< - pb_ds::detail::typelist_transform< + __gnu_cxx::typelist::flatten< + __gnu_cxx::typelist::transform< hash_set_tl_t, hash_mmap_transform>::type>::type hash_mmap_tl_t; @@ -97,8 +97,8 @@ namespace pb_ds }; typedef - pb_ds::detail::typelist_flatten< - pb_ds::detail::typelist_transform< + __gnu_cxx::typelist::flatten< + __gnu_cxx::typelist::transform< tree_set_tl_t, tree_mmap_transform>::type>::type tree_mmap_tl_t; diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp index aa58e8a..1ef770a 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp @@ -140,7 +140,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: find_test(const find_test& ); @@ -176,7 +176,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp index d422779..ab74c7a 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp @@ -104,14 +104,14 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: insert_test(const insert_test& ); template<typename Cntnr> void - insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); + insert(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -134,7 +134,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), @@ -162,7 +162,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) + insert(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) { Cntnr cntnr; diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp index 1d005fc..d8e5326 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp @@ -155,18 +155,18 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: multimap_find_test(const multimap_find_test& ); template<typename Cntnr> Cntnr - init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::true_type); + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type<Cntnr>, pb_ds::detail::true_type); template<typename Cntnr> Cntnr - init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::false_type); + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type<Cntnr>, pb_ds::detail::false_type); private: const It m_ins_b; @@ -189,7 +189,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), @@ -205,7 +205,7 @@ namespace pb_ds Cntnr c = init(ins_it_b, ins_it_e, - pb_ds::detail::type_to_type<Cntnr>(), + __gnu_cxx::typelist::detail::type_to_type<Cntnr>(), pb_ds::detail::integral_constant<int,Native>()); pb_ds::test::detail::multimap_find_functor<It, Cntnr, Native> @@ -222,7 +222,7 @@ namespace pb_ds template<typename Cntnr> Cntnr PB_DS_CLASS_C_DEC:: - init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::true_type) + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type<Cntnr>, pb_ds::detail::true_type) { return Cntnr(ins_b, ins_e); } @@ -231,7 +231,7 @@ namespace pb_ds template<typename Cntnr> Cntnr PB_DS_CLASS_C_DEC:: - init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::false_type) + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type<Cntnr>, pb_ds::detail::false_type) { Cntnr ret; diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp index f481137..4b6885b 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp @@ -132,7 +132,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: multimap_insert_test(const multimap_insert_test& ); @@ -158,7 +158,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp index eaf66b4..96c08b5 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp @@ -106,7 +106,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: subscript_find_test(const subscript_find_test& ); @@ -142,7 +142,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp index 2fd8b88..ad3d650 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp @@ -104,7 +104,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: subscript_insert_test(const subscript_insert_test& ); @@ -140,7 +140,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp index c87a782..b169048 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp @@ -157,7 +157,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: tree_order_statistics_test(const tree_order_statistics_test& ); @@ -188,7 +188,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp index 18dd0af..4309d5a 100644 --- a/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp @@ -134,7 +134,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: tree_split_join_test(const tree_split_join_test& ); @@ -157,7 +157,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp index 85e234c..a0db15f 100644 --- a/libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp @@ -74,7 +74,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: pop_test(const pop_test& ); @@ -100,7 +100,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp index ffa1187..cd8135d 100644 --- a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp @@ -128,7 +128,7 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { using pb_ds::test::detail::double_push_functor; using pb_ds::test::detail::double_push_join_functor; @@ -159,7 +159,7 @@ namespace pb_ds template<typename Cntnr> void - join(pb_ds::detail::type_to_type<Cntnr>, It b, It e) + join(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It b, It e) { Cntnr cntnr; typedef typename Cntnr::const_reference const_reference; diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp index 8694f99..25fc416 100644 --- a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp @@ -283,14 +283,14 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: modify_test(const modify_test& ); template<typename Cntnr> void - modify(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); + modify(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -316,7 +316,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), @@ -367,7 +367,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - modify(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) + modify(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) { Cntnr cntnr; diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp index 779ee67..2186951 100644 --- a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp @@ -107,14 +107,14 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: push_pop_test(const push_pop_test& ); template<typename Cntnr> void - push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); + push(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -137,7 +137,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), @@ -165,7 +165,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) + push(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) { Cntnr cntnr; diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp index 29dcd77..fbcc340 100644 --- a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp +++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp @@ -104,14 +104,14 @@ namespace pb_ds template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>); + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>); private: push_test(const push_test& ); template<typename Cntnr> void - push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); + push(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -134,7 +134,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { xml_result_set_performance_formatter res_set_fmt( string_form<Cntnr>::name(), @@ -162,7 +162,7 @@ namespace pb_ds template<typename Cntnr> void PB_DS_CLASS_C_DEC:: - push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) + push(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e) { Cntnr cntnr; diff --git a/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp b/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp index 7567c5f..e62bf40 100644 --- a/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp +++ b/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp @@ -82,7 +82,7 @@ namespace test typedef typename tree_common_types<basic_type, Data_Type, std::less<basic_type>, pb_ds::tree_order_statistics_node_update, alloc_type>::regression_tl order_statistics_tl_t; public: - typedef typename pb_ds::detail::typelist_append<no_order_statistics_tl_t, order_statistics_tl_t>::type tl_t; + typedef typename __gnu_cxx::typelist::append<no_order_statistics_tl_t, order_statistics_tl_t>::type tl_t; typedef no_order_statistics_tl_t min_tl_t; }; @@ -98,7 +98,7 @@ namespace test typedef typename trie_common_types<basic_type, Data_Type, e_access_traits_t, pb_ds::pat_trie_tag, pb_ds::trie_prefix_search_node_update, alloc_type>::regression_tl prefix_search_tl_t; public: - typedef typename pb_ds::detail::typelist_append<no_updates_tl_t, typename pb_ds::detail::typelist_append<prefix_search_tl_t, order_statistics_tl_t>::type>::type tl_t; + typedef typename __gnu_cxx::typelist::append<no_updates_tl_t, typename __gnu_cxx::typelist::append<prefix_search_tl_t, order_statistics_tl_t>::type>::type tl_t; typedef no_updates_tl_t min_tl_t; }; diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp index a7c3b7b..219701c 100644 --- a/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp +++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp @@ -76,7 +76,7 @@ namespace detail template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { unsigned long ul = static_cast<unsigned long>(m_sd); container_rand_regression_test<Cntnr> t(ul, m_n, m_n, m_tp, m_ip, @@ -143,7 +143,7 @@ namespace detail try { detail::rand_reg_test tst(sd, n, m, tp, ip, ep, cp, mp, disp); - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } catch(...) { diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp index 385a2c4..1390a07 100644 --- a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp +++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp @@ -76,7 +76,7 @@ namespace detail template<typename Cntnr> void - operator()(pb_ds::detail::type_to_type<Cntnr>) + operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>) { unsigned long ul = static_cast<unsigned long>(m_sd); container_rand_regression_test<Cntnr> t(ul, m_n, m_n, m_tp, m_ip, m_dp, @@ -145,7 +145,7 @@ namespace detail try { detail::rand_reg_test tst(sd, n, m, tp, ip, dp, ep, cp, mp, disp); - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } catch(...) { diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp index f0da95e..16075f1 100644 --- a/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp +++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp @@ -93,7 +93,7 @@ namespace pb_ds generate_value(Gen& r_gen, size_t max) { return (generate_value(r_gen, max, - pb_ds::detail::type_to_type<value_type>())); + __gnu_cxx::typelist::detail::type_to_type<value_type>())); } static const_key_reference @@ -118,21 +118,21 @@ namespace pb_ds private: template<typename Gen> static value_type - generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type<pb_ds::null_mapped_type>) + generate_value(Gen& r_gen, size_t max, __gnu_cxx::typelist::detail::type_to_type<pb_ds::null_mapped_type>) { return (basic_type(r_gen, max)); } template<typename Gen> static value_type - generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type<basic_type>) + generate_value(Gen& r_gen, size_t max, __gnu_cxx::typelist::detail::type_to_type<basic_type>) { return (basic_type(r_gen, max)); } template<typename Gen> static value_type - generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type<std::pair<const basic_type, basic_type> >) + generate_value(Gen& r_gen, size_t max, __gnu_cxx::typelist::detail::type_to_type<std::pair<const basic_type, basic_type> >) { return (std::make_pair(basic_type(r_gen, max), basic_type(r_gen, max))); } |