5b9daa7e60
2009-02-20 Benjamin Kosnik <bkoz@redhat.com> * doc/doxygen/user.cfg.in: Tweaks. * doc/doxygen/doxygroups.cc: Prefer markup that can be elsewhere, be elsewhere. * include/tr1_impl/unordered_map: Just use most specialized container module. * include/tr1_impl/unordered_set: Same. * include/tr1_impl/array: Same. * include/bits/stl_list.h: Same. * include/bits/stl_map.h: Same. * include/bits/stl_queue.h: Same. * include/bits/stl_set.h: Same. * include/bits/stl_stack.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_bvector.h: Same. * include/backward/binders.h: Change binder module to binders. * include/std/complex: Add complex_numers module. * include/tr1_impl/complex: Same. * include/std/valarray: Add numeric_arrays module. * include/bits/gslice_array.h: Same. * include/bits/gslice.h: Same. * include/bits/mask_array.h: Same. * include/bits/slice_array.h: Same. * include/bits/indirect_array.h: Same. * include/bits/allocator.h: Add allocators module. * include/ext/throw_allocator.h * include/ext/pool_allocator.h * include/ext/bitmap_allocator.h * include/ext/new_allocator.h * include/ext/malloc_allocator.h * include/ext/array_allocator.h * include/ext/mt_allocator.h * include/ext/debug_allocator.h * include/ext/extptr_allocator.h * include/tr1_impl/functional: Move namespace markup here. * include/tr1_impl/regex: Same. * include/tr1_impl/type_traits: Add metaprogramming module. * include/std/type_traits: Same. * include/std/memory: Add memory module. * include/std/ratio: Add ratio module. * include/std/chrono: Move namespace markup here, add time module. * include/std/thread: Move namespace markup here, add concurrency module. * include/std/mutex: Use concurrency module. * include/std/condition_variable: Same. * include/bits/ios_base.h: Refine io module. * include/bits/basic_ios.h: Same. * include/std/fstream: Same. * include/std/istream: Same. * include/std/ostream: Same. * include/std/sstream: Same. * include/ext/vstring.h: Correct parameter markup. * include/bits/shared_ptr.h: Add pointer_abstractions module. * include/bits/unique_ptr.h: Same. * include/bits/algorithmfwd.h: Add mutating_algorithms, non_mutating_algorithms, sorting_algorithms. Adjust nesting. * include/bits/stl_heap.h: Add markup for new groupings. * include/bits/stl_algobase.h: Same. * include/bits/stl_algo.h: Same. * include/c_compatibility/stdatomic.h: Add atomics module. * include/c_global/cstdatomic: Same. * libsupc++/exception: Add exceptions module. * libsupc++/typeinfo: Same. * libsupc++/new: Same. * libsupc++/exception_ptr.h: Same. * include/std/system_error: Same. * include/std/stdexcept: Same. * libsupc++/cxxabi.h: Move doxygroups.cc markup here. * libsupc++/cxxabi-forced.h: Same. * testsuite/27_io/ios_base/cons/assign_neg.cc: Fix up line numbers. * testsuite/27_io/ios_base/cons/copy_neg.cc: Same. * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc: Same. * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc: Same. * testsuite/30_threads/mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/mutex/cons/copy_neg.cc: Same. * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Same. * testsuite/30_threads/thread/cons/assign_neg.cc: Same. * testsuite/30_threads/thread/cons/copy_neg.cc: Same. * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Same. * testsuite/30_threads/condition_variable/cons/assign_neg.cc: Same. * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Same. * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: Same. * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: Same. * testsuite/29_atomics/atomic/cons/assign_neg.cc: Same. * testsuite/29_atomics/atomic/cons/copy_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_1_neg.cc: Same. * testsuite/23_containers/list/requirements/dr438/ constructor_2_neg.cc: Same. * testsuite/20_util/duration/cons/1_neg.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same. * testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Same. * testsuite/20_util/unique_ptr/assign/assign.cc: Same. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. * testsuite/20_util/ratio/cons/cons_overflow.cc: Same. * testsuite/20_util/ratio/operations/ops_overflow.cc: Same. From-SVN: r144343
159 lines
5.8 KiB
C++
159 lines
5.8 KiB
C++
/*
|
|
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
|
|
source headers themselves. It is a ".cc" file for the sole cheesy reason
|
|
that it triggers many different text editors into doing Nice Things when
|
|
typing comments. However, it is mentioned nowhere except the *cfg.in files.
|
|
|
|
Some actual code (declarations) is exposed here, but no compiler ever
|
|
sees it. The decls must be visible to doxygen, and sometimes their real
|
|
declarations are not visible, or not visible in a way we want.
|
|
|
|
Pieces separated by '// //' lines will usually not be presented to the
|
|
user on the same page.
|
|
*/
|
|
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
/** @namespace std
|
|
* @brief ISO C++ entities toplevel namespace is std.
|
|
*/
|
|
/** @namespace std::__detail
|
|
* @brief Implementation details not part of the namespace std interface.
|
|
*/
|
|
/** @namespace std::tr1
|
|
* @brief ISO C++ TR1 entities toplevel namespace is std::tr1.
|
|
*/
|
|
/** @namespace std::tr1::__detail
|
|
* @brief Implementation details not part of the namespace std::tr1 interface.
|
|
*/
|
|
/** @namespace __gnu_cxx
|
|
* @brief GNU extensions for public use.
|
|
*/
|
|
/** @namespace __gnu_cxx::__detail
|
|
* @brief Implementation details not part of the namespace __gnu_cxx
|
|
* interface.
|
|
*/
|
|
/** @namespace __gnu_internal
|
|
* @brief GNU implemenation details, not for public use or
|
|
* export. Used only when anonymous namespaces cannot be substituted.
|
|
*/
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
|
|
/**
|
|
* @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.
|
|
|
|
They are additionally documented in the
|
|
<a href="http://gcc.gnu.org/onlinedocs/libstdc++/documentation.html">
|
|
online documentation</a>, a copy of which is also shipped with the
|
|
library source code (in .../docs/html/documentation.html). You can also
|
|
read the documentation <a href="http://www.sgi.com/tech/stl/">on SGI's
|
|
site</a>, which is still running even though the code is not maintained.
|
|
|
|
<strong>NB</strong> that the following notes are pulled from various
|
|
comments all over the place, so they may seem stilted.
|
|
<hr>
|
|
*/
|
|
|
|
/** @defgroup containers Containers
|
|
Containers are collections of objects.
|
|
|
|
A container may hold any type which meets certain requirements, but the type
|
|
of contained object is chosen at compile time, and all objects in a given
|
|
container must be of the same type. (Polymorphism is possible by declaring a
|
|
container of pointers to a base class and then populating it with pointers to
|
|
instances of derived classes. Variant value types such as the @c any class
|
|
from <a href="http://www.boost.org/">Boost</a> can also be used.
|
|
|
|
All contained types must be @c Assignable and @c CopyConstructible.
|
|
Specific containers may place additional requirements on the types of
|
|
their contained objects.
|
|
|
|
Containers manage memory allocation and deallocation themselves when
|
|
storing your objects. The objects are destroyed when the container is
|
|
itself destroyed. Note that if you are storing pointers in a container,
|
|
@c delete is @e not automatically called on the pointers before destroying them.
|
|
|
|
All containers must meet certain requirements, summarized in
|
|
<a href="tables.html">tables</a>.
|
|
|
|
The standard containers are further refined into
|
|
@link sequences Sequences@endlink and
|
|
@link associative_containers Associative Containers@endlink.
|
|
@link unordered_associative_containers Unordered Associative Containers@endlink.
|
|
*/
|
|
|
|
/** @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
|
|
following:
|
|
- memory management
|
|
- algorithmic complexity
|
|
|
|
As an example of the first case, @c vector is required to use a contiguous
|
|
memory layout, while other sequences such as @c deque are not.
|
|
|
|
The prime reason for choosing one sequence over another should be based on
|
|
the second category of differences, algorithmic complexity. For example, if
|
|
you need to perform many inserts and removals from the middle of a sequence,
|
|
@c list would be ideal. But if you need to perform constant-time access to
|
|
random elements of the sequence, then @c list should not be used.
|
|
|
|
All sequences must meet certain requirements, summarized in
|
|
<a href="tables.html">tables</a>.
|
|
*/
|
|
|
|
/** @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.
|
|
|
|
All associative containers must meet certain requirements, summarized in
|
|
<a href="tables.html">tables</a>.
|
|
*/
|
|
|
|
/** @defgroup unordered_associative_containers Unordered Associative Containers
|
|
* @ingroup containers
|
|
Unordered associative containers allow fast retrieval of data based on keys.
|
|
|
|
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.
|
|
|
|
All unordered associative containers must meet certain requirements,
|
|
summarized in <a href="tables.html">tables</a>. */
|
|
|
|
/**
|
|
* @defgroup diagnostics Diagnostics
|
|
*
|
|
* Components for error handling, reporting, and diagnostic operations.
|
|
*/
|
|
|
|
/**
|
|
* @defgroup concurrency Concurrency
|
|
*
|
|
* Components for concurrent operations, including threads, mutexes,
|
|
* and condition variables.
|
|
*/
|
|
|
|
/**
|
|
* @defgroup pointer_abstractions Pointer Abstractions
|
|
* @ingroup memory
|
|
*
|
|
* Components for memory allocation, deallocation, and management.
|
|
*/
|