X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=libstdc%2B%2B-v3%2Finclude%2Fext%2Fpb_ds%2Ftag_and_trait.hpp;h=5b5a2f3437743e16f9aa311c93e881b1cc1d5f9d;hp=bb39d17931f002b9883ee78b60e2f78f907f6a52;hb=2661beb59aac112282f8d7b34dbb57342419b9f8;hpb=842503911be8408849b3c843831a3770dd471b4e diff --git a/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp b/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp index bb39d17931f..5b5a2f34377 100644 --- a/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp +++ b/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. +// Copyright (C) 2005, 2006, 2008 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 @@ -89,70 +89,77 @@ namespace __gnu_pbds { }; - // A mapped-policy indicating that an associative container is a set. + /// A mapped-policy indicating that an associative container is a set. // XXX should this be a trait of the form is_set ?? struct null_mapped_type { }; - // Base data structure tag. + /// Base data structure tag. struct container_tag { }; - // Basic associative-container. + /// Basic string container, inclusive of strings, ropes, etc. + struct string_tag : public container_tag { }; + + /// Basic sequence. + struct sequence_tag : public container_tag { }; + + /// Basic associative-container. struct associative_container_tag : public container_tag { }; - // Basic hash. + /// Basic hash. struct basic_hash_tag : public associative_container_tag { }; - // Collision-chaining hash. + /// Collision-chaining hash. struct cc_hash_tag : public basic_hash_tag { }; - // General-probing hash. + /// General-probing hash. struct gp_hash_tag : public basic_hash_tag { }; - // Basic tree. + /// Basic tree. struct basic_tree_tag : public associative_container_tag { }; - // tree. + /// tree. struct tree_tag : public basic_tree_tag { }; - // Red-black tree. + /// Red-black tree. struct rb_tree_tag : public tree_tag { }; - // Splay tree. + /// Splay tree. struct splay_tree_tag : public tree_tag { }; - // Ordered-vector tree. + /// Ordered-vector tree. struct ov_tree_tag : public tree_tag { }; - // trie. + /// trie. struct trie_tag : public basic_tree_tag { }; - // PATRICIA trie. + /// PATRICIA trie. struct pat_trie_tag : public trie_tag { }; - // List-update. + /// List-update. struct list_update_tag : public associative_container_tag { }; - // Basic priority-queue. + /// Basic priority-queue. struct priority_queue_tag : public container_tag { }; - // Pairing-heap. + /// Pairing-heap. struct pairing_heap_tag : public priority_queue_tag { }; - // Binomial-heap. + /// Binomial-heap. struct binomial_heap_tag : public priority_queue_tag { }; - // Redundant-counter binomial-heap. + /// Redundant-counter binomial-heap. struct rc_binomial_heap_tag : public priority_queue_tag { }; - // Binary-heap (array-based). + /// Binary-heap (array-based). struct binary_heap_tag : public priority_queue_tag { }; - // Thin heap. + /// Thin heap. struct thin_heap_tag : public priority_queue_tag { }; + /// Base traits type for containers. template struct container_traits_base; @@ -337,7 +344,8 @@ namespace __gnu_pbds }; }; - + + /// container_traits // See Matt Austern for the name, S. Meyers MEFC++ #2, others. template struct container_traits