OSDN Git Service

2006-09-20 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Sep 2006 13:49:46 +0000 (13:49 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Sep 2006 13:49:46 +0000 (13:49 +0000)
* 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

92 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/Makefile.am
libstdc++-v3/include/Makefile.in
libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp [deleted file]
libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
libstdc++-v3/include/ext/typelist.h
libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
libstdc++-v3/testsuite/performance/23_containers/create/map.cc
libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc
libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc
libstdc++-v3/testsuite/performance/23_containers/find/map.cc
libstdc++-v3/testsuite/performance/23_containers/index/map.cc
libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc
libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc
libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc
libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc
libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc
libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc
libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc
libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc
libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp
libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp
libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp
libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp
libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp
libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp
libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp
libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp
libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp

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