OSDN Git Service

2008-06-06 Benjamin Kosnik <bkoz@redhat.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / include / ext / pb_ds / tag_and_trait.hpp
index bb39d17..5b5a2f3 100644 (file)
@@ -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<T> ??
   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<typename Tag>
   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<typename Cntnr>
   struct container_traits