OSDN Git Service

2009-02-18 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Feb 2009 08:15:15 +0000 (08:15 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Feb 2009 08:15:15 +0000 (08:15 +0000)
* doc/doxygen/doxygroups.cc: Move algorithm groups into algorithmfwd.h.
* doc/doxygen/user.cfg.in: Update.
* scripts/run_doxygen: Adjust for new group names.

* include/tr1_impl/random: Update doxygen group markup.
* include/tr1_impl/unordered_map: Same.
* include/tr1_impl/unordered_set: Same.
* include/tr1_impl/array: Same.
* include/std/numeric: Same.
* include/std/utility: Same.
* include/std/bitset: Same.
* include/std/iosfwd: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_map.h: Same.
* include/bits/stl_algobase.h: Same.
* include/bits/stl_queue.h: Same.
* include/bits/stl_set.h: Same.
* include/bits/stl_stack.h: Same.
* include/bits/stl_iterator_base_types.h: Same.
* include/bits/forward_list.h: Same.
* include/bits/basic_string.h: Same.
* include/bits/stl_multimap.h: Same.
* include/bits/stl_vector.h: Same.
* include/bits/stl_deque.h: Same.
* include/bits/stl_multiset.h: Same.
* include/bits/stl_algo.h: Same.
* include/bits/stl_bvector.h: Same.
* include/bits/algorithmfwd.h: Same.
* include/bits/stl_function.h: Same.
* include/tr1/cmath: Same.
* include/backward/binders.h: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144290 138bc75d-0d04-0410-961f-82ee72b054a4

31 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/doc/doxygen/doxygroups.cc
libstdc++-v3/doc/doxygen/user.cfg.in
libstdc++-v3/include/backward/binders.h
libstdc++-v3/include/bits/algorithmfwd.h
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/forward_list.h
libstdc++-v3/include/bits/stl_algo.h
libstdc++-v3/include/bits/stl_algobase.h
libstdc++-v3/include/bits/stl_bvector.h
libstdc++-v3/include/bits/stl_deque.h
libstdc++-v3/include/bits/stl_function.h
libstdc++-v3/include/bits/stl_iterator_base_types.h
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/include/bits/stl_map.h
libstdc++-v3/include/bits/stl_multimap.h
libstdc++-v3/include/bits/stl_multiset.h
libstdc++-v3/include/bits/stl_queue.h
libstdc++-v3/include/bits/stl_set.h
libstdc++-v3/include/bits/stl_stack.h
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/include/std/bitset
libstdc++-v3/include/std/iosfwd
libstdc++-v3/include/std/numeric
libstdc++-v3/include/std/utility
libstdc++-v3/include/tr1/cmath
libstdc++-v3/include/tr1_impl/array
libstdc++-v3/include/tr1_impl/random
libstdc++-v3/include/tr1_impl/unordered_map
libstdc++-v3/include/tr1_impl/unordered_set
libstdc++-v3/scripts/run_doxygen

index 1b04fe3..984f150 100644 (file)
@@ -1,3 +1,37 @@
+2009-02-18  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * doc/doxygen/doxygroups.cc: Move algorithm groups into algorithmfwd.h.
+       * doc/doxygen/user.cfg.in: Update.
+       * scripts/run_doxygen: Adjust for new group names.
+
+       * include/tr1_impl/random: Update doxygen group markup.
+       * include/tr1_impl/unordered_map: Same.
+       * include/tr1_impl/unordered_set: Same.
+       * include/tr1_impl/array: Same.
+       * include/std/numeric: Same.
+       * include/std/utility: Same.
+       * include/std/bitset: Same.
+       * include/std/iosfwd: Same.
+       * include/bits/stl_list.h: Same.
+       * include/bits/stl_map.h: Same.
+       * include/bits/stl_algobase.h: Same.
+       * include/bits/stl_queue.h: Same.
+       * include/bits/stl_set.h: Same.
+       * include/bits/stl_stack.h: Same.
+       * include/bits/stl_iterator_base_types.h: Same.
+       * include/bits/forward_list.h: Same.
+       * include/bits/basic_string.h: Same.
+       * include/bits/stl_multimap.h: Same.
+       * include/bits/stl_vector.h: Same.
+       * include/bits/stl_deque.h: Same.
+       * include/bits/stl_multiset.h: Same.
+       * include/bits/stl_algo.h: Same.
+       * include/bits/stl_bvector.h: Same.
+       * include/bits/algorithmfwd.h: Same.
+       * include/bits/stl_function.h: Same.
+       * include/tr1/cmath: Same.
+       * include/backward/binders.h: Same.
+
 2009-02-17  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/std/system_error (system_category): To system_category().
index d94c9e5..cdca01e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) 2001, 2002, 2005, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2005, 2008, 2009 Free Software Foundation, Inc.
    See license.html for license.
 
    This just provides documentation for stuff that doesn't need to be in the
  *  export. Used only when anonymous namespaces cannot be substituted.
 */
 // // // // // // // // // // // // // // // // // // // // // // // //
-/** @addtogroup SGIextensions STL extensions from SGI
+/** @namespace abi
+ *  @brief The cross-vendor C++ Application Binary Interface. A
+ *  namespace alias to __cxxabiv1.
+ *
+ *  A brief overview of an ABI is given in the libstdc++ FAQ, question
+ *  5.8 (you may have a copy of the FAQ locally, or you can view the online
+ *  version at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_8).
+ *
+ *  GCC subscribes to a relatively-new cross-vendor ABI for C++, sometimes
+ *  called the IA64 ABI because it happens to be the native ABI for that
+ *  platform.  It is summarized at http://www.codesourcery.com/cxx-abi/
+ *  along with the current specification.
+ *
+ *  For users of GCC greater than or equal to 3.x, entry points are
+ *  available in <cxxabi.h>, which notes, <em>"It is not normally
+ *  necessary for user programs to include this header, or use the
+ *  entry points directly.  However, this header is available should
+ *  that be needed."</em>
+*/
+
+namespace abi {
+/**
+@brief New ABI-mandated entry point in the C++ runtime library for demangling.
+
+@param mangled_name A NUL-terminated character string containing the name
+                    to be demangled.
+
+@param output_buffer A region of memory, allocated with malloc, of
+                     @a *length bytes, into which the demangled name
+                     is stored.  If @a output_buffer is not long enough,
+                     it is expanded using realloc.  @a output_buffer may
+                     instead be NULL; in that case, the demangled name is
+                     placed in a region of memory allocated with malloc.
+
+@param length If @a length is non-NULL, the length of the buffer containing
+              the demangled name is placed in @a *length.
+
+@param status @a *status is set to one of the following values:
+              -   0: The demangling operation succeeded.
+              -  -1: A memory allocation failiure occurred.
+              -  -2: @a mangled_name is not a valid name under the C++ ABI
+                     mangling rules.
+              -  -3: One of the arguments is invalid.
+
+@return A pointer to the start of the NUL-terminated demangled name, or NULL
+        if the demangling fails.  The caller is responsible for deallocating
+        this memory using @c free.
+
+
+The demangling is performed using the C++ ABI mangling rules, with
+GNU extensions.  For example, this function is used
+in __gnu_cxx::__verbose_terminate_handler.  See
+http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#5 for other
+examples of use.
+
+@note The same demangling functionality is available via libiberty 
+(@c <libiberty/demangle.h> and @c libiberty.a) in GCC 3.1 and later, but that
+requires explicit installation (@c --enable-install-libiberty) and uses a
+different API, although the ABI is unchanged.
+*/
+char* __cxa_demangle (const char* mangled_name, char* output_buffer,
+                      size_t* length, int* status);
+} // namespace abi
+
+// // // // // // // // // // // // // // // // // // // // // // // //
+
+/**
+ * @defgroup extensions Extensions
+ *
+ * Components generally useful that are not part of any standard.
+ */
+
+/** @defgroup SGIextensions SGI STL extensions
+ * @ingroup extensions
 Because libstdc++ based its implementation of the STL subsections of
 the library on the SGI 3.3 implementation, we inherited their extensions
 as well.
@@ -73,7 +146,7 @@ comments all over the place, so they may seem stilted.
 // This is standalone because, unlike the functor introduction, there is no
 // single header file which serves as a base "all containers must include
 // this header".  We do some quoting of 14882 here.
-/** @addtogroup Containers Containers
+/** @defgroup containers Containers
 Containers are collections of objects.
 
 A container may hold any type which meets certain requirements, but the type
@@ -98,9 +171,11 @@ All containers must meet certain requirements, summarized in
 The standard containers are further refined into
 @link Sequences Sequences@endlink and
 @link Assoc_containers Associative Containers@endlink.
+@link Unordered_assoc_containers Unordered Associative Containers@endlink.
 */
 
-/** @addtogroup Sequences Sequences
+/** @defgroup sequences Sequences
+ * @ingroup containers
 Sequences arrange a collection of objects into a strictly linear order.
 
 The differences between sequences are usually due to one or both of the
@@ -121,122 +196,31 @@ All sequences must meet certain requirements, summarized in
 <a href="tables.html">tables</a>.
 */
 
-/** @addtogroup Assoc_containers Associative Containers
+/** @defgroup associative_containers Associative Containers
+ * @ingroup containers
 Associative containers allow fast retrieval of data based on keys.
 
 Each container type is parameterized on a @c Key type, and an ordering
 relation used to sort the elements of the container.
 
-There should be more text here.
-
 All associative containers must meet certain requirements, summarized in
 <a href="tables.html">tables</a>.
 */
 
-// // // // // // // // // // // // // // // // // // // // // // // //
-/** @namespace abi
- *  @brief The cross-vendor C++ Application Binary Interface. A
- *  namespace alias to __cxxabiv1.
- *
- *  A brief overview of an ABI is given in the libstdc++ FAQ, question
- *  5.8 (you may have a copy of the FAQ locally, or you can view the online
- *  version at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_8).
- *
- *  GCC subscribes to a relatively-new cross-vendor ABI for C++, sometimes
- *  called the IA64 ABI because it happens to be the native ABI for that
- *  platform.  It is summarized at http://www.codesourcery.com/cxx-abi/
- *  along with the current specification.
- *
- *  For users of GCC greater than or equal to 3.x, entry points are
- *  available in <cxxabi.h>, which notes, <em>"It is not normally
- *  necessary for user programs to include this header, or use the
- *  entry points directly.  However, this header is available should
- *  that be needed."</em>
-*/
-
-namespace abi {
-/**
-@brief New ABI-mandated entry point in the C++ runtime library for demangling.
-
-@param mangled_name A NUL-terminated character string containing the name
-                    to be demangled.
+/** @defgroup unordered_associative_containers Unordered Associative Containers
+ * @ingroup containers
+Unordered associative containers allow fast retrieval of data based on keys.
 
-@param output_buffer A region of memory, allocated with malloc, of
-                     @a *length bytes, into which the demangled name
-                     is stored.  If @a output_buffer is not long enough,
-                     it is expanded using realloc.  @a output_buffer may
-                     instead be NULL; in that case, the demangled name is
-                     placed in a region of memory allocated with malloc.
+Each container type is parameterized on a @c Key type, a @c Hash type
+providing a hashing functor, and an ordering relation used to sort the
+elements of the container.
 
-@param length If @a length is non-NULL, the length of the buffer containing
-              the demangled name is placed in @a *length.
-
-@param status @a *status is set to one of the following values:
-              -   0: The demangling operation succeeded.
-              -  -1: A memory allocation failiure occurred.
-              -  -2: @a mangled_name is not a valid name under the C++ ABI
-                     mangling rules.
-              -  -3: One of the arguments is invalid.
-
-@return A pointer to the start of the NUL-terminated demangled name, or NULL
-        if the demangling fails.  The caller is responsible for deallocating
-        this memory using @c free.
-
-
-The demangling is performed using the C++ ABI mangling rules, with
-GNU extensions.  For example, this function is used
-in __gnu_cxx::__verbose_terminate_handler.  See
-http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#5 for other
-examples of use.
-
-@note The same demangling functionality is available via libiberty 
-(@c <libiberty/demangle.h> and @c libiberty.a) in GCC 3.1 and later, but that
-requires explicit installation (@c --enable-install-libiberty) and uses a
-different API, although the ABI is unchanged.
-*/
-char* __cxa_demangle (const char* mangled_name, char* output_buffer,
-                      size_t* length, int* status);
-} // namespace abi
-
-// // // // // // // // // // // // // // // // // // // // // // // //
-/** @addtogroup binarysearch Binary search algorithms
-These algorithms are variations of a classic binary search.  They all assume
-that the sequence being searched is already sorted.
-
-The number of comparisons will be logarithmic (and as few as possible).
-The number of steps through the sequence will be logarithmic for
-random-access iterators (e.g., pointers), and linear otherwise.
-
-The LWG has passed Defect Report 270, which notes:  <em>The proposed
-resolution reinterprets binary search. Instead of thinking about searching
-for a value in a sorted range, we view that as an important special
-case of a more general algorithm: searching for the partition point in a
-partitioned range.  We also add a guarantee that the old wording did not:
-we ensure that the upper bound is no earlier than the lower bound, that
-the pair returned by equal_range is a valid range, and that the first part
-of that pair is the lower bound.</em>
-
-The actual effect of the first sentence is that a comparison functor
-passed by the user doesn't necessarily need to induce a strict weak ordering
-relation.  Rather, it partitions the range.
-*/
-
-// // // // // // // // // // // // // // // // // // // // // // // //
-/** @addtogroup setoperations Set operation algorithms
-These algorithms are common set operations performed on sequences that are
-already sorted.
-
-The number of comparisons will be linear.
-*/
+All unordered associative containers must meet certain requirements,
+summarized in <a href="tables.html">tables</a>.  */
 
 // // // // // // // // // // // // // // // // // // // // // // // //
-
-// // // // // // // // // // // // // // // // // // // // // // // //
-/* * @addtogroup groupname description of group
+/* * @defgroup groupname description of group
 placeholder text
 */
 
 // // // // // // // // // // // // // // // // // // // // // // // //
-
-// vim:et:noai:
-
index 87e702a..086f499 100644 (file)
@@ -1,4 +1,4 @@
-# Doxyfile 1.5.7.1
+# Doxyfile 1.5.8
 
 # This file describes the settings to be used by the documentation system
 # doxygen (www.doxygen.org) for a project
@@ -77,15 +77,15 @@ BRIEF_MEMBER_DESC      = NO
 
 REPEAT_BRIEF           = YES
 
-# This tag implements a quasi-intelligent brief description
-# abbreviator that is used to form the text in various listings. Each
-# string in this list, if found as the leading text of the brief
-# description, will be stripped from the text and the result after
-# processing the whole list, is used as the annotated text. Otherwise,
-# the brief description is used as-is.  If left blank, the following
-# values are used ("$name" is automatically replaced with the name of
-# the entity): "The $name class" "The $name widget" "The $name file"
-# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is 
+# used as the annotated text. Otherwise, the brief description is used as-is. 
+# If left blank, the following values are used ("$name" is automatically 
+# replaced with the name of the entity): "The $name class" "The $name widget" 
+# "The $name file" "is" "provides" "specifies" "contains" 
+# "represents" "a" "an" "the"
 
 ABBREVIATE_BRIEF       = 
 
@@ -95,11 +95,10 @@ ABBREVIATE_BRIEF       =
 
 ALWAYS_DETAILED_SEC    = YES
 
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show
-# all inherited members of a class in the documentation of that class
-# as if those members were ordinary class members. Constructors,
-# destructors and assignment operators of the base classes will not be
-# shown.
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
+# inherited members of a class in the documentation of that class as if those 
+# members were ordinary class members. Constructors, destructors and assignment 
+# operators of the base classes will not be shown.
 
 INLINE_INHERITED_MEMB  = YES
 
@@ -182,7 +181,7 @@ TAB_SIZE               = 4
 # You can put \n's in the value part of an alias to insert newlines.
 
 ALIASES                = "doctodo=@todo\nDoc me!  See doc/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.  " \
-                         "isiosfwd=One of the @link s27_2_iosfwd I/O forward declarations @endlink  "
+                         "isiosfwd=One of the @link ios I/O @endlink  "
 
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of
 # C sources only. Doxygen will then generate output that is more
@@ -210,6 +209,18 @@ OPTIMIZE_FOR_FORTRAN   = NO
 
 OPTIMIZE_OUTPUT_VHDL   = NO
 
+# Doxygen selects the parser to use depending on the extension of the
+# files it parses.  With this tag you can assign which parser to use
+# for a given extension.  Doxygen has a built-in mapping, but you can
+# override or extend it using this tag.  The format is ext=language,
+# where ext is a file extension, and language is one of the parsers
+# supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f
+# files as C (default is Fortran), use: inc=Fortran f=C
+
+EXTENSION_MAPPING      = 
+
 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
 # to include (a tag file for) the STL sources as input, then you should 
 # set this tag to YES in order to let doxygen match functions declarations and 
@@ -219,7 +230,7 @@ OPTIMIZE_OUTPUT_VHDL   = NO
 
 BUILTIN_STL_SUPPORT    = NO
 
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# If you use Microsoft's C++/CLI language, you should set this option to YES to 
 # enable parsing support.
 
 CPP_CLI_SUPPORT        = NO
@@ -248,22 +259,22 @@ IDL_PROPERTY_SUPPORT   = YES
 
 DISTRIBUTE_GROUP_DOC   = YES
 
-# Set the SUBGROUPING tag to YES (the default) to allow class member
-# groups of the same type (for instance a group of public functions)
-# to be put as a subgroup of that type (e.g. under the Public
-# Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
 
 SUBGROUPING            = YES
 
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
-# is documented as struct, union, or enum with the name of the typedef. So 
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
-# with name TypeT. When disabled the typedef will appear as a member of a file, 
-# namespace, or class. And the struct will be named TypeS. This can typically 
-# be useful for C code in case the coding convention dictates that all compound 
-# types are typedef'ed and only the typedef is referenced, never the tag name.
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union,
+# or enum is documented as struct, union, or enum with the name of the
+# typedef. So typedef struct TypeS {} TypeT, will appear in the
+# documentation as a struct with name TypeT. When disabled the typedef
+# will appear as a member of a file, namespace, or class. And the
+# struct will be named TypeS. This can typically be useful for C code
+# in case the coding convention dictates that all compound types are
+# typedef'ed and only the typedef is referenced, never the tag name.
 
 TYPEDEF_HIDES_STRUCT   = NO
 
@@ -362,12 +373,11 @@ HIDE_IN_BODY_DOCS      = NO
 
 INTERNAL_DOCS          = NO
 
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only
-# generate file names in lower-case letters. If set to YES upper-case
-# letters are also allowed. This is useful if you have classes or
-# files whose names only differ in case and if your file system
-# supports case sensitive file names. Windows and Mac users are
-# advised to set this option to NO.
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# and Mac users are advised to set this option to NO.
 
 CASE_SENSE_NAMES       = NO
 
@@ -402,9 +412,9 @@ SORT_MEMBER_DOCS       = YES
 
 SORT_BRIEF_DOCS        = YES
 
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the
-# default) the group names will appear in their defined order.
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
+# hierarchy of group names into alphabetical order. If set to NO (the default) 
+# the group names will appear in their defined order.
 
 SORT_GROUP_NAMES       = NO
 
@@ -412,7 +422,7 @@ SORT_GROUP_NAMES       = NO
 # sorted by fully-qualified names, including namespaces. If set to 
 # NO (the default), the class list will be sorted only by class name, 
 # not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 
 # Note: This option applies only to the class list, not to the 
 # alphabetical list.
 
@@ -447,14 +457,13 @@ GENERATE_DEPRECATEDLIST= YES
 
 ENABLED_SECTIONS       = @enabled_sections@
 
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to
-# appear in the documentation. If the initializer consists of more
-# lines than specified here it will be hidden. Use a value of 0 to
-# hide initializers completely.  The appearance of the initializer of
-# individual variables and defines in the documentation can be
-# controlled using \showinitializer or \hideinitializer command in the
-# documentation regardless of this setting.
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
 
 MAX_INITIALIZER_LINES  = 0
 
@@ -470,14 +479,15 @@ SHOW_USED_FILES        = YES
 
 SHOW_DIRECTORIES       = YES
 
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
 # This will remove the Files entry from the Quick Index and from the 
 # Folder Tree View (if specified). The default is YES.
 
 SHOW_FILES             = YES
 
 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
-# Namespaces page.  This will remove the Namespaces entry from the Quick Index
+# Namespaces page. 
+# This will remove the Namespaces entry from the Quick Index 
 # and from the Folder Tree View (if specified). The default is YES.
 
 SHOW_NAMESPACES        = YES
@@ -531,11 +541,11 @@ WARN_IF_UNDOCUMENTED   = NO
 
 WARN_IF_DOC_ERROR      = NO
 
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their
-# parameters or return value. If set to NO (the default) doxygen will
-# only warn about wrong or incomplete parameter documentation, but not
-# about the absence of documentation.
+# This WARN_NO_PARAMDOC option can be abled to get warnings for 
+# functions that are documented, but have no documentation for their parameters 
+# or return value. If set to NO (the default) doxygen will only warn about 
+# wrong or incomplete parameter documentation, but not about the absence of 
+# documentation.
 
 WARN_NO_PARAMDOC       = NO
 
@@ -716,21 +726,20 @@ INPUT                  = @srcdir@/libsupc++/cxxabi.h \
                          include/ext/pb_ds/detail \
                          @srcdir@/doc/doxygen/doxygroups.cc
 
-# This tag can be used to specify the character encoding of the source
-# files that doxygen parses. Internally doxygen uses the UTF-8
-# encoding, which is also the default input encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible
-# encodings.
+# This tag can be used to specify the character encoding of the source files 
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
+# also the default input encoding. Doxygen uses libiconv (or the iconv built 
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
+# the list of possible encodings.
 
 INPUT_ENCODING         = UTF-8
 
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like
-# *.cpp and *.h) to filter out the source-files in the directories. If
-# left blank the following patterns are tested: *.c *.cc *.cxx *.cpp
-# *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp *.h++
-# *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
 
 FILE_PATTERNS          = *.h \
                          *.hpp \
@@ -805,14 +814,17 @@ IMAGE_PATH             =
 # by executing (via popen()) the command <filter> <input-file>, where <filter> 
 # is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
 # input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# to standard output. 
+# If FILTER_PATTERNS is specified, this tag will be 
 # ignored.
 
 INPUT_FILTER           = 
 
 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
+# basis. 
+# Doxygen will compare the file name with each pattern and apply the 
+# filter if there is a match. 
+# The filters are a list of the form: 
 # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
 # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
 # is applied to all files.
@@ -859,10 +871,11 @@ REFERENCED_BY_RELATION = YES
 
 REFERENCES_RELATION    = YES
 
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentstion.
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
+# link to the source code. 
+# Otherwise they will link to the documentation.
 
 REFERENCES_LINK_SOURCE = YES
 
@@ -1013,8 +1026,8 @@ HHC_LOCATION           =
 
 GENERATE_CHI           = NO
 
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file 
 # content.
 
 CHM_INDEX_ENCODING     = 
@@ -1044,25 +1057,42 @@ GENERATE_QHP           = NO
 
 QCH_FILE               = 
 
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see <a
-# href="http://doc.trolltech.com/qthelpproject.html#namespace">Qt Help
-# Project / Namespace</a>.
+# The QHP_NAMESPACE tag specifies the namespace to use when generating 
+# Qt Help Project output. For more information please see 
+# http://doc.trolltech.com/qthelpproject.html#namespace
 
 QHP_NAMESPACE          = org.doxygen.Project
 
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
-# generating Qt Help Project output. For more information please see
-# <a
-# href="http://doc.trolltech.com/qthelpproject.html#virtual-folders">Qt
-# Help Project / Virtual Folders</a>.
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 
+# Qt Help Project output. For more information please see 
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
 
 QHP_VIRTUAL_FOLDER     = doc
 
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom
+# filter to add.  For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   = 
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of
+# the custom filter to add.For more information please see <a
+# href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt
+# Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  = 
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes
+# this project's filter section matches.  <a
+# href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt
+# Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  = 
+
 # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 
 # be used to specify the location of Qt's qhelpgenerator. 
 # If non-empty doxygen will try to run qhelpgenerator on the generated 
-# .qhp file .
+# .qhp file.
 
 QHG_LOCATION           = 
 
@@ -1077,21 +1107,20 @@ DISABLE_INDEX          = YES
 
 ENUM_VALUES_PER_LINE   = 4
 
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like
-# index structure should be generated to display hierarchical
-# information.  If the tag value is set to FRAME, a side panel will be
-# generated containing a tree-like index structure (just like the one
-# that is generated for HTML Help). For this to work a browser that
-# supports JavaScript, DHTML, CSS and frames is required (for instance
-# Mozilla 1.0+, Netscape 6.0+, Internet explorer 5.0+, or
-# Konqueror). Windows users are probably better off using the HTML
-# help feature. Other possible values for this tag are: HIERARCHIES,
-# which will generate the Groups, Directories, and Class Hierarchy
-# pages using a tree view instead of an ordered list; ALL, which
-# combines the behavior of FRAME and HIERARCHIES; and NONE, which
-# disables this behavior completely. For backwards compatibility with
-# previous releases of Doxygen, the values YES and NO are equivalent
-# to FRAME and NONE respectively.
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 
+# structure should be generated to display hierarchical information. 
+# If the tag value is set to FRAME, a side panel will be generated 
+# containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature. Other possible values 
+# for this tag are: HIERARCHIES, which will generate the Groups, Directories, 
+# and Class Hierarchy pages using a tree view instead of an ordered list; 
+# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which 
+# disables this behavior completely. For backwards compatibility with previous 
+# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE 
+# respectively.
 
 GENERATE_TREEVIEW      = YES
 
@@ -1321,8 +1350,10 @@ GENERATE_PERLMOD       = NO
 PERLMOD_LATEX          = NO
 
 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
+# nicely formatted so it can be parsed by a human reader. 
+# This is useful 
+# if you want to understand what is going on. 
+# On the other hand, if this 
 # tag is set to NO the size of the Perl module output will be much smaller 
 # and Perl will parse it just the same.
 
@@ -1410,10 +1441,11 @@ PREDEFINED             = __cplusplus \
                          __glibcxx_class_requires3=// \
                          __glibcxx_class_requires4=//
 
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES
+# then this tag can be used to specify a list of macro names that
+# should be expanded.  The macro definition that is found in the
+# sources will be used.  Use the PREDEFINED tag if you want to use a
+# different macro definition.
 
 EXPAND_AS_DEFINED      = 
 
@@ -1433,14 +1465,16 @@ SKIP_FUNCTION_MACROS   = YES
 # Optionally an initial location of the external documentation 
 # can be added for each tagfile. The format of a tag file without 
 # this location is as follows: 
-#   TAGFILES = file1 file2 ... 
+#  
+# TAGFILES = file1 file2 ... 
 # Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+#  
+# TAGFILES = file1=loc1 "file2 = loc2" ... 
 # where "loc1" and "loc2" can be relative or absolute paths or 
 # URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
+# does not have to be run to correct the links. 
+# Note that each tag file must have a unique name 
+# (where the name does NOT include the path) 
 # If a tag file is not located in the directory in which doxygen 
 # is run, you must also specify the path to the tagfile here.
 
@@ -1481,12 +1515,12 @@ PERL_PATH              = /usr/bin/perl
 
 CLASS_DIAGRAMS         = YES
 
-# You can define message sequence charts within doxygen comments using
-# the \msc command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert
-# it in the documentation. The MSCGEN_PATH tag allows you to specify
-# the directory where the mscgen tool resides. If left empty the tool
-# is assumed to be found in the default search path.
+# You can define message sequence charts within doxygen comments using the \msc 
+# command. Doxygen will then run the mscgen tool (see 
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where 
+# the mscgen tool resides. If left empty the tool is assumed to be found in the 
+# default search path.
 
 MSCGEN_PATH            = 
 
@@ -1594,13 +1628,13 @@ GRAPHICAL_HIERARCHY    = YES
 
 # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
 # then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
+# in a graphical way. The dependency relations are determined by the #include 
 # relations between the files in the directories.
 
 DIRECTORY_GRAPH        = YES
 
 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
+# generated by dot. Possible values are png, jpg, or gif 
 # If left blank png will be used.
 
 DOT_IMAGE_FORMAT       = png
@@ -1664,7 +1698,7 @@ GENERATE_LEGEND        = NO
 DOT_CLEANUP            = YES
 
 #---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
+# Options related to the search engine
 #---------------------------------------------------------------------------
 
 # The SEARCHENGINE tag specifies whether or not a search engine should be 
index bf16a8a..1e8e509 100644 (file)
@@ -1,6 +1,6 @@
 // Functor implementations -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -65,7 +65,9 @@
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
   // 20.3.6 binders
-  /** @defgroup s20_3_6_binder Binder Classes
+  /** @defgroup binder Binder Classes
+   * @ingroup functors
+   *
    *  Binders turn functions/functors with two arguments into functors with
    *  a single argument, storing an argument to be applied later.  For
    *  example, a variable @c B of type @c binder1st is constructed from a
@@ -95,7 +97,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *
    *  @{
    */
-  /// One of the @link s20_3_6_binder binder functors@endlink.
+  /// One of the @link binder binder functors@endlink.
   template<typename _Operation>
     class binder1st
     : public unary_function<typename _Operation::second_argument_type,
@@ -121,7 +123,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return op(value, __x); }
     } _GLIBCXX_DEPRECATED_ATTR;
 
-  /// One of the @link s20_3_6_binder binder functors@endlink.
+  /// One of the @link binder binder functors@endlink.
   template<typename _Operation, typename _Tp>
     inline binder1st<_Operation>
     bind1st(const _Operation& __fn, const _Tp& __x)
@@ -130,7 +132,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       return binder1st<_Operation>(__fn, _Arg1_type(__x));
     }
 
-  /// One of the @link s20_3_6_binder binder functors@endlink.
+  /// One of the @link binder binder functors@endlink.
   template<typename _Operation>
     class binder2nd
     : public unary_function<typename _Operation::first_argument_type,
@@ -156,7 +158,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return op(__x, value); }
     } _GLIBCXX_DEPRECATED_ATTR;
 
-  /// One of the @link s20_3_6_binder binder functors@endlink.
+  /// One of the @link binder binder functors@endlink.
   template<typename _Operation, typename _Tp>
     inline binder2nd<_Operation>
     bind2nd(const _Operation& __fn, const _Tp& __x)
index 0e2e2c0..eb2d2dd 100644 (file)
@@ -1,6 +1,6 @@
 // <algorithm> declarations  -*- C++ -*-
 
-// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008, 2009 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
  *  You should not attempt to use it directly.
  */
 
-/*
-  adjacent_find
-  all_of (C++0x)
-  any_of (C++0x)
-  binary_search
-  copy
-  copy_backward
-  copy_if (C++0x)
-  copy_n (C++0x)
-  count
-  count_if
-  equal
-  equal_range
-  fill
-  fill_n
-  find
-  find_end
-  find_first_of
-  find_if
-  find_if_not (C++0x)
-  for_each
-  generate
-  generate_n
-  includes
-  inplace_merge
-  is_heap (C++0x)
-  is_heap_until (C++0x)
-  is_partitioned (C++0x)
-  is_sorted (C++0x)
-  is_sorted_until (C++0x)
-  iter_swap
-  lexicographical_compare
-  lower_bound
-  make_heap
-  max
-  max_element
-  merge
-  min
-  min_element
-  minmax (C++0x)
-  minmax_element (C++0x)
-  mismatch
-  next_permutation
-  none_of (C++0x)
-  nth_element
-  partial_sort
-  partial_sort_copy
-  partition
-  partition_copy (C++0x)
-  partition_point (C++0x)
-  pop_heap
-  prev_permutation
-  push_heap
-  random_shuffle
-  remove
-  remove_copy
-  remove_copy_if
-  remove_if
-  replace
-  replace_copy
-  replace_copy_if
-  replace_if
-  reverse
-  reverse_copy
-  rotate
-  rotate_copy
-  search
-  search_n
-  set_difference
-  set_intersection
-  set_symmetric_difference
-  set_union
-  sort
-  sort_heap
-  stable_partition
-  stable_sort
-  swap
-  swap_ranges
-  transform
-  unique
-  unique_copy
-  upper_bound
-*/
-
 #ifndef _GLIBCXX_ALGORITHMFWD_H
 #define _GLIBCXX_ALGORITHMFWD_H 1
 
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
+  /*
+    adjacent_find
+    all_of (C++0x)
+    any_of (C++0x)
+    binary_search
+    copy
+    copy_backward
+    copy_if (C++0x)
+    copy_n (C++0x)
+    count
+    count_if
+    equal
+    equal_range
+    fill
+    fill_n
+    find
+    find_end
+    find_first_of
+    find_if
+    find_if_not (C++0x)
+    for_each
+    generate
+    generate_n
+    includes
+    inplace_merge
+    is_heap (C++0x)
+    is_heap_until (C++0x)
+    is_partitioned (C++0x)
+    is_sorted (C++0x)
+    is_sorted_until (C++0x)
+    iter_swap
+    lexicographical_compare
+    lower_bound
+    make_heap
+    max
+    max_element
+    merge
+    min
+    min_element
+    minmax (C++0x)
+    minmax_element (C++0x)
+    mismatch
+    next_permutation
+    none_of (C++0x)
+    nth_element
+    partial_sort
+    partial_sort_copy
+    partition
+    partition_copy (C++0x)
+    partition_point (C++0x)
+    pop_heap
+    prev_permutation
+    push_heap
+    random_shuffle
+    remove
+    remove_copy
+    remove_copy_if
+    remove_if
+    replace
+    replace_copy
+    replace_copy_if
+    replace_if
+    reverse
+    reverse_copy
+    rotate
+    rotate_copy
+    search
+    search_n
+    set_difference
+    set_intersection
+    set_symmetric_difference
+    set_union
+    sort
+    sort_heap
+    stable_partition
+    stable_sort
+    swap
+    swap_ranges
+    transform
+    unique
+    unique_copy
+    upper_bound
+  */
+
+  /**
+   * @defgroup algorithms Algorithms
+   *
+   * Components for performing algorithmic operations. Includes
+   * non-modifying sequence, modifying (mutating) sequence, sorting,
+   * searching, merge, partition, heap, set, minima, maxima, and
+   * permutation operations.
+   */
+
+  /**
+   * @defgroup set_algorithms Set Operation Algorithms
+   * @ingroup algorithms
+   *
+   * These algorithms are common set operations performed on sequences
+   * that are already sorted. The number of comparisons will be
+   * linear.
+   */
+
+  /**
+   * @defgroup binary_search_algorithms Binary Search Algorithms
+   * @ingroup algorithms
+   *
+   * These algorithms are variations of a classic binary search, and
+   * all assume that the sequence being searched is already sorted.
+   * 
+   * The number of comparisons will be logarithmic (and as few as
+   * possible).  The number of steps through the sequence will be
+   * logarithmic for random-access iterators (e.g., pointers), and
+   * linear otherwise.
+   * 
+   * The LWG has passed Defect Report 270, which notes: <em>The
+   * proposed resolution reinterprets binary search. Instead of
+   * thinking about searching for a value in a sorted range, we view
+   * that as an important special case of a more general algorithm:
+   * searching for the partition point in a partitioned range.  We
+   * also add a guarantee that the old wording did not: we ensure that
+   * the upper bound is no earlier than the lower bound, that the pair
+   * returned by equal_range is a valid range, and that the first part
+   * of that pair is the lower bound.</em>
+   *
+   * The actual effect of the first sentence is that a comparison
+   * functor passed by the user doesn't necessarily need to induce a
+   * strict weak ordering relation.  Rather, it partitions the range.
+   */
+
   // adjacent_find
 
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
index 595a156..1f6dac9 100644 (file)
@@ -53,8 +53,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @class basic_string basic_string.h <string>
    *  @brief  Managing sequences of characters and character-like objects.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and a
index 78f098f..98a4a62 100644 (file)
@@ -400,8 +400,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @brief A standard container with linear time access to elements,
    *  and fixed time insertion/deletion at any point in the sequence.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#67">sequence</a>, including the
index d956376..64905fb 100644 (file)
@@ -1,6 +1,6 @@
 // Algorithm implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
   /**
+   * @addtogroup algorithms Algorithms
+   * @{
+   */
+
+  /**
    *  @brief Find the median of three values.
    *  @param  a  A value.
    *  @param  b  A value.
@@ -2394,7 +2399,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @return         An iterator pointing to the first element "not less
    *                  than" @a val, or end() if every element is less than 
    *                  @a val.
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
   */
   template<typename _ForwardIterator, typename _Tp>
     _ForwardIterator
@@ -2441,7 +2446,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  comp    A functor to use for comparisons.
    *  @return  An iterator pointing to the first element "not less than" @a val,
    *           or end() if every element is less than @a val.
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
    *
    *  The comparison function should have the same effects on ordering as
    *  the function used for the initial sort.
@@ -2492,7 +2497,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  val     The search term.
    *  @return  An iterator pointing to the first element greater than @a val,
    *           or end() if no elements are greater than @a val.
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
   */
   template<typename _ForwardIterator, typename _Tp>
     _ForwardIterator
@@ -2539,7 +2544,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  comp    A functor to use for comparisons.
    *  @return  An iterator pointing to the first element greater than @a val,
    *           or end() if no elements are greater than @a val.
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
    *
    *  The comparison function should have the same effects on ordering as
    *  the function used for the initial sort.
@@ -2589,7 +2594,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  last    Another iterator.
    *  @param  val     The search term.
    *  @return  An pair of iterators defining the subrange.
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
    *
    *  This is equivalent to
    *  @code
@@ -2651,7 +2656,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  val     The search term.
    *  @param  comp    A functor to use for comparisons.
    *  @return  An pair of iterators defining the subrange.
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
    *
    *  This is equivalent to
    *  @code
@@ -2716,7 +2721,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  last    Another iterator.
    *  @param  val     The search term.
    *  @return  True if @a val (or its equivalent) is in [@a first,@a last ].
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
    *
    *  Note that this does not actually return an iterator to @a val.  For
    *  that, use std::find or a container's specialized find member functions.
@@ -2746,7 +2751,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  val     The search term.
    *  @param  comp    A functor to use for comparisons.
    *  @return  True if @a val (or its equivalent) is in [@a first,@a last ].
-   *  @ingroup binarysearch
+   *  @ingroup binary_search_algorithms
    *
    *  Note that this does not actually return an iterator to @a val.  For
    *  that, use std::find or a container's specialized find member functions.
@@ -3432,7 +3437,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  last2   End of sequence.
    *  @return  True if each element in [first2,last2) is contained in order
    *  within [first1,last1).  False otherwise.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation expects both [first1,last1) and [first2,last2) to be
    *  sorted.  Searches for the presence of each element in [first2,last2)
@@ -3479,7 +3484,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @param  comp    Comparison function to use.
    *  @return  True if each element in [first2,last2) is contained in order
    *  within [first1,last1) according to comp.  False otherwise.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation expects both [first1,last1) and [first2,last2) to be
    *  sorted.  Searches for the presence of each element in [first2,last2)
@@ -3932,7 +3937,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @brief  Determines min and max at once as an ordered pair.
    *  @param  a  A thing of arbitrary type.
    *  @param  b  Another thing of arbitrary type.
-   *  @param  comp  A @link s20_3_3_comparisons comparison functor@endlink.
+   *  @param  comp  A @link comparison_functor comparison functor@endlink.
    *  @return  A pair(b, a) if b is smaller than a, pair(a, b) otherwise.
   */
   template<typename _Tp, typename _Compare>
@@ -4134,11 +4139,18 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     }
 #endif // __GXX_EXPERIMENTAL_CXX0X__
 
+  /* @} */ // group algorithms
+
 _GLIBCXX_END_NAMESPACE
 
 _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
 
   /**
+   * @addtogroup algorithms Algorithms
+   * @{
+   */
+
+  /**
    *  @brief Apply a function to every element of a sequence.
    *  @param  first  An input iterator.
    *  @param  last   An input iterator.
@@ -5406,7 +5418,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  first2  Start of second range.
    *  @param  last2   End of second range.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  each range in order to the output range.  Iterators increment for each
@@ -5472,7 +5484,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  last2   End of second range.
    *  @param  comp    The comparison functor.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  each range in order to the output range.  Iterators increment for each
@@ -5539,7 +5551,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  first2  Start of second range.
    *  @param  last2   End of second range.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  both ranges in order to the output range.  Iterators increment for each
@@ -5594,7 +5606,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  last2   End of second range.
    *  @param  comp    The comparison functor.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  both ranges in order to the output range.  Iterators increment for each
@@ -5650,7 +5662,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  first2  Start of second range.
    *  @param  last2   End of second range.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  the first range but not the second in order to the output range.
@@ -5709,7 +5721,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  last2   End of second range.
    *  @param  comp    The comparison functor.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  the first range but not the second in order to the output range.
@@ -5769,7 +5781,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  first2  Start of second range.
    *  @param  last2   End of second range.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  one range but not the other in order to the output range.  Iterators
@@ -5833,7 +5845,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  last2   End of second range.
    *  @param  comp    The comparison functor.
    *  @return  End of the output range.
-   *  @ingroup setoperations
+   *  @ingroup set_algorithms
    *
    *  This operation iterates over both ranges, copying elements present in
    *  one range but not the other in order to the output range.  Iterators
@@ -6000,6 +6012,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
       return __result;
     }
 
+  /* @} */ // group algorithms
+
 _GLIBCXX_END_NESTED_NAMESPACE
 
 #endif /* _STL_ALGO_H */
index 4378ce8..a5f736e 100644 (file)
@@ -1,6 +1,6 @@
 // Core algorithmic facilities -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
+  /**
+   * @addtogroup algorithms Algorithms
+   * @{
+   */
+
   // See http://gcc.gnu.org/ml/libstdc++/2004-08/msg00167.html: in a
   // nutshell, we are partially implementing the resolution of DR 187,
   // when it's safe, i.e., the value_types are equal.
@@ -221,7 +226,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @brief This does what you think it does.
    *  @param  a  A thing of arbitrary type.
    *  @param  b  Another thing of arbitrary type.
-   *  @param  comp  A @link s20_3_3_comparisons comparison functor@endlink.
+   *  @param  comp  A @link comparison_functors comparison functor@endlink.
    *  @return   The lesser of the parameters.
    *
    *  This will work on temporary expressions, since they are only evaluated
@@ -241,7 +246,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @brief This does what you think it does.
    *  @param  a  A thing of arbitrary type.
    *  @param  b  Another thing of arbitrary type.
-   *  @param  comp  A @link s20_3_3_comparisons comparison functor@endlink.
+   *  @param  comp  A @link comparison_functors comparison functor@endlink.
    *  @return   The greater of the parameters.
    *
    *  This will work on temporary expressions, since they are only evaluated
@@ -924,11 +929,18 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
                                                            __first2, __last2);
     }
 
+  /* @} */ // group algorithms
+
 _GLIBCXX_END_NAMESPACE
 
 _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
 
   /**
+   * @addtogroup algorithms Algorithms
+   * @{
+   */
+
+  /**
    *  @brief Tests a range for element-wise equality.
    *  @param  first1  An input iterator.
    *  @param  last1   An input iterator.
@@ -961,7 +973,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  first1  An input iterator.
    *  @param  last1   An input iterator.
    *  @param  first2  An input iterator.
-   *  @param binary_pred A binary predicate @link s20_3_1_base
+   *  @param binary_pred A binary predicate @link functors
    *                  functor@endlink.
    *  @return         A boolean true or false.
    *
@@ -1028,7 +1040,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  last1   An input iterator.
    *  @param  first2  An input iterator.
    *  @param  last2   An input iterator.
-   *  @param  comp  A @link s20_3_3_comparisons comparison functor@endlink.
+   *  @param  comp  A @link comparison_functors comparison functor@endlink.
    *  @return   A boolean true or false.
    *
    *  The same as the four-parameter @c lexicographical_compare, but uses the
@@ -1099,7 +1111,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
    *  @param  first1  An input iterator.
    *  @param  last1   An input iterator.
    *  @param  first2  An input iterator.
-   *  @param binary_pred A binary predicate @link s20_3_1_base
+   *  @param binary_pred A binary predicate @link functors
    *         functor@endlink.
    *  @return   A pair of iterators pointing to the first mismatch.
    *
@@ -1128,6 +1140,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
     }
 
+  /* @} */ // group algorithms
+
 _GLIBCXX_END_NESTED_NAMESPACE
 
 // NB: This file is included within many other C++ includes, as a way
index 4409d9c..beb89b6 100644 (file)
@@ -467,8 +467,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  really references and pointers to bool.  See DR96 for details.  @see
    *  vector for function documentation.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  In some terminology a %vector can be described as a dynamic
    *  C-style array, it offers fast and efficient access to individual
index ec9a727..b02334b 100644 (file)
@@ -562,8 +562,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  @brief  A standard container using fixed-size memory allocation and
    *  constant-time manipulation of elements at either end.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and a
index 462b1f4..ebdd2fc 100644 (file)
@@ -1,6 +1,6 @@
 // Functor implementations -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -65,7 +65,9 @@
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
   // 20.3.1 base classes
-  /** @defgroup s20_3_1_base Functor Base Classes
+  /** @defgroup functors Function Objects
+   * @ingroup utilities
+   *
    *  Function objects, or @e functors, are objects with an @c operator()
    *  defined and accessible.  They can be passed as arguments to algorithm
    *  templates and used in place of a function pointer.  Not only is the
@@ -97,7 +99,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @{
    */
   /**
-   *  This is one of the @link s20_3_1_base functor base classes@endlink.
+   *  This is one of the @link functors functor base classes@endlink.
    */
   template<typename _Arg, typename _Result>
     struct unary_function
@@ -109,7 +111,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     };
 
   /**
-   *  This is one of the @link s20_3_1_base functor base classes@endlink.
+   *  This is one of the @link functors functor base classes@endlink.
    */
   template<typename _Arg1, typename _Arg2, typename _Result>
     struct binary_function
@@ -123,16 +125,17 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   /** @}  */
 
   // 20.3.2 arithmetic
-  /** @defgroup s20_3_2_arithmetic Arithmetic Classes
-
+  /** @defgroup arithmetic_functors Arithmetic Classes
+   * @ingroup functors
+   *
    *  Because basic math often needs to be done during an algorithm,
    *  the library provides functors for those operations.  See the
-   *  documentation for @link s20_3_1_base the base classes@endlink
+   *  documentation for @link functors the base classes@endlink
    *  for examples of their use.
    *
    *  @{
    */
-  /// One of the @link s20_3_2_arithmetic math functors@endlink.
+  /// One of the @link arithmetic_functors math functors@endlink.
   template<typename _Tp>
     struct plus : public binary_function<_Tp, _Tp, _Tp>
     {
@@ -141,7 +144,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x + __y; }
     };
 
-  /// One of the @link s20_3_2_arithmetic math functors@endlink.
+  /// One of the @link arithmetic_functors math functors@endlink.
   template<typename _Tp>
     struct minus : public binary_function<_Tp, _Tp, _Tp>
     {
@@ -150,7 +153,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x - __y; }
     };
 
-  /// One of the @link s20_3_2_arithmetic math functors@endlink.
+  /// One of the @link arithmetic_functors math functors@endlink.
   template<typename _Tp>
     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
     {
@@ -159,7 +162,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x * __y; }
     };
 
-  /// One of the @link s20_3_2_arithmetic math functors@endlink.
+  /// One of the @link arithmetic_functors math functors@endlink.
   template<typename _Tp>
     struct divides : public binary_function<_Tp, _Tp, _Tp>
     {
@@ -168,7 +171,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x / __y; }
     };
 
-  /// One of the @link s20_3_2_arithmetic math functors@endlink.
+  /// One of the @link arithmetic_functors math functors@endlink.
   template<typename _Tp>
     struct modulus : public binary_function<_Tp, _Tp, _Tp>
     {
@@ -177,7 +180,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x % __y; }
     };
 
-  /// One of the @link s20_3_2_arithmetic math functors@endlink.
+  /// One of the @link arithmetic_functors math functors@endlink.
   template<typename _Tp>
     struct negate : public unary_function<_Tp, _Tp>
     {
@@ -188,13 +191,15 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   /** @}  */
 
   // 20.3.3 comparisons
-  /** @defgroup s20_3_3_comparisons Comparison Classes
+  /** @defgroup comparison_functors Comparison Classes
+   * @ingroup functors
+   *
    *  The library provides six wrapper functors for all the basic comparisons
    *  in C++, like @c <.
    *
    *  @{
    */
-  /// One of the @link s20_3_3_comparisons comparison functors@endlink.
+  /// One of the @link comparison_functors comparison functors@endlink.
   template<typename _Tp>
     struct equal_to : public binary_function<_Tp, _Tp, bool>
     {
@@ -203,7 +208,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x == __y; }
     };
 
-  /// One of the @link s20_3_3_comparisons comparison functors@endlink.
+  /// One of the @link comparison_functors comparison functors@endlink.
   template<typename _Tp>
     struct not_equal_to : public binary_function<_Tp, _Tp, bool>
     {
@@ -212,7 +217,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x != __y; }
     };
 
-  /// One of the @link s20_3_3_comparisons comparison functors@endlink.
+  /// One of the @link comparison_functors comparison functors@endlink.
   template<typename _Tp>
     struct greater : public binary_function<_Tp, _Tp, bool>
     {
@@ -221,7 +226,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x > __y; }
     };
 
-  /// One of the @link s20_3_3_comparisons comparison functors@endlink.
+  /// One of the @link comparison_functors comparison functors@endlink.
   template<typename _Tp>
     struct less : public binary_function<_Tp, _Tp, bool>
     {
@@ -230,7 +235,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x < __y; }
     };
 
-  /// One of the @link s20_3_3_comparisons comparison functors@endlink.
+  /// One of the @link comparison_functors comparison functors@endlink.
   template<typename _Tp>
     struct greater_equal : public binary_function<_Tp, _Tp, bool>
     {
@@ -239,7 +244,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x >= __y; }
     };
 
-  /// One of the @link s20_3_3_comparisons comparison functors@endlink.
+  /// One of the @link comparison_functors comparison functors@endlink.
   template<typename _Tp>
     struct less_equal : public binary_function<_Tp, _Tp, bool>
     {
@@ -250,13 +255,15 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   /** @}  */
 
   // 20.3.4 logical operations
-  /** @defgroup s20_3_4_logical Boolean Operations Classes
+  /** @defgroup logical_functors Boolean Operations Classes
+   * @ingroup functors
+   *
    *  Here are wrapper functors for Boolean operations: @c &&, @c ||,
    *  and @c !.
    *
    *  @{
    */
-  /// One of the @link s20_3_4_logical Boolean operations functors@endlink.
+  /// One of the @link logical_functors Boolean operations functors@endlink.
   template<typename _Tp>
     struct logical_and : public binary_function<_Tp, _Tp, bool>
     {
@@ -265,7 +272,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x && __y; }
     };
 
-  /// One of the @link s20_3_4_logical Boolean operations functors@endlink.
+  /// One of the @link logical_functors Boolean operations functors@endlink.
   template<typename _Tp>
     struct logical_or : public binary_function<_Tp, _Tp, bool>
     {
@@ -274,7 +281,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return __x || __y; }
     };
 
-  /// One of the @link s20_3_4_logical Boolean operations functors@endlink.
+  /// One of the @link logical_functors Boolean operations functors@endlink.
   template<typename _Tp>
     struct logical_not : public unary_function<_Tp, bool>
     {
@@ -311,7 +318,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     };
 
   // 20.3.5 negators
-  /** @defgroup s20_3_5_negators Negators
+  /** @defgroup negators Negators
+   * @ingroup functors
+   *
    *  The functions @c not1 and @c not2 each take a predicate functor
    *  and return an instance of @c unary_negate or
    *  @c binary_negate, respectively.  These classes are functors whose
@@ -337,7 +346,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *
    *  @{
    */
-  /// One of the @link s20_3_5_negators negation functors@endlink.
+  /// One of the @link negators negation functors@endlink.
   template<typename _Predicate>
     class unary_negate
     : public unary_function<typename _Predicate::argument_type, bool>
@@ -354,13 +363,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return !_M_pred(__x); }
     };
 
-  /// One of the @link s20_3_5_negators negation functors@endlink.
+  /// One of the @link negators negation functors@endlink.
   template<typename _Predicate>
     inline unary_negate<_Predicate>
     not1(const _Predicate& __pred)
     { return unary_negate<_Predicate>(__pred); }
 
-  /// One of the @link s20_3_5_negators negation functors@endlink.
+  /// One of the @link negators negation functors@endlink.
   template<typename _Predicate>
     class binary_negate
     : public binary_function<typename _Predicate::first_argument_type,
@@ -379,7 +388,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return !_M_pred(__x, __y); }
     };
 
-  /// One of the @link s20_3_5_negators negation functors@endlink.
+  /// One of the @link negators negation functors@endlink.
   template<typename _Predicate>
     inline binary_negate<_Predicate>
     not2(const _Predicate& __pred)
@@ -387,7 +396,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   /** @}  */
 
   // 20.3.7 adaptors pointers functions
-  /** @defgroup s20_3_7_adaptors Adaptors for pointers to functions
+  /** @defgroup pointer_adaptors Adaptors for pointers to functions
+   * @ingroup functors
+   *
    *  The advantage of function objects over pointers to functions is that
    *  the objects in the standard library declare nested typedefs describing
    *  their argument and result types with uniform names (e.g., @c result_type
@@ -406,7 +417,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *
    *  @{
    */
-  /// One of the @link s20_3_7_adaptors adaptors for function pointers@endlink.
+  /// One of the @link pointer_adaptors adaptors for function pointers@endlink.
   template<typename _Arg, typename _Result>
     class pointer_to_unary_function : public unary_function<_Arg, _Result>
     {
@@ -425,13 +436,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return _M_ptr(__x); }
     };
 
-  /// One of the @link s20_3_7_adaptors adaptors for function pointers@endlink.
+  /// One of the @link pointer_adaptors adaptors for function pointers@endlink.
   template<typename _Arg, typename _Result>
     inline pointer_to_unary_function<_Arg, _Result>
     ptr_fun(_Result (*__x)(_Arg))
     { return pointer_to_unary_function<_Arg, _Result>(__x); }
 
-  /// One of the @link s20_3_7_adaptors adaptors for function pointers@endlink.
+  /// One of the @link pointer_adaptors adaptors for function pointers@endlink.
   template<typename _Arg1, typename _Arg2, typename _Result>
     class pointer_to_binary_function
     : public binary_function<_Arg1, _Arg2, _Result>
@@ -451,7 +462,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       { return _M_ptr(__x, __y); }
     };
 
-  /// One of the @link s20_3_7_adaptors adaptors for function pointers@endlink.
+  /// One of the @link pointer_adaptors adaptors for function pointers@endlink.
   template<typename _Arg1, typename _Arg2, typename _Result>
     inline pointer_to_binary_function<_Arg1, _Arg2, _Result>
     ptr_fun(_Result (*__x)(_Arg1, _Arg2))
@@ -497,7 +508,9 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     };
 
   // 20.3.8 adaptors pointers members
-  /** @defgroup s20_3_8_memadaptors Adaptors for pointers to members
+  /** @defgroup memory_adaptors Adaptors for pointers to members
+   * @ingroup functors
+   *
    *  There are a total of 8 = 2^3 function objects in this family.
    *   (1) Member functions taking no arguments vs member functions taking
    *        one argument.
@@ -510,7 +523,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *
    *  @{
    */
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp>
     class mem_fun_t : public unary_function<_Tp*, _Ret>
@@ -528,7 +541,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Ret (_Tp::*_M_f)();
     };
 
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp>
     class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
@@ -546,7 +559,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Ret (_Tp::*_M_f)() const;
     };
 
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp>
     class mem_fun_ref_t : public unary_function<_Tp, _Ret>
@@ -564,7 +577,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Ret (_Tp::*_M_f)();
   };
 
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp>
     class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
@@ -582,7 +595,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Ret (_Tp::*_M_f)() const;
     };
 
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp, typename _Arg>
     class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
@@ -600,7 +613,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Ret (_Tp::*_M_f)(_Arg);
     };
 
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp, typename _Arg>
     class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
@@ -618,7 +631,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Ret (_Tp::*_M_f)(_Arg) const;
     };
 
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp, typename _Arg>
     class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
@@ -636,7 +649,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _Ret (_Tp::*_M_f)(_Arg);
     };
 
-  /// One of the @link s20_3_8_memadaptors adaptors for member
+  /// One of the @link memory_adaptors adaptors for member
   /// pointers@endlink.
   template<typename _Ret, typename _Tp, typename _Arg>
     class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
index 710a282..4a8cf1f 100644 (file)
@@ -1,6 +1,6 @@
 // Types used in iterator implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
-  //@{
   /**
-   *  @defgroup iterator_tags Iterator Tags
+   *  @defgroup iterators Iterators
    *  These are empty types, used to distinguish different iterators.  The
    *  distinction is not made by what they contain, but simply by what they
    *  are.  Different underlying algorithms can then be used based on the
    *  different operations supported by different iterator types.
   */
+  //@{ 
   ///  Marking input iterators.
-  struct input_iterator_tag {};
+  struct input_iterator_tag { };
   ///  Marking output iterators.
-  struct output_iterator_tag {};
+  struct output_iterator_tag { };
   /// Forward iterators support a superset of input iterator operations.
-  struct forward_iterator_tag : public input_iterator_tag {};
+  struct forward_iterator_tag : public input_iterator_tag { };
   /// Bidirectional iterators support a superset of forward iterator
   /// operations.
-  struct bidirectional_iterator_tag : public forward_iterator_tag {};
+  struct bidirectional_iterator_tag : public forward_iterator_tag { };
   /// Random-access iterators support a superset of bidirectional iterator
   /// operations.
-  struct random_access_iterator_tag : public bidirectional_iterator_tag {};
-  //@}
+  struct random_access_iterator_tag : public bidirectional_iterator_tag { };
 
 
   /**
@@ -166,6 +165,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     __iterator_category(const _Iter&)
     { return typename iterator_traits<_Iter>::iterator_category(); }
 
+  //@}
+
 _GLIBCXX_END_NAMESPACE
 
 #endif /* _STL_ITERATOR_BASE_TYPES_H */
index d38fffe..1bb6bbb 100644 (file)
@@ -379,8 +379,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  @brief A standard container with linear time access to elements,
    *  and fixed time insertion/deletion at any point in the sequence.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and a
index a456ea9..d508534 100644 (file)
@@ -72,8 +72,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  @brief A standard container made up of (key,value) pairs, which can be
    *  retrieved based on a key, in logarithmic time.
    *
-   *  @ingroup Containers
-   *  @ingroup Assoc_containers
+   *  @ingroup containers
+   *  @ingroup associative_containers
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and an
index af64600..ed3576f 100644 (file)
@@ -71,8 +71,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  @brief A standard container made up of (key,value) pairs, which can be
    *  retrieved based on a key, in logarithmic time.
    *
-   *  @ingroup Containers
-   *  @ingroup Assoc_containers
+   *  @ingroup containers
+   *  @ingroup associative_containers
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and an
index 3721d99..fefbdf8 100644 (file)
@@ -71,8 +71,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  @brief A standard container made up of elements, which can be retrieved
    *  in logarithmic time.
    *
-   *  @ingroup Containers
-   *  @ingroup Assoc_containers
+   *  @ingroup containers
+   *  @ingroup associative_containers
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and an
index 053a59c..da91cb7 100644 (file)
@@ -1,6 +1,6 @@
 // Queue implementation -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -70,8 +70,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   /**
    *  @brief  A standard container giving FIFO behavior.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  Meets many of the requirements of a
    *  <a href="tables.html#65">container</a>,
@@ -338,8 +338,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   /**
    *  @brief  A standard container automatically sorting its contents.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  This is not a true container, but an @e adaptor.  It holds
    *  another container, and provides a wrapper interface to that
@@ -432,7 +432,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  the copy according to @a x.
        *
        *  For more information on function objects, see the
-       *  documentation on @link s20_3_1_base functor base
+       *  documentation on @link functors functor base
        *  classes@endlink.
        */
 #ifndef __GXX_EXPERIMENTAL_CXX0X__
index 8ea0a59..107a071 100644 (file)
@@ -71,8 +71,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  @brief A standard container made up of unique keys, which can be
    *  retrieved in logarithmic time.
    *
-   *  @ingroup Containers
-   *  @ingroup Assoc_containers
+   *  @ingroup containers
+   *  @ingroup associative_containers
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and an
index 13e4b7a..28477ad 100644 (file)
@@ -70,8 +70,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   /**
    *  @brief  A standard container giving FILO behavior.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  Meets many of the requirements of a
    *  <a href="tables.html#65">container</a>,
index e62aa72..e6bbf5d 100644 (file)
@@ -157,8 +157,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
    *  @brief A standard container which offers fixed time access to
    *  individual elements in any order.
    *
-   *  @ingroup Containers
-   *  @ingroup Sequences
+   *  @ingroup containers
+   *  @ingroup sequences
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, a
    *  <a href="tables.html#66">reversible container</a>, and a
index f8f001f..131a7e3 100644 (file)
@@ -587,7 +587,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
   /**
    *  @brief  The %bitset class represents a @e fixed-size sequence of bits.
    *
-   *  @ingroup Containers
+   *  @ingroup containers
    *
    *  (Note that %bitset does @e not meet the formal requirements of a
    *  <a href="tables.html#65">container</a>.  Mainly, it lacks iterators.)
index 6f8129e..62e94cc 100644 (file)
@@ -102,7 +102,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   class ios_base; 
 
   /** 
-   *  @defgroup s27_2_iosfwd I/O Forward Declarations
+   *  @defgroup io I/O
    *
    *  Nearly all of the I/O classes are parameterized on the type of
    *  characters they read and write.  (The major exception is ios_base at
index dcb3294..dcb57e1 100644 (file)
@@ -1,6 +1,6 @@
 // <numeric> -*- C++ -*-
 
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2009 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
 # include <parallel/numeric>
 #endif
 
+/**
+ * @defgroup numerics Numerics
+ *
+ * Components for performing numeric operations. Includes support for
+ * for complex number types, random number generation, numeric
+ * (n-at-a-time) arrays, generalized numeric algorithms, and special
+ * math functions.
+ */
+
 #endif /* _GLIBCXX_NUMERIC */
index 8a006ca..4f8af8d 100644 (file)
@@ -1,6 +1,6 @@
 // <utility> -*- C++ -*-
 
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 #  include <initializer_list>
 #endif
 
+/**
+ * @defgroup utilities Utilities
+ *
+ * Components deemed generally useful. Includes pair, tuple,
+ * forward/move helpers, ratio, function object, metaprogramming and
+ * type traits, time, date, and memory functions.
+ */
+
 #endif /* _GLIBCXX_UTILITY */
index a9c5aec..c4e5f7b 100644 (file)
@@ -1,6 +1,6 @@
 // TR1 cmath -*- C++ -*-
 
-// Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright (C) 2006, 2007, 2008, 2009 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
@@ -105,7 +105,9 @@ namespace std
 namespace tr1
 {
   /**
-   * @addtogroup tr1_math_spec_func Mathematical Special Functions
+   * @defgroup tr1_math_spec_func Mathematical Special Functions
+   * @ingroup numerics
+   *
    * A collection of advanced mathematical special functions.
    * @{
    */
index 66dc9a2..a978115 100644 (file)
@@ -1,6 +1,6 @@
 // class template array -*- C++ -*-
 
-// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008, 2009 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
@@ -36,8 +36,21 @@ namespace std
 {
 _GLIBCXX_BEGIN_NAMESPACE_TR1
 
-  /// array.
-  /// NB: Requires complete type _Tp.
+  /**
+   *  @brief A standard container for storing a fixed size sequence of elements.
+   *
+   *  @ingroup containers
+   *  @ingroup sequences
+   *
+   *  Meets the requirements of a <a href="tables.html#65">container</a>, a
+   *  <a href="tables.html#66">reversible container</a>, and a
+   *  <a href="tables.html#67">sequence</a>.
+   *
+   *  Sets support random access iterators.
+   *
+   *  @param  Tp  Type of element. Required to be a complete type.
+   *  @param  N  Number of elements.
+  */
   template<typename _Tp, std::size_t _Nm>
     struct array
     {
index dd9c57d..49ac598 100644 (file)
@@ -1,6 +1,6 @@
 // random number generation -*- C++ -*-
 
-// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2008, 2009 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
@@ -40,7 +40,8 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
   // [5.1] Random number generation
 
   /**
-   * @addtogroup tr1_random Random Number Generation
+   * @defgroup tr1_random Random Number Generation
+   * @ingroup numerics
    * A facility for generating random numbers on selected distributions.
    * @{
    */
@@ -312,7 +313,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
 
 
   /**
-   * @addtogroup tr1_random_generators Random Number Generators
+   * @defgroup tr1_random_generators Random Number Generators
    * @ingroup tr1_random
    *
    * These classes define objects which provide random or pseudorandom
@@ -1544,13 +1545,13 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
   /* @} */ // group tr1_random_generators
 
   /**
-   * @addtogroup tr1_random_distributions Random Number Distributions
+   * @defgroup tr1_random_distributions Random Number Distributions
    * @ingroup tr1_random
    * @{
    */
 
   /**
-   * @addtogroup tr1_random_distributions_discrete Discrete Distributions
+   * @defgroup tr1_random_distributions_discrete Discrete Distributions
    * @ingroup tr1_random_distributions
    * @{
    */
@@ -2047,7 +2048,7 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
   /* @} */ // group tr1_random_distributions_discrete
 
   /**
-   * @addtogroup tr1_random_distributions_continuous Continuous Distributions
+   * @defgroup tr1_random_distributions_continuous Continuous Distributions
    * @ingroup tr1_random_distributions
    * @{
    */
index 4f91449..c16d0fa 100644 (file)
@@ -1,6 +1,6 @@
 // TR1 unordered_map -*- C++ -*-
 
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 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
@@ -168,7 +168,25 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
     { __x.swap(__y); }
 
 
-  /// class unordered_map
+  /**
+   *  @brief A standard container composed of unique keys (containing
+   *  at most one of each key value) that associates values of another type
+   *  with the keys.
+   *
+   *  @ingroup containers
+   *  @ingroup unordered_associative_containers
+   *
+   *  Meets the requirements of a <a href="tables.html#65">container</a>, and
+   *  <a href="tables.html#xx">unordered associative container</a>
+   *
+   *  @param  Key  Type of key objects.
+   *  @param  Tp  Type of mapped objects.
+   *  @param  Hash  Hashing function object type, defaults to hash<Value>.
+   *  @param  Pred  Predicate function object type, defaults to equal_to<Value>.
+   *  @param  Alloc  Allocator type, defaults to allocator<Key>.
+   *
+   * The resulting value type of the container is std::pair<const Key, Tp>.
+   */
   template<class _Key, class _Tp,
           class _Hash = hash<_Key>,
           class _Pred = std::equal_to<_Key>,
@@ -233,7 +251,25 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
 #endif
     };
   
-  /// class unordered_multimap
+  /**
+   *  @brief A standard container composed of equivalent keys
+   *  (possibly containing multiple of each key value) that associates
+   *  values of another type with the keys.
+   *
+   *  @ingroup containers
+   *  @ingroup unordered_associative_containers
+   *
+   *  Meets the requirements of a <a href="tables.html#65">container</a>, and
+   *  <a href="tables.html#xx">unordered associative container</a>
+   *
+   *  @param  Key  Type of key objects.
+   *  @param  Tp  Type of mapped objects.
+   *  @param  Hash  Hashing function object type, defaults to hash<Value>.
+   *  @param  Pred  Predicate function object type, defaults to equal_to<Value>.
+   *  @param  Alloc  Allocator type, defaults to allocator<Key>.
+   *
+   * The resulting value type of the container is std::pair<const Key, Tp>.
+   */
   template<class _Key, class _Tp,
           class _Hash = hash<_Key>,
           class _Pred = std::equal_to<_Key>,
index 5640ebe..8008d0f 100644 (file)
@@ -1,6 +1,6 @@
 // TR1 unordered_set -*- C++ -*-
 
-// Copyright (C) 2007 Free Software Foundation, Inc.
+// Copyright (C) 2007, 2009 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
@@ -164,7 +164,22 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
     { __x.swap(__y); }
 
 
-  /// class unordered_set
+  /**
+   *  @brief A standard container composed of unique keys (containing
+   *  at most one of each key value) in which the elements' keys are
+   *  the elements themselves.
+   *
+   *  @ingroup containers
+   *  @ingroup unordered_associative_containers
+   *
+   *  Meets the requirements of a <a href="tables.html#65">container</a>, and
+   *  <a href="tables.html#xx">unordered associative container</a>
+   *
+   *  @param  Value  Type of key objects.
+   *  @param  Hash  Hashing function object type, defaults to hash<Value>.
+   *  @param  Pred  Predicate function object type, defaults to equal_to<Value>.
+   *  @param  Alloc  Allocator type, defaults to allocator<Key>.
+   */
   template<class _Value,
           class _Hash = hash<_Value>,
           class _Pred = std::equal_to<_Value>,
@@ -229,7 +244,22 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
 #endif
     };
 
-  /// class unordered_multiset
+  /**
+   *  @brief A standard container composed of equivalent keys
+   *  (possibly containing multiple of each key value) in which the
+   *  elements' keys are the elements themselves.
+   *
+   *  @ingroup containers
+   *  @ingroup unordered_associative_containers
+   *
+   *  Meets the requirements of a <a href="tables.html#65">container</a>, and
+   *  <a href="tables.html#xx">unordered associative container</a>
+   *
+   *  @param  Value  Type of key objects.
+   *  @param  Hash  Hashing function object type, defaults to hash<Value>.
+   *  @param  Pred  Predicate function object type, defaults to equal_to<Value>.
+   *  @param  Alloc  Allocator type, defaults to allocator<Key>.
+   */
   template<class _Value,
           class _Hash = hash<_Value>,
           class _Pred = std::equal_to<_Value>,
index dcaea51..4c65813 100644 (file)
@@ -217,23 +217,20 @@ rm -rf ext
 # File names with embedded spaces (EVIL!) need to be....?  renamed or removed?
 find . -name "* *" -print0 | xargs -0r rm        # requires GNU tools
 
-# can leave SGIextensions.3 alone, it's an okay name
-mv s20_3_1_base.3           Intro_functors.3
-mv s20_3_2_arithmetic.3     Arithmetic_functors.3
-mv s20_3_3_comparisons.3    Comparison_functors.3
-mv s20_3_4_logical.3        Logical_functors.3
-mv s20_3_5_negators.3       Negation_functors.3
-#mv s20_3_6_binder.3         Binder_functors.3
-mv s20_3_7_adaptors.3       Func_ptr_functors.3
-mv s20_3_8_memadaptors.3    Member_ptr_functors.3
-mv iterator_tags.3          Iterator_types.3
-mv std.3                    Namespace_std.3
-mv __gnu_cxx.3              Namespace___gnu_cxx.3
+# Cleanups before tr1* files get killed.
+mv tr1_random_distributions.3 random_distributions.3
+mv tr1_random_distributions_continuous.3 random_distributions_continuous.3
+mv tr1_random_distributions_discrete.3 random_distributions_discrete.3
+mv tr1_random_generators.3 random_generators.3
 
 # man pages are for functions/types/other entities, not source files
 # directly.  who the heck would type "man foo.h" anyhow?
-find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
-rm -f *.h.3 *config* *.cc.3 *.tcc.3 *_t.3
+#find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
+rm -f *.h.3 *.hpp.3 *config* *.cc.3 *.tcc.3 *_t.3
+rm ext_*.3
+rm tr1_*.3
+rm debug_*.3
+
 # this is used to examine what we would have deleted, for debugging
 #mkdir trash
 #find . -name "[a-z]*" -a ! -name "std_*" -print | xargs -i mv {} trash
@@ -258,16 +255,17 @@ rm stdheader
 # implementations of man(1), e.g., Linux's.  We need to have another top-level
 # *roff tag to /stop/ the .SH NAME entry.
 #problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3`
-problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3'
-for f in $problematic; do
-    sed '/^\.SH NAME/{
-n
-a\
-\
-.SH SYNOPSIS
-    }' $f > TEMP
-    mv TEMP $f
-done
+
+#problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3'
+#for f in $problematic; do
+#    sed '/^\.SH NAME/{
+#n
+#a\
+#\
+#.SH SYNOPSIS
+#    }' $f > TEMP
+#    mv TEMP $f
+#done
 
 # Also, break this (generated) line up.  It's ugly as sin.
 problematic=`grep -l '[^^]Definition at line' *.3`
@@ -314,6 +312,15 @@ for f in __gnu_parallel_*; do
     newname=`echo $f | sed 's/^__gnu_parallel_/__gnu_parallel::/'`
     mv $f $newname
 done
+for f in __atomic0_*; do
+    newname=`echo $f | sed 's/^__atomic0_/std::__atomic0::/'`
+    mv $f $newname
+done
+for f in __atomic2_*; do
+    newname=`echo $f | sed 's/^__atomic2_/std::__atomic2::/'`
+    mv $f $newname
+done
+
 
 # Generic removal bits, where there are things in the generated man
 # pages that need to be killed.