From 48e3f5673aa9f226292c2c6bd11525d40744221f Mon Sep 17 00:00:00 2001 From: bkoz Date: Thu, 19 Feb 2009 08:15:15 +0000 Subject: [PATCH] 2009-02-18 Benjamin Kosnik * 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 --- libstdc++-v3/ChangeLog | 34 +++ libstdc++-v3/doc/doxygen/doxygroups.cc | 196 +++++++-------- libstdc++-v3/doc/doxygen/user.cfg.in | 276 ++++++++++++--------- libstdc++-v3/include/backward/binders.h | 14 +- libstdc++-v3/include/bits/algorithmfwd.h | 215 +++++++++------- libstdc++-v3/include/bits/basic_string.h | 4 +- libstdc++-v3/include/bits/forward_list.h | 4 +- libstdc++-v3/include/bits/stl_algo.h | 54 ++-- libstdc++-v3/include/bits/stl_algobase.h | 26 +- libstdc++-v3/include/bits/stl_bvector.h | 4 +- libstdc++-v3/include/bits/stl_deque.h | 4 +- libstdc++-v3/include/bits/stl_function.h | 99 ++++---- .../include/bits/stl_iterator_base_types.h | 19 +- libstdc++-v3/include/bits/stl_list.h | 4 +- libstdc++-v3/include/bits/stl_map.h | 4 +- libstdc++-v3/include/bits/stl_multimap.h | 4 +- libstdc++-v3/include/bits/stl_multiset.h | 4 +- libstdc++-v3/include/bits/stl_queue.h | 12 +- libstdc++-v3/include/bits/stl_set.h | 4 +- libstdc++-v3/include/bits/stl_stack.h | 4 +- libstdc++-v3/include/bits/stl_vector.h | 4 +- libstdc++-v3/include/std/bitset | 2 +- libstdc++-v3/include/std/iosfwd | 2 +- libstdc++-v3/include/std/numeric | 11 +- libstdc++-v3/include/std/utility | 10 +- libstdc++-v3/include/tr1/cmath | 6 +- libstdc++-v3/include/tr1_impl/array | 19 +- libstdc++-v3/include/tr1_impl/random | 13 +- libstdc++-v3/include/tr1_impl/unordered_map | 42 +++- libstdc++-v3/include/tr1_impl/unordered_set | 36 ++- libstdc++-v3/scripts/run_doxygen | 55 ++-- 31 files changed, 716 insertions(+), 469 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1b04fe3504a..984f1503909 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,37 @@ +2009-02-18 Benjamin Kosnik + + * 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 * include/std/system_error (system_category): To system_category(). diff --git a/libstdc++-v3/doc/doxygen/doxygroups.cc b/libstdc++-v3/doc/doxygen/doxygroups.cc index d94c9e50b3e..cdca01ea4ff 100644 --- a/libstdc++-v3/doc/doxygen/doxygroups.cc +++ b/libstdc++-v3/doc/doxygen/doxygroups.cc @@ -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 @@ -52,7 +52,80 @@ * 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 , which notes, "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." +*/ + +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 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 tables. */ -/** @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 tables. */ -// // // // // // // // // // // // // // // // // // // // // // // // -/** @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 , which notes, "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." -*/ - -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 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: 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. - -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 tables. */ // // // // // // // // // // // // // // // // // // // // // // // // - -// // // // // // // // // // // // // // // // // // // // // // // // -/* * @addtogroup groupname description of group +/* * @defgroup groupname description of group placeholder text */ // // // // // // // // // // // // // // // // // // // // // // // // - -// vim:et:noai: - diff --git a/libstdc++-v3/doc/doxygen/user.cfg.in b/libstdc++-v3/doc/doxygen/user.cfg.in index 87e702a35e3..086f49920ea 100644 --- a/libstdc++-v3/doc/doxygen/user.cfg.in +++ b/libstdc++-v3/doc/doxygen/user.cfg.in @@ -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 , where # is the value of the INPUT_FILTER tag, and 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 Qt Help -# Project / Namespace. +# 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 -# Qt -# Help Project / Virtual Folders. +# 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 Qt +# Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes +# this project's filter section matches. Qt +# Help Project / Filter Attributes. + +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 diff --git a/libstdc++-v3/include/backward/binders.h b/libstdc++-v3/include/backward/binders.h index bf16a8af367..1e8e509dc1c 100644 --- a/libstdc++-v3/include/backward/binders.h +++ b/libstdc++-v3/include/backward/binders.h @@ -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 class binder1st : public unary_function 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 class binder2nd : public unary_function inline binder2nd<_Operation> bind2nd(const _Operation& __fn, const _Tp& __x) diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h index 0e2e2c0e277..eb2d2ddbe42 100644 --- a/libstdc++-v3/include/bits/algorithmfwd.h +++ b/libstdc++-v3/include/bits/algorithmfwd.h @@ -1,6 +1,6 @@ // 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 @@ -23,90 +23,6 @@ * 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 @@ -119,6 +35,135 @@ _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: 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. + * + * 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__ diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 595a1560fa6..1f6dac97275 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -53,8 +53,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) * @class basic_string basic_string.h * @brief Managing sequences of characters and character-like objects. * - * @ingroup Containers - * @ingroup Sequences + * @ingroup containers + * @ingroup sequences * * Meets the requirements of a container, a * reversible container, and a diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h index 78f098faacd..98a4a62e88e 100644 --- a/libstdc++-v3/include/bits/forward_list.h +++ b/libstdc++-v3/include/bits/forward_list.h @@ -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 container, a * sequence, including the diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index d956376d8dd..64905fbd8eb 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -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 @@ -74,6 +74,11 @@ _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 _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 _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 @@ -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 */ diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h index 4378ce87451..a5f736e19dc 100644 --- a/libstdc++-v3/include/bits/stl_algobase.h +++ b/libstdc++-v3/include/bits/stl_algobase.h @@ -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 @@ -78,6 +78,11 @@ _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 diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index 4409d9c3665..beb89b64a76 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -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 diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h index ec9a727b0f3..b02334bcfb6 100644 --- a/libstdc++-v3/include/bits/stl_deque.h +++ b/libstdc++-v3/include/bits/stl_deque.h @@ -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 container, a * reversible container, and a diff --git a/libstdc++-v3/include/bits/stl_function.h b/libstdc++-v3/include/bits/stl_function.h index 462b1f47e0a..ebdd2fcb2b4 100644 --- a/libstdc++-v3/include/bits/stl_function.h +++ b/libstdc++-v3/include/bits/stl_function.h @@ -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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 class unary_negate : public unary_function @@ -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 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 class binary_negate : public binary_function 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 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 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 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 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 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 class const_mem_fun_t : public unary_function @@ -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 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 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 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 class const_mem_fun1_t : public binary_function @@ -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 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 class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> diff --git a/libstdc++-v3/include/bits/stl_iterator_base_types.h b/libstdc++-v3/include/bits/stl_iterator_base_types.h index 710a2822568..4a8cf1fbe29 100644 --- a/libstdc++-v3/include/bits/stl_iterator_base_types.h +++ b/libstdc++-v3/include/bits/stl_iterator_base_types.h @@ -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 @@ -72,27 +72,26 @@ _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 */ diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index d38fffe1b33..1bb6bbb9fe5 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -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 container, a * reversible container, and a diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h index a456ea99751..d508534f178 100644 --- a/libstdc++-v3/include/bits/stl_map.h +++ b/libstdc++-v3/include/bits/stl_map.h @@ -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 container, a * reversible container, and an diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h index af6460052ee..ed3576f0e89 100644 --- a/libstdc++-v3/include/bits/stl_multimap.h +++ b/libstdc++-v3/include/bits/stl_multimap.h @@ -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 container, a * reversible container, and an diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h index 3721d99d44a..fefbdf83e0d 100644 --- a/libstdc++-v3/include/bits/stl_multiset.h +++ b/libstdc++-v3/include/bits/stl_multiset.h @@ -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 container, a * reversible container, and an diff --git a/libstdc++-v3/include/bits/stl_queue.h b/libstdc++-v3/include/bits/stl_queue.h index 053a59c1650..da91cb781cb 100644 --- a/libstdc++-v3/include/bits/stl_queue.h +++ b/libstdc++-v3/include/bits/stl_queue.h @@ -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 * container, @@ -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__ diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h index 8ea0a5970ac..107a0717f2e 100644 --- a/libstdc++-v3/include/bits/stl_set.h +++ b/libstdc++-v3/include/bits/stl_set.h @@ -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 container, a * reversible container, and an diff --git a/libstdc++-v3/include/bits/stl_stack.h b/libstdc++-v3/include/bits/stl_stack.h index 13e4b7a4615..28477ad70a0 100644 --- a/libstdc++-v3/include/bits/stl_stack.h +++ b/libstdc++-v3/include/bits/stl_stack.h @@ -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 * container, diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index e62aa726057..e6bbf5d2bee 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -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 container, a * reversible container, and a diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset index f8f001f8b6f..131a7e3aff0 100644 --- a/libstdc++-v3/include/std/bitset +++ b/libstdc++-v3/include/std/bitset @@ -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 * container. Mainly, it lacks iterators.) diff --git a/libstdc++-v3/include/std/iosfwd b/libstdc++-v3/include/std/iosfwd index 6f8129ec1ed..62e94cc490e 100644 --- a/libstdc++-v3/include/std/iosfwd +++ b/libstdc++-v3/include/std/iosfwd @@ -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 diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index dcb32943fd9..dcb57e14494 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -1,6 +1,6 @@ // -*- 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 @@ -71,4 +71,13 @@ # include #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 */ diff --git a/libstdc++-v3/include/std/utility b/libstdc++-v3/include/std/utility index 8a006ca500b..4f8af8d9980 100644 --- a/libstdc++-v3/include/std/utility +++ b/libstdc++-v3/include/std/utility @@ -1,6 +1,6 @@ // -*- 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 @@ -88,4 +88,12 @@ # include #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 */ diff --git a/libstdc++-v3/include/tr1/cmath b/libstdc++-v3/include/tr1/cmath index a9c5aecf018..c4e5f7bf1e4 100644 --- a/libstdc++-v3/include/tr1/cmath +++ b/libstdc++-v3/include/tr1/cmath @@ -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. * @{ */ diff --git a/libstdc++-v3/include/tr1_impl/array b/libstdc++-v3/include/tr1_impl/array index 66dc9a2c8ce..a9781156a8a 100644 --- a/libstdc++-v3/include/tr1_impl/array +++ b/libstdc++-v3/include/tr1_impl/array @@ -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 container, a + * reversible container, and a + * sequence. + * + * Sets support random access iterators. + * + * @param Tp Type of element. Required to be a complete type. + * @param N Number of elements. + */ template struct array { diff --git a/libstdc++-v3/include/tr1_impl/random b/libstdc++-v3/include/tr1_impl/random index dd9c57d162b..49ac5980854 100644 --- a/libstdc++-v3/include/tr1_impl/random +++ b/libstdc++-v3/include/tr1_impl/random @@ -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 * @{ */ diff --git a/libstdc++-v3/include/tr1_impl/unordered_map b/libstdc++-v3/include/tr1_impl/unordered_map index 4f914495ddb..c16d0fa5701 100644 --- a/libstdc++-v3/include/tr1_impl/unordered_map +++ b/libstdc++-v3/include/tr1_impl/unordered_map @@ -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 container, and + * unordered associative container + * + * @param Key Type of key objects. + * @param Tp Type of mapped objects. + * @param Hash Hashing function object type, defaults to hash. + * @param Pred Predicate function object type, defaults to equal_to. + * @param Alloc Allocator type, defaults to allocator. + * + * The resulting value type of the container is std::pair. + */ template, 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 container, and + * unordered associative container + * + * @param Key Type of key objects. + * @param Tp Type of mapped objects. + * @param Hash Hashing function object type, defaults to hash. + * @param Pred Predicate function object type, defaults to equal_to. + * @param Alloc Allocator type, defaults to allocator. + * + * The resulting value type of the container is std::pair. + */ template, class _Pred = std::equal_to<_Key>, diff --git a/libstdc++-v3/include/tr1_impl/unordered_set b/libstdc++-v3/include/tr1_impl/unordered_set index 5640ebe1f77..8008d0f63d1 100644 --- a/libstdc++-v3/include/tr1_impl/unordered_set +++ b/libstdc++-v3/include/tr1_impl/unordered_set @@ -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 container, and + * unordered associative container + * + * @param Value Type of key objects. + * @param Hash Hashing function object type, defaults to hash. + * @param Pred Predicate function object type, defaults to equal_to. + * @param Alloc Allocator type, defaults to allocator. + */ template, 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 container, and + * unordered associative container + * + * @param Value Type of key objects. + * @param Hash Hashing function object type, defaults to hash. + * @param Pred Predicate function object type, defaults to equal_to. + * @param Alloc Allocator type, defaults to allocator. + */ template, class _Pred = std::equal_to<_Value>, diff --git a/libstdc++-v3/scripts/run_doxygen b/libstdc++-v3/scripts/run_doxygen index dcaea51158e..4c65813a9eb 100644 --- a/libstdc++-v3/scripts/run_doxygen +++ b/libstdc++-v3/scripts/run_doxygen @@ -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. -- 2.11.0