+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().
/*
- 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.
// 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
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
<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:
-
-# 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
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 =
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
# 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
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
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
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
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
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
# 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.
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
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
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
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 \
# 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.
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
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 =
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 =
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
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.
__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 =
# 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.
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 =
# 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
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
// 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
_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
*
* @{
*/
- /// 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,
{ 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)
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,
{ 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)
// <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__
* @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
* @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
// 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.
* @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
* @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.
* @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
* @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.
* @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
* @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
* @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.
* @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.
* @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)
* @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)
* @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>
}
#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.
* @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
* @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
* @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
* @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
* @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.
* @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.
* @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
* @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
return __result;
}
+ /* @} */ // group algorithms
+
_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _STL_ALGO_H */
// 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.
* @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
* @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
__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.
* @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.
*
* @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
* @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.
*
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
* 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
* @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
// 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
_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
* @{
*/
/**
- * 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
};
/**
- * 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
/** @} */
// 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>
{
{ 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>
{
{ 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>
{
{ 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>
{
{ 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>
{
{ 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>
{
/** @} */
// 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>
{
{ 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>
{
{ 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>
{
{ 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>
{
{ 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>
{
{ 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>
{
/** @} */
// 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>
{
{ 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>
{
{ 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>
{
};
// 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
*
* @{
*/
- /// 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>
{ 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,
{ 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)
/** @} */
// 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
*
* @{
*/
- /// 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>
{
{ 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>
{ 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))
};
// 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.
*
* @{
*/
- /// 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>
_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>
_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>
_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>
_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>
_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>
_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>
_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>
// 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 { };
/**
__iterator_category(const _Iter&)
{ return typename iterator_traits<_Iter>::iterator_category(); }
+ //@}
+
_GLIBCXX_END_NAMESPACE
#endif /* _STL_ITERATOR_BASE_TYPES_H */
* @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
* @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
* @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
* @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
// 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
/**
* @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>,
/**
* @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
* 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__
* @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
/**
* @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>,
* @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
/**
* @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.)
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
// <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 */
// <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 */
// 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
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.
* @{
*/
// 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
{
_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
{
// 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
// [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.
* @{
*/
/**
- * @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
/* @} */ // 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
* @{
*/
/* @} */ // group tr1_random_distributions_discrete
/**
- * @addtogroup tr1_random_distributions_continuous Continuous Distributions
+ * @defgroup tr1_random_distributions_continuous Continuous Distributions
* @ingroup tr1_random_distributions
* @{
*/
// 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
{ __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>,
#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>,
// 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
{ __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>,
#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>,
# 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
# 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`
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.