diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-02-19 08:15:15 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-02-19 08:15:15 +0000 |
commit | 48e3f5673aa9f226292c2c6bd11525d40744221f (patch) | |
tree | ad6009c188ca7ef64cc223b79a72a7c68995d30a /libstdc++-v3/doc/doxygen/doxygroups.cc | |
parent | 07dd13870dfa40944eb4478f1b8bfce021556080 (diff) |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144290 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/doc/doxygen/doxygroups.cc')
-rw-r--r-- | libstdc++-v3/doc/doxygen/doxygroups.cc | 196 |
1 files changed, 90 insertions, 106 deletions
diff --git a/libstdc++-v3/doc/doxygen/doxygroups.cc b/libstdc++-v3/doc/doxygen/doxygroups.cc index d94c9e50b3ed..cdca01ea4ffe 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 <cxxabi.h>, which notes, <em>"It is not normally + * necessary for user programs to include this header, or use the + * entry points directly. However, this header is available should + * that be needed."</em> +*/ + +namespace abi { +/** +@brief New ABI-mandated entry point in the C++ runtime library for demangling. + +@param mangled_name A NUL-terminated character string containing the name + to be demangled. + +@param output_buffer A region of memory, allocated with malloc, of + @a *length bytes, into which the demangled name + is stored. If @a output_buffer is not long enough, + it is expanded using realloc. @a output_buffer may + instead be NULL; in that case, the demangled name is + placed in a region of memory allocated with malloc. + +@param length If @a length is non-NULL, the length of the buffer containing + the demangled name is placed in @a *length. + +@param status @a *status is set to one of the following values: + - 0: The demangling operation succeeded. + - -1: A memory allocation failiure occurred. + - -2: @a mangled_name is not a valid name under the C++ ABI + mangling rules. + - -3: One of the arguments is invalid. + +@return A pointer to the start of the NUL-terminated demangled name, or NULL + if the demangling fails. The caller is responsible for deallocating + this memory using @c free. + + +The demangling is performed using the C++ ABI mangling rules, with +GNU extensions. For example, this function is used +in __gnu_cxx::__verbose_terminate_handler. See +http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#5 for other +examples of use. + +@note The same demangling functionality is available via libiberty +(@c <libiberty/demangle.h> and @c libiberty.a) in GCC 3.1 and later, but that +requires explicit installation (@c --enable-install-libiberty) and uses a +different API, although the ABI is unchanged. +*/ +char* __cxa_demangle (const char* mangled_name, char* output_buffer, + size_t* length, int* status); +} // namespace abi + +// // // // // // // // // // // // // // // // // // // // // // // // + +/** + * @defgroup extensions Extensions + * + * Components generally useful that are not part of any standard. + */ + +/** @defgroup SGIextensions SGI STL extensions + * @ingroup extensions Because libstdc++ based its implementation of the STL subsections of the library on the SGI 3.3 implementation, we inherited their extensions as well. @@ -73,7 +146,7 @@ comments all over the place, so they may seem stilted. // This is standalone because, unlike the functor introduction, there is no // single header file which serves as a base "all containers must include // this header". We do some quoting of 14882 here. -/** @addtogroup Containers Containers +/** @defgroup containers Containers Containers are collections of objects. A container may hold any type which meets certain requirements, but the type @@ -98,9 +171,11 @@ All containers must meet certain requirements, summarized in The standard containers are further refined into @link Sequences Sequences@endlink and @link Assoc_containers Associative Containers@endlink. +@link Unordered_assoc_containers Unordered Associative Containers@endlink. */ -/** @addtogroup Sequences Sequences +/** @defgroup sequences Sequences + * @ingroup containers Sequences arrange a collection of objects into a strictly linear order. The differences between sequences are usually due to one or both of the @@ -121,122 +196,31 @@ All sequences must meet certain requirements, summarized in <a href="tables.html">tables</a>. */ -/** @addtogroup Assoc_containers Associative Containers +/** @defgroup associative_containers Associative Containers + * @ingroup containers Associative containers allow fast retrieval of data based on keys. Each container type is parameterized on a @c Key type, and an ordering relation used to sort the elements of the container. -There should be more text here. - All associative containers must meet certain requirements, summarized in <a href="tables.html">tables</a>. */ -// // // // // // // // // // // // // // // // // // // // // // // // -/** @namespace abi - * @brief The cross-vendor C++ Application Binary Interface. A - * namespace alias to __cxxabiv1. - * - * A brief overview of an ABI is given in the libstdc++ FAQ, question - * 5.8 (you may have a copy of the FAQ locally, or you can view the online - * version at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_8). - * - * GCC subscribes to a relatively-new cross-vendor ABI for C++, sometimes - * called the IA64 ABI because it happens to be the native ABI for that - * platform. It is summarized at http://www.codesourcery.com/cxx-abi/ - * along with the current specification. - * - * For users of GCC greater than or equal to 3.x, entry points are - * available in <cxxabi.h>, which notes, <em>"It is not normally - * necessary for user programs to include this header, or use the - * entry points directly. However, this header is available should - * that be needed."</em> -*/ - -namespace abi { -/** -@brief New ABI-mandated entry point in the C++ runtime library for demangling. - -@param mangled_name A NUL-terminated character string containing the name - to be demangled. +/** @defgroup unordered_associative_containers Unordered Associative Containers + * @ingroup containers +Unordered associative containers allow fast retrieval of data based on keys. -@param output_buffer A region of memory, allocated with malloc, of - @a *length bytes, into which the demangled name - is stored. If @a output_buffer is not long enough, - it is expanded using realloc. @a output_buffer may - instead be NULL; in that case, the demangled name is - placed in a region of memory allocated with malloc. +Each container type is parameterized on a @c Key type, a @c Hash type +providing a hashing functor, and an ordering relation used to sort the +elements of the container. -@param length If @a length is non-NULL, the length of the buffer containing - the demangled name is placed in @a *length. - -@param status @a *status is set to one of the following values: - - 0: The demangling operation succeeded. - - -1: A memory allocation failiure occurred. - - -2: @a mangled_name is not a valid name under the C++ ABI - mangling rules. - - -3: One of the arguments is invalid. - -@return A pointer to the start of the NUL-terminated demangled name, or NULL - if the demangling fails. The caller is responsible for deallocating - this memory using @c free. - - -The demangling is performed using the C++ ABI mangling rules, with -GNU extensions. For example, this function is used -in __gnu_cxx::__verbose_terminate_handler. See -http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#5 for other -examples of use. - -@note The same demangling functionality is available via libiberty -(@c <libiberty/demangle.h> and @c libiberty.a) in GCC 3.1 and later, but that -requires explicit installation (@c --enable-install-libiberty) and uses a -different API, although the ABI is unchanged. -*/ -char* __cxa_demangle (const char* mangled_name, char* output_buffer, - size_t* length, int* status); -} // namespace abi - -// // // // // // // // // // // // // // // // // // // // // // // // -/** @addtogroup binarysearch Binary search algorithms -These algorithms are variations of a classic binary search. They all assume -that the sequence being searched is already sorted. - -The number of comparisons will be logarithmic (and as few as possible). -The number of steps through the sequence will be logarithmic for -random-access iterators (e.g., pointers), and linear otherwise. - -The LWG has passed Defect Report 270, which notes: <em>The proposed -resolution reinterprets binary search. Instead of thinking about searching -for a value in a sorted range, we view that as an important special -case of a more general algorithm: searching for the partition point in a -partitioned range. We also add a guarantee that the old wording did not: -we ensure that the upper bound is no earlier than the lower bound, that -the pair returned by equal_range is a valid range, and that the first part -of that pair is the lower bound.</em> - -The actual effect of the first sentence is that a comparison functor -passed by the user doesn't necessarily need to induce a strict weak ordering -relation. Rather, it partitions the range. -*/ - -// // // // // // // // // // // // // // // // // // // // // // // // -/** @addtogroup setoperations Set operation algorithms -These algorithms are common set operations performed on sequences that are -already sorted. - -The number of comparisons will be linear. -*/ +All unordered associative containers must meet certain requirements, +summarized in <a href="tables.html">tables</a>. */ // // // // // // // // // // // // // // // // // // // // // // // // - -// // // // // // // // // // // // // // // // // // // // // // // // -/* * @addtogroup groupname description of group +/* * @defgroup groupname description of group placeholder text */ // // // // // // // // // // // // // // // // // // // // // // // // - -// vim:et:noai: - |