mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 08:34:42 +08:00
ffe94f8380
2002-01-28 Phil Edwards <pme@gcc.gnu.org> * Makefile.am (doxygen, doxygen-maint, doxygen-man): Tweak targets. * Makefile.in: Regenerate. * docs/doxygen/run_doxygen: Update, mostly for man pages. * docs/doxygen/Intro.3: Update. * docs/doxygen/TODO: Update. * docs/doxygen/doxygroups.cc: Add namespace hook for __gnu_cxx. * docs/doxygen/mainpage.doxy: Update. * docs/doxygen/user.cfg.in: Update for header rename. Also regenerate comments and variables with 1.2.12. * docs/doxygen/maint.cfg.in: Remove file. * include/bits/stl_relops.h: Doxygenate. * include/bits/stl_tempbuf.h (std::_Temporary_buffer): Likewise. * include/c_std/std_cassert.h, include/c_std/std_cctype.h, include/c_std/std_cerrno.h, include/c_std/std_cfloat.h, include/c_std/std_ciso646.h, include/c_std/std_climits.h, include/c_std/std_clocale.h, include/c_std/std_cmath.h, include/c_std/std_csetjmp.h, include/c_std/std_csignal.h, include/c_std/std_cstdarg.h, include/c_std/std_cstddef.h, include/c_std/std_cstdio.h, include/c_std/std_cstdlib.h, include/c_std/std_cstring.h, include/c_std/std_ctime.h, include/c_std/std_cwchar.h, include/c_std/std_cwctype.h, include/ext/algorithm, include/ext/functional, include/ext/hash_map, include/ext/hash_set, include/ext/iterator, include/ext/memory, include/ext/numeric, include/ext/rb_tree, include/ext/rope, include/ext/ropeimpl.h, include/ext/slist, include/ext/stl_hash_fun.h, include/ext/stl_hashtable.h, include/ext/stl_rope.h, include/std/std_algorithm.h, include/std/std_bitset.h, include/std/std_complex.h, include/std/std_deque.h, include/std/std_fstream.h, include/std/std_functional.h, include/std/std_iomanip.h, include/std/std_ios.h, include/std/std_iosfwd.h, include/std/std_iostream.h, include/std/std_istream.h, include/std/std_iterator.h, include/std/std_limits.h, include/std/std_list.h, include/std/std_locale.h, include/std/std_map.h, include/std/std_memory.h, include/std/std_numeric.h, include/std/std_ostream.h, include/std/std_queue.h, include/std/std_set.h, include/std/std_sstream.h, include/std/std_stack.h, include/std/std_stdexcept.h, include/std/std_streambuf.h, include/std/std_string.h, include/std/std_utility.h, include/std/std_valarray.h, include/std/std_vector.h: Add/correct @file doxygen hook. * include/ext/memory: Doxygenate most of rest of file. * libsupc++/exception: Doxygen output formatting. * libsupc++/new: Say which header it is. * testsuite/lib/libstdc++-v3-dg.exp: Fix spacing. * docs/html/19_diagnostics/howto.html: Describe concept-checks switch. * docs/html/23_containers/howto.html: Describe O(n) list::size(). * docs/html/27_io/howto.html: Also link to Langer and Kreft text. From-SVN: r49300
103 lines
4.3 KiB
C++
103 lines
4.3 KiB
C++
|
|
/*
|
|
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.
|
|
Pieces separated by '// //' lines will usually not be presented to the
|
|
user on the same page.
|
|
*/
|
|
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
/** @namespace std
|
|
* @brief Everything defined by the ISO C++ Standard is within namespace std.
|
|
*/
|
|
/** @namespace __gnu_cxx
|
|
* @brief Non-standard things.
|
|
*
|
|
* This namespace is used for
|
|
* - sequestering internal (implementation-only) names away from the
|
|
* global namespace
|
|
* - GNU extensions
|
|
*
|
|
* This is still fluid and changing rapidly.
|
|
*/
|
|
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
/** @addtogroup SGIextensions STL extensions from SGI
|
|
Because libstdc++-v3 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>
|
|
*/
|
|
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
// 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
|
|
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. They would be listed here
|
|
except I'm not certain how much of 14882 can be reproduced without a
|
|
copyright violation. Reproducing Tables 65 through 69 is a lot of typing...
|
|
|
|
The standard containers are further refined into
|
|
@link Sequences Sequences@endlink and
|
|
@link Assoc_containers Associative Containers@endlink.
|
|
*/
|
|
|
|
/** @addtogroup Sequences Sequences
|
|
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.
|
|
*/
|
|
|
|
/** @addtogroup Assoc_containers Associative 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.
|
|
*/
|
|
|
|
// // // // // // // // // // // // // // // // // // // // // // // //
|
|
|