From: bkoz Date: Wed, 20 Sep 2006 13:49:46 +0000 (+0000) Subject: 2006-09-20 Benjamin Kosnik X-Git-Tag: upstream/4.9.2~52976 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=59ae0c9c83e70e6a6a6da6aed83e55ed87092989;p=platform%2Fupstream%2Flinaro-gcc.git 2006-09-20 Benjamin Kosnik * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117081 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 + + * 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 * 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 +#include #include #include #include @@ -55,7 +55,7 @@ namespace pb_ds { -#define PB_DS_BASE_C_DEC \ +#define PB_DS_BASE_C_DEC \ detail::container_base_dispatch::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 >::type, \ - Policy_TL>::type, Allocator> +#define PB_DS_BASE_C_DEC \ + container_base >::type, Policy_TL>::type, Allocator> // An abstract basic hash-based associative container. template::type, Allocator> + cc_hash_tag, \ + typename __gnu_cxx::typelist::create1::type, Allocator> // A concrete collision-chaining hash-based associative container. template::type, Allocator> + gp_hash_tag, \ + typename __gnu_cxx::typelist::create2::type, Allocator> // A concrete general-probing hash-based associative container. template::type, Allocator> + typename __gnu_cxx::typelist::create2::type, Allocator> // A concrete basic tree-based associative container. template, @@ -561,7 +560,7 @@ namespace pb_ds #define PB_DS_BASE_C_DEC \ basic_tree::type, Allocator> + typename __gnu_cxx::typelist::create2::type, Allocator> // A concrete basic trie-based associative container. template::type, Allocator> +#define PB_DS_BASE_C_DEC \ + container_base::type, Allocator> // A list-update based associative container. template +#include #define PB_DS_DATA_TRUE_INDICATOR #include @@ -107,303 +107,232 @@ namespace pb_ds { - namespace detail +namespace detail +{ + // Primary template. + template + struct container_base_dispatch; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef lu_map_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef lu_map_no_data_ type; + }; + + template + struct container_base_dispatch { + private: + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; - template - struct container_base_dispatch; - - template - struct container_base_dispatch< - Key, - Mapped, - list_update_tag, - Policy_Tl, - Allocator> - { - typedef - lu_map_data_< - Key, - Mapped, - typename typelist_at_index::type, - Allocator, - typename typelist_at_index::type> - type; - }; - - template - 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::type, - Allocator, - typename typelist_at_index::type> - type; - }; - - template - struct container_base_dispatch< - Key, - Mapped, - pat_trie_tag, - Policy_Tl, - Allocator> - { - typedef - pat_trie_data_< - Key, - Mapped, - typename typelist_at_index::type, - Allocator> - type; - }; - - template - 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::type, - Allocator> - type; - }; - - template - struct container_base_dispatch< - Key, - Mapped, - rb_tree_tag, - Policy_Tl, - Allocator> - { - typedef - rb_tree_data_< - Key, - Mapped, - typename typelist_at_index::type, - typename typelist_at_index::type, - Allocator> - type; - }; - - template - 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::type, - typename typelist_at_index::type, - Allocator> - type; - }; - - template - struct container_base_dispatch< - Key, - Mapped, - splay_tree_tag, - Policy_Tl, - Allocator> - - { - typedef - splay_tree_data_< - Key, - Mapped, - typename typelist_at_index::type, - typename typelist_at_index::type, - Allocator> - type; - }; - - template - 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::type, - typename typelist_at_index::type, - Allocator> - type; - }; - - template - struct container_base_dispatch< - Key, - Mapped, - ov_tree_tag, - Policy_Tl, - Allocator> - { - typedef - ov_tree_data_< - Key, - Mapped, - typename typelist_at_index::type, - typename typelist_at_index::type, - Allocator> - type; - }; - - template - 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::type, - typename typelist_at_index::type, - Allocator> - type; - }; - - template - struct container_base_dispatch< - Key, - Mapped, - cc_hash_tag, - Policy_Tl, - Allocator> - { - typedef - cc_ht_map_data_< - Key, - Mapped, - typename typelist_at_index::type, - typename typelist_at_index::type, - Allocator, - typelist_at_index::type::value, - typename typelist_at_index::type, - typename typelist_at_index::type> - type; - }; - - template - 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::type, - typename typelist_at_index::type, - Allocator, - typelist_at_index::type::value, - typename typelist_at_index::type, - typename typelist_at_index::type> - type; - }; - - template - struct container_base_dispatch< - Key, - Mapped, - gp_hash_tag, - Policy_Tl, - Allocator> - { - typedef - gp_ht_map_data_< - Key, - Mapped, - typename typelist_at_index::type, - typename typelist_at_index::type, - Allocator, - typelist_at_index::type::value, - typename typelist_at_index::type, - typename typelist_at_index::type, - typename typelist_at_index::type> - type; - }; - - template - 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::type, - typename typelist_at_index::type, - Allocator, - typelist_at_index::type::value, - typename typelist_at_index::type, - typename typelist_at_index::type, - typename typelist_at_index::type> - type; - }; - - } // namespace detail + public: + typedef pat_trie_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef pat_trie_no_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef rb_tree_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef rb_tree_no_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef splay_tree_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef splay_tree_no_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef ov_tree_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + + public: + typedef ov_tree_no_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index at4; + typedef typename at4::type at4t; + + public: + typedef cc_ht_map_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index at4; + typedef typename at4::type at4t; + + public: + typedef cc_ht_map_no_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index at4; + typedef typename at4::type at4t; + typedef __gnu_cxx::typelist::at_index at5; + typedef typename at5::type at5t; + + public: + typedef gp_ht_map_data_ type; + }; + + template + struct container_base_dispatch + { + private: + typedef __gnu_cxx::typelist::at_index at0; + typedef typename at0::type at0t; + typedef __gnu_cxx::typelist::at_index at1; + typedef typename at1::type at1t; + typedef __gnu_cxx::typelist::at_index at2; + typedef typename at2::type at2t; + typedef __gnu_cxx::typelist::at_index at3; + typedef typename at3::type at3t; + typedef __gnu_cxx::typelist::at_index at4; + typedef typename at4::type at4t; + typedef __gnu_cxx::typelist::at_index at5; + typedef typename at5::type at5t; + + public: + typedef gp_ht_map_no_data_ 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)> \ - UNIQUE##static_assert_type +#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ + typedef detail::static_assert_dumclass)> 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(new_size) << std::endl; -#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_ + std::cerr << "chmccrt::notify_resized " + << static_cast(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(m_size) << " " << - static_cast(m_max_col) << std::endl; -#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_ + std::cerr << "chmccrt::calc_max_num_coll " + << static_cast(m_size) << " " + << static_cast(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)> UNIQUE##static_assert_type +#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ + typedef detail::static_assert_dumclass)> 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 class hash_load_check_resize_trigger_size_base; -#define PB_DS_CLASS_T_DEC \ + // Specializations. template - -#define PB_DS_CLASS_C_DEC \ - hash_load_check_resize_trigger_size_base< \ - Size_Type, \ - true> - - template - class hash_load_check_resize_trigger_size_base< - Size_Type, - true> + class hash_load_check_resize_trigger_size_base { 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 - -#define PB_DS_CLASS_C_DEC \ - hash_load_check_resize_trigger_size_base< \ - Size_Type, \ - false> - template - class hash_load_check_resize_trigger_size_base< - Size_Type, - false> + class hash_load_check_resize_trigger_size_base { 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)> \ - UNIQUE##static_assert_type +#define PB_DS_STATIC_ASSERT(UNIQUE, E) \ + typedef detail::static_assert_dumclass)> 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..b88e703 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 - -namespace pb_ds -{ - namespace detail - { - struct null_type - { }; - - template - struct typelist_chain - { - typedef Hd head; - typedef Tl tail; - }; - - template - struct typelist - { - typedef Root root; - }; - -#define PB_DS_TYPELIST_CHAIN1(X0) typelist_chain -#define PB_DS_TYPELIST_CHAIN2(X0, X1) typelist_chain -#define PB_DS_TYPELIST_CHAIN3(X0, X1, X2) typelist_chain -#define PB_DS_TYPELIST_CHAIN4(X0, X1, X2, X3) typelist_chain -#define PB_DS_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) typelist_chain -#define PB_DS_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) typelist_chain -#define PB_DS_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) typelist_chain -#define PB_DS_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) typelist_chain -#define PB_DS_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) typelist_chain -#define PB_DS_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) typelist_chain -#define PB_DS_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) typelist_chain -#define PB_DS_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) typelist_chain -#define PB_DS_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) typelist_chain -#define PB_DS_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) typelist_chain -#define PB_DS_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) typelist_chain - -#include - - template - void - typelist_apply(Fn& r_fn, Typelist) - { - detail::apply_ a; - a(r_fn); - } - -#include - - template - 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 - - template - 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 - - template - struct typelist_contains - { - enum - { - value = - detail::typelist_contains_< - typename Typelist::root, - T>::value - }; - }; - -#include - - template - 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 - - template - struct typelist_at_index - { - typedef - typename detail::typelist_chain_at_index_< - typename Typelist::root, - i>::type - type; - }; - -#include - - template - 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 - - template - struct typelist_flatten - { - private: - typedef - typename detail::typelist_chain_flatten_< - typename Typelist_Typelist::root>::type - root_type; - - public: - typedef typelist< root_type> type; - }; - - template - 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 - struct typelist1 - { - typedef typelist< PB_DS_TYPELIST_CHAIN1( T0)> type; - }; - - template - struct typelist2 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN2( T0, T1)> - type; - }; - - template - struct typelist3 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN3( T0, T1, T2)> - type; - }; - - template - struct typelist4 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN4( T0, T1, T2, T3)> - type; - }; - - template - struct typelist5 - { - typedef - typelist< - PB_DS_TYPELIST_CHAIN5( T0, T1, T2, T3, T4)> - type; - }; - - template - 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 - -namespace detail -{ - template - struct typelist_append_; - - template - struct typelist_append_, Typelist_Chain1> - { - typedef typelist_chain::type> type; - }; - - template - struct typelist_append_< null_type, Typelist_Chain1> - { - typedef Typelist_Chain1 type; - }; - - template - struct typelist_append_ - { - typedef Typelist_Chain0 type; - }; - - template<> - struct typelist_append_ - { - 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 - -namespace detail -{ - template - struct apply_; - - template - struct apply_ > - { - void - operator()(Fn& r_fn) - { - r_fn(type_to_type()); - apply_ next; - next(r_fn); - } - }; - - template - struct apply_ - { - 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 - -namespace detail -{ - template - struct typelist_assoc_container_find_; - - template - struct typelist_assoc_container_find_< - typelist_chain, Rest_Tl>, Key> - { - typedef typename typelist_assoc_container_find_< Rest_Tl, Key>::type type; - }; - - template - struct typelist_assoc_container_find_< - typelist_chain, 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 - -namespace detail -{ - template - struct typelist_chain_at_index_; - - template - struct typelist_chain_at_index_, 0> - { - typedef Hd type; - }; - - template - struct typelist_chain_at_index_, 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 - -namespace detail -{ - template - struct typelist_contains_; - - template - struct typelist_contains_ - { - enum - { - value = false - }; - }; - - template - struct typelist_contains_, T> - { - enum - { - value = typelist_contains_::value - }; - }; - - template - struct typelist_contains_, 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 - -namespace detail -{ - template class Pred> - struct typelist_chain_filter_; - - template - class Pred> - struct typelist_chain_filter_ - { - typedef null_type type; - }; - - template class Pred> - struct typelist_chain_filter_< typelist_chain, Pred> - { - typedef typename typelist_chain_filter_< Tl, Pred>::type rest; - - enum - { - include_hd = Pred::value - }; - - typedef typename __conditional_type, 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 - -namespace detail -{ - template - struct typelist_chain_flatten_; - - template - struct typelist_chain_flatten_ > - { - typedef typename Hd_Tl::root type; - }; - - template - struct typelist_chain_flatten_ > - { - typedef typename typelist_chain_flatten_< Tl_Typelist>::type rest; - typedef typename typelist_append >::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 e62de8d..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 - -namespace detail -{ - template class Transform> - struct typelist_chain_transform_; - - template class Transform> - struct typelist_chain_transform_ - { - typedef null_type type; - }; - - template class Transform> - struct typelist_chain_transform_, Transform> - { - typedef typename typelist_chain_transform_< Tl, Transform>::type rest; - typedef typename Transform::type transform_type; - typedef typelist_chain 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 - -namespace detail -{ - - template - struct typelist_typelist_append_; - - template - struct typelist_typelist_append_< - typelist_chain > - { - typedef typelist_chain< Hd, null_type> type; - }; - - template - 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 -#include - -namespace pb_ds -{ - namespace detail - { - template > - struct typelist_assoc_container - { - typedef Typelist tl; - }; - - template - struct typelist_assoc_container_insert - { - private: - typedef typename Typelist_Assoc_Cntnr::tl already_tl; - - typedef typelist, 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 - - template - 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 #include #include +#include #include #include #include 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 @@ -68,6 +68,10 @@ namespace typelist typedef Typelist tail; }; + template + void + apply(Fn&, Typelist); + template struct append; @@ -83,11 +87,33 @@ namespace typelist template struct at_index; - template - struct apply; - template class Transform> struct transform; + + template + struct flatten; + + template + struct from_first; + + template + struct create1; + + template + struct create2; + + template + struct create3; + + template + struct create4; + + template + struct create5; + + template + struct create6; } // namespace typelist _GLIBCXX_END_NAMESPACE @@ -133,16 +159,50 @@ namespace detail template struct append_, Typelist_Chain> { - typedef append_ append_type; - typedef chain type; + private: + typedef append_ append_type; + + public: + typedef chain type; }; template struct append_ { + typedef Typelist_Chain type; + }; + + template + struct append_ + { typedef Typelist_Chain type; }; + template<> + struct append_ + { + typedef null_type type; + }; + + template + struct append_typelist_; + + template + struct append_typelist_ > + { + typedef chain type; + }; + + template + struct append_typelist_ > + { + private: + typedef typename append_typelist_::type rest_type; + + public: + typedef typename append >::type::root type; + }; + template struct contains_; @@ -179,19 +239,22 @@ namespace detail template class Pred> struct chain_filter_ { - typedef null_type type; + typedef null_type type; }; template class Pred> struct chain_filter_, Pred> { + private: enum { include_hd = Pred::value }; - typedef typename chain_filter_::type rest_type; - typedef chain chain_type; + typedef typename chain_filter_::type rest_type; + typedef chain chain_type; + + public: typedef typename __conditional_type::__type type; }; @@ -207,7 +270,7 @@ namespace detail template struct chain_at_index_, i> { - typedef typename chain_at_index_::type type; + typedef typename chain_at_index_::type type; }; template class Transform> @@ -216,56 +279,70 @@ namespace detail template class Transform> struct chain_transform_ { - typedef null_type type; + typedef null_type type; }; template class Transform> struct chain_transform_, Transform> { - typedef typename chain_transform_::type rest_type; - typedef typename Transform::type transform_type; - typedef chain type; + private: + typedef typename chain_transform_::type rest_type; + typedef typename Transform::type transform_type; + + public: + typedef chain type; }; template - struct append_typelist_; + struct chain_flatten_; - template - struct append_typelist_ > - { - typedef chain type; - }; + template + struct chain_flatten_ > + { + typedef typename Hd_Tl::root type; + }; - template - struct append_typelist_ > - { - private: - typedef typename append_typelist_::type rest; - - public: - typedef typename append >::type::root type; - }; + template + struct chain_flatten_ > + { + private: + typedef typename chain_flatten_::type rest_type; + typedef append > 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 +#define _GLIBCXX_TYPELIST_CHAIN2(X0, X1) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN3(X0, X1, X2) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN4(X0, X1, X2, X3) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) __gnu_cxx::typelist::chain +#define _GLIBCXX_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) __gnu_cxx::typelist::chain _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) namespace typelist { - template - struct apply + template + void + apply(Fn& fn, Typelist) { - void - operator()(Fn& f) - { - typedef typename Typelist::root root_type; - detail::apply_ a; - a(f); - } - }; + detail::apply_ a; + a(fn); + } template struct append @@ -276,7 +353,7 @@ namespace typelist typedef detail::append_ append_type; public: - typedef node type; + typedef node type; }; template @@ -287,14 +364,16 @@ namespace typelist typedef detail::append_typelist_ append_type; public: - typedef node type; + typedef node type; }; template struct contains { + private: typedef typename Typelist::root root_type; + public: enum { value = detail::contains_::value @@ -309,15 +388,17 @@ namespace typelist typedef detail::chain_filter_ filter_type; public: - typedef node type; + typedef node type; }; template struct at_index { + private: typedef typename Typelist::root root_type; typedef detail::chain_at_index_ index_type; + public: typedef typename index_type::type type; }; @@ -331,25 +412,68 @@ namespace typelist public: typedef node type; }; + + template + struct flatten + { + private: + typedef typename Typelist_Typelist::root root_type; + typedef typename detail::chain_flatten_::type flatten_type; + + public: + typedef node type; + }; + + template + struct from_first + { + private: + typedef typename at_index::type first_type; + + public: + typedef node > type; + }; + + template + struct create1 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN1(T1)> type; + }; + + template + struct create2 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN2(T1,T2)> type; + }; + + template + struct create3 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN3(T1,T2,T3)> type; + }; + + template + struct create4 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN4(T1,T2,T3,T4)> type; + }; + + template + struct create5 + { + typedef node<_GLIBCXX_TYPELIST_CHAIN5(T1,T2,T3,T4,T5)> type; + }; + + template + 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 -#define _GLIBCXX_TYPELIST_CHAIN2(X0, X1) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN3(X0, X1, X2) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN4(X0, X1, X2, X3) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) __gnu_cxx::typelist::chain -#define _GLIBCXX_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) __gnu_cxx::typelist::chain - #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::type container_types; - typedef test_sequence test_type; test_type test("create"); - __gnu_cxx::typelist::apply 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::type container_types; - typedef test_sequence test_type; test_type test("create_from_sorted"); - __gnu_cxx::typelist::apply 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::type container_types; - typedef test_sequence test_type; test_type test("create_sort"); - __gnu_cxx::typelist::apply 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::type container_types; - typedef test_sequence test_type; test_type test("find"); - __gnu_cxx::typelist::apply 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::type container_types; - typedef test_sequence test_type; test_type test("index_associative"); - __gnu_cxx::typelist::apply 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 test_type; test_type test("insert_associative"); - __gnu_cxx::typelist::apply 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 test_type; test_type test("insert_sequence"); - __gnu_cxx::typelist::apply 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 test_type; test_type test("insert_erase_associative"); - __gnu_cxx::typelist::apply 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::type container_types; - typedef test_sequence test_type; test_type test("insert_from_sorted"); - __gnu_cxx::typelist::apply 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 test_type; test_type test("producer_consumer_associative"); - __gnu_cxx::typelist::apply 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 test_type; test_type test("producer_consumer_sequence"); - __gnu_cxx::typelist::apply 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::type container_types; - typedef test_sequence test_type; test_type test("sort_search"); - __gnu_cxx::typelist::apply 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 +#include #include #include #include #include #include -#include #include #include #include @@ -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, alloc_t> native_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include #include -#include #include #include @@ -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()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef hash_common_types::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 +#include #include #include #include @@ -55,7 +55,6 @@ #include #include #include -#include #include #include @@ -101,21 +100,21 @@ main(int argc, char* a_p_argv[]) typedef multimap_find_test 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 native_t; typedef multimap_find_test test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_multimap native_t; typedef multimap_find_test test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include @@ -54,7 +54,6 @@ #include #include #include -#include #include #include #include @@ -102,7 +101,7 @@ main(int argc, char* a_p_argv[]) tl_t tl; typedef multimap_insert_test 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 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 test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); { typedef native_multimap, alloc_t> native_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { @@ -131,7 +130,7 @@ main(int argc, char* a_p_argv[]) alloc_t> native_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include @@ -54,7 +54,6 @@ #include #include #include -#include #include #include #include @@ -99,21 +98,21 @@ main(int argc, char* a_p_argv[]) mmap_tl_tl tl; typedef multimap_insert_test 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 native_t; typedef multimap_insert_test test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_multimap native_t; typedef multimap_insert_test test_type; test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m); - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include -#include #include #include #include @@ -84,17 +83,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types::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 native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_priority_queue native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include -#include #include #include #include @@ -82,17 +81,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types::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 native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_priority_queue native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include @@ -101,17 +101,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types::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 native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_priority_queue native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include #include @@ -88,17 +87,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types::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 native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_priority_queue native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include #include @@ -84,17 +83,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types, mem_track_allocator >::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, mem_track_allocator > native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_priority_queue, mem_track_allocator > native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include #include @@ -81,17 +80,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types::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 native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_priority_queue native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include #include @@ -81,17 +80,17 @@ main(int argc, char* a_p_argv[]) { typedef pq_common_types::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 native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_priority_queue native_pq_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include @@ -52,7 +52,6 @@ #include #include #include -#include #include #include @@ -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()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_map< int, char> native_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef hash_common_types::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_common_types::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 +#include #include #include #include @@ -52,7 +52,6 @@ #include #include #include -#include #include #include @@ -84,23 +83,23 @@ main(int argc, char* a_p_argv[]) { typedef hash_common_types::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_common_types::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_hash_map native_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_map< int, size_t> native_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include @@ -52,7 +52,6 @@ #include #include #include -#include #include #include @@ -84,23 +83,23 @@ main(int argc, char* a_p_argv[]) { typedef hash_common_types::performance_tl tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef tree_common_types::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()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef native_map< int, size_t> native_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include #include @@ -86,22 +85,20 @@ main(int argc, char* a_p_argv[]) typedef hash_common_types::performance_tl hash_tl_t; - typedef pb_ds::detail::typelist_append::type>::type tl_t; + typedef __gnu_cxx::typelist::append::type>::type tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_map native_map_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); +#ifdef PB_DS_USE_TR1 typedef native_hash_map native_hash_map_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); - // 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()); -#endif // #ifdef PB_DS_USE_TR1 -#endif // #if 0 + tst(__gnu_cxx::typelist::detail::type_to_type()); +#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 #include -#include +#include #include #include #include #include -#include #include void @@ -74,14 +73,14 @@ main(int argc, char* a_p_argv[]) test_t tst(vn, vs, vm); typedef tree_common_types, 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 test_t; test_t tst(vn, vs, vm); typedef native_set native_set_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include @@ -75,14 +74,14 @@ main(int argc, char* a_p_argv[]) typedef tree_common_types::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 test_t; test_t tst(vn, vs, vm); typedef native_set native_set_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include #include @@ -83,14 +82,14 @@ main(int argc, char* a_p_argv[]) { typedef trie_common_types::performance_tl pat_trie_tl_t; typedef tree_common_types::performance_tl tree_tl_t; - typedef pb_ds::detail::typelist_append::type tl_t; + typedef __gnu_cxx::typelist::append::type tl_t; tl_t tl; - pb_ds::detail::typelist_apply(tst, tl); + __gnu_cxx::typelist::apply(tst, tl); } { typedef native_map native_map_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } } 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 +#include #include #include #include #include #include -#include #include #include #include @@ -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 native_set_t; - tst(pb_ds::detail::type_to_type()); + tst(__gnu_cxx::typelist::detail::type_to_type()); } { typedef tree_common_types::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, class Allocator = - std::allocator< std::pair > > + std::allocator > > 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_ lin_p_t; - typedef pb_ds::test::quadratic_probe_fn_t_< Key, Allocator> quad_p_t; + typedef pb_ds::test::quadratic_probe_fn_t_ 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_ cnt_5_u; - typedef typename pb_ds::detail::typelist1< mtf_u>::type lu_policy0; + typedef typename __gnu_cxx::typelist::create1::type lu_policy0; - typedef typename pb_ds::detail::typelist1< cnt_5_u>::type lu_policy1; + typedef typename __gnu_cxx::typelist::create1::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::type performance_min_tl; }; template, @@ -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 > > + class Node_Update = pb_ds::null_tree_node_update, + class Allocator = std::allocator > > 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::type, - class Tag = - pb_ds::pat_trie_tag, + typename pb_ds::detail::default_trie_e_access_traits::type, + class Tag = pb_ds::pat_trie_tag, template - class Node_Update = - pb_ds::null_trie_node_update, - class Allocator = - std::allocator > + class Node_Update = pb_ds::null_trie_node_update, + class Allocator = std::allocator > class trie_common_types { private: - typedef - pb_ds::trie< - Key, - Data, - E_Access_Traits, - Tag, - Node_Update, - Allocator> - type; + typedef pb_ds::trie 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 performance_tl; + typedef typename __gnu_cxx::typelist::create1::type regression_tl; + typedef typename __gnu_cxx::typelist::create1::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 static std::string - name(pb_ds::detail::type_to_type) + name(__gnu_cxx::typelist::detail::type_to_type) { return ("mmap_" + pb_ds_string_form::name()); } template static std::string - desc(pb_ds::detail::type_to_type) + desc(__gnu_cxx::typelist::detail::type_to_type) { return (pb_ds_string_form::desc()); } static std::string - name(pb_ds::detail::type_to_type) + name(__gnu_cxx::typelist::detail::type_to_type) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type) + desc(__gnu_cxx::typelist::detail::type_to_type) { return (""); } static std::string - name(pb_ds::detail::type_to_type) + name(__gnu_cxx::typelist::detail::type_to_type) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type) + desc(__gnu_cxx::typelist::detail::type_to_type) { return (""); } static std::string - name(pb_ds::detail::type_to_type) + name(__gnu_cxx::typelist::detail::type_to_type) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type) + desc(__gnu_cxx::typelist::detail::type_to_type) { return (""); } static std::string - name(pb_ds::detail::type_to_type) + name(__gnu_cxx::typelist::detail::type_to_type) { return ("map"); } static std::string - desc(pb_ds::detail::type_to_type) + desc(__gnu_cxx::typelist::detail::type_to_type) { return (""); } static std::string - name(pb_ds::detail::type_to_type) + name(__gnu_cxx::typelist::detail::type_to_type) { return ("set"); } static std::string - desc(pb_ds::detail::type_to_type) + desc(__gnu_cxx::typelist::detail::type_to_type) { return (""); } @@ -157,13 +157,13 @@ namespace pb_ds static std::string name() { - return (name(pb_ds::detail::type_to_type())); + return (name(__gnu_cxx::typelist::detail::type_to_type())); } static std::string desc() { - return (desc(pb_ds::detail::type_to_type())); + return (desc(__gnu_cxx::typelist::detail::type_to_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 - +#include #include #include #include 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 #include -#include +#include namespace pb_ds { @@ -72,7 +72,7 @@ namespace pb_ds typedef pb_ds::priority_queue thin_heap_t; - typedef typename pb_ds::detail::typelist5::type all_tl; + typedef typename __gnu_cxx::typelist::create5::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 +#include #include #include #include -#include // 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 +#include +#include #include #include #include -#include -#include 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 template::type, - class Eq_Fn = - std::equal_to, - class Less_Fn = - std::less, - class Allocator = - std::allocator > + class Hash_Fn = typename pb_ds::detail::default_hash_fn::type, + class Eq_Fn = std::equal_to, + class Less_Fn = std::less, + class Allocator = std::allocator > 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 >::other::const_reference const_reference; - public: - native_hash_multimap(); + native_hash_multimap() : base_type(Init_Size) + { } + + template + 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 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 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 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 - 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 - 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 +#include #include #include #include -#include // Default to using tr1. #define PB_DS_USE_TR1 1 @@ -77,7 +78,7 @@ namespace pb_ds template::type, + typename Hash_Fn = typename pb_ds::detail::default_hash_fn::type, typename Eq_Fn = std::equal_to, typename Less_Fn = std::less, typename Allocator = std::allocator 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 +#include +#include #include #include #include -#include 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 >::other > template, - class Allocator = - std::allocator > + class Allocator = std::allocator > 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 -#include #include +#include +#include namespace pb_ds { - namespace test { - -#define PB_DS_CLASS_T_DEC \ - template - -#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 >::other> template, - class Allocator = - std::allocator > + class Allocator = std::allocator > 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 >::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 + 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 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 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 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 - 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 - 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 +#include #include #include #include -#include 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::other> template, - class Allocator = - std::allocator > + class Allocator = std::allocator > 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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: erase_test(const erase_test& ); @@ -100,7 +100,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: multimap_insert_test(const multimap_insert_test& ); template size_t - insert(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e, pb_ds::detail::true_type); + insert(__gnu_cxx::typelist::detail::type_to_type, It ins_it_b, It ins_it_e, pb_ds::detail::true_type); template size_t - insert(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e, pb_ds::detail::false_type); + insert(__gnu_cxx::typelist::detail::type_to_type, 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 void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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(), + const size_t delta_mem = insert(__gnu_cxx::typelist::detail::type_to_type(), ins_it_b, ins_it_e, pb_ds::detail::integral_constant()); @@ -136,7 +136,7 @@ namespace pb_ds template size_t PB_DS_CLASS_C_DEC:: - insert(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e, pb_ds::detail::true_type) + insert(__gnu_cxx::typelist::detail::type_to_type, It ins_it_b, It ins_it_e, pb_ds::detail::true_type) { mem_track_allocator alloc; @@ -158,7 +158,7 @@ namespace pb_ds template size_t PB_DS_CLASS_C_DEC:: - insert(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e, pb_ds::detail::false_type) + insert(__gnu_cxx::typelist::detail::type_to_type, It ins_it_b, It ins_it_e, pb_ds::detail::false_type) { mem_track_allocator 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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: find_test(const find_test& ); @@ -176,7 +176,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: insert_test(const insert_test& ); template void - insert(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e); + insert(__gnu_cxx::typelist::detail::type_to_type, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -134,7 +134,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::name(), @@ -162,7 +162,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - insert(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e) + insert(__gnu_cxx::typelist::detail::type_to_type, 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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: multimap_find_test(const multimap_find_test& ); template Cntnr - init(It ins_b, It ins_e, pb_ds::detail::type_to_type, pb_ds::detail::true_type); + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type, pb_ds::detail::true_type); template Cntnr - init(It ins_b, It ins_e, pb_ds::detail::type_to_type, pb_ds::detail::false_type); + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type, pb_ds::detail::false_type); private: const It m_ins_b; @@ -189,7 +189,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::name(), @@ -205,7 +205,7 @@ namespace pb_ds Cntnr c = init(ins_it_b, ins_it_e, - pb_ds::detail::type_to_type(), + __gnu_cxx::typelist::detail::type_to_type(), pb_ds::detail::integral_constant()); pb_ds::test::detail::multimap_find_functor @@ -222,7 +222,7 @@ namespace pb_ds template Cntnr PB_DS_CLASS_C_DEC:: - init(It ins_b, It ins_e, pb_ds::detail::type_to_type, pb_ds::detail::true_type) + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type, pb_ds::detail::true_type) { return Cntnr(ins_b, ins_e); } @@ -231,7 +231,7 @@ namespace pb_ds template Cntnr PB_DS_CLASS_C_DEC:: - init(It ins_b, It ins_e, pb_ds::detail::type_to_type, pb_ds::detail::false_type) + init(It ins_b, It ins_e, __gnu_cxx::typelist::detail::type_to_type, 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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: multimap_insert_test(const multimap_insert_test& ); @@ -158,7 +158,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: subscript_find_test(const subscript_find_test& ); @@ -142,7 +142,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: subscript_insert_test(const subscript_insert_test& ); @@ -140,7 +140,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: tree_order_statistics_test(const tree_order_statistics_test& ); @@ -188,7 +188,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: tree_split_join_test(const tree_split_join_test& ); @@ -157,7 +157,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: pop_test(const pop_test& ); @@ -100,7 +100,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::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 void - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { 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 void - join(pb_ds::detail::type_to_type, It b, It e) + join(__gnu_cxx::typelist::detail::type_to_type, 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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: modify_test(const modify_test& ); template void - modify(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e); + modify(__gnu_cxx::typelist::detail::type_to_type, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -316,7 +316,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::name(), @@ -367,7 +367,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - modify(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e) + modify(__gnu_cxx::typelist::detail::type_to_type, 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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: push_pop_test(const push_pop_test& ); template void - push(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e); + push(__gnu_cxx::typelist::detail::type_to_type, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -137,7 +137,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::name(), @@ -165,7 +165,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - push(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e) + push(__gnu_cxx::typelist::detail::type_to_type, 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 void - operator()(pb_ds::detail::type_to_type); + operator()(__gnu_cxx::typelist::detail::type_to_type); private: push_test(const push_test& ); template void - push(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e); + push(__gnu_cxx::typelist::detail::type_to_type, It ins_it_b, It ins_it_e); private: const It m_ins_b; @@ -134,7 +134,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { xml_result_set_performance_formatter res_set_fmt( string_form::name(), @@ -162,7 +162,7 @@ namespace pb_ds template void PB_DS_CLASS_C_DEC:: - push(pb_ds::detail::type_to_type, It ins_it_b, It ins_it_e) + push(__gnu_cxx::typelist::detail::type_to_type, 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, pb_ds::tree_order_statistics_node_update, alloc_type>::regression_tl order_statistics_tl_t; public: - typedef typename pb_ds::detail::typelist_append::type tl_t; + typedef typename __gnu_cxx::typelist::append::type tl_t; typedef no_order_statistics_tl_t min_tl_t; }; @@ -98,7 +98,7 @@ namespace test typedef typename trie_common_types::regression_tl prefix_search_tl_t; public: - typedef typename pb_ds::detail::typelist_append::type>::type tl_t; + typedef typename __gnu_cxx::typelist::append::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 void - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { unsigned long ul = static_cast(m_sd); container_rand_regression_test 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 void - operator()(pb_ds::detail::type_to_type) + operator()(__gnu_cxx::typelist::detail::type_to_type) { unsigned long ul = static_cast(m_sd); container_rand_regression_test 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())); + __gnu_cxx::typelist::detail::type_to_type())); } static const_key_reference @@ -118,21 +118,21 @@ namespace pb_ds private: template static value_type - generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type) + generate_value(Gen& r_gen, size_t max, __gnu_cxx::typelist::detail::type_to_type) { return (basic_type(r_gen, max)); } template static value_type - generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type) + generate_value(Gen& r_gen, size_t max, __gnu_cxx::typelist::detail::type_to_type) { return (basic_type(r_gen, max)); } template static value_type - generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type >) + generate_value(Gen& r_gen, size_t max, __gnu_cxx::typelist::detail::type_to_type >) { return (std::make_pair(basic_type(r_gen, max), basic_type(r_gen, max))); }