Intro.3: Date tweak.

2002-03-27  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/Intro.3:  Date tweak.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/doxygroups.cc:  Point to tables.html.
	* docs/doxygen/mainpage.html:  Date tweak.
	* docs/doxygen/run_doxygen:  Version tweak.  Copy tables.html over.
	* docs/doxygen/tables.html:  Fill in the blanks.

	* docs/doxygen/user.cfg.in (ALIASES):  Remove maint and endmaint.
	* include/bits/stl_algo.h:  Likewise; use expanded form.
	* include/bits/stl_alloc.h:  Likewise.
	* include/bits/stl_construct.h:  Likewise.
	* include/bits/stl_deque.h:  Likewise.
	* include/bits/stl_iterator_base_types.h:  Likewise.
	* include/bits/stl_list.h:  Likewise.
	* include/bits/stl_relops.h:  Likewise.
	* include/bits/stl_tempbuf.h:  Likewise.
	* include/bits/stl_vector.h:  Likewise.
	* include/std/std_memory.h:  Likewise.

	* include/bits/stl_deque.h:  Point into tables.html and add @ingroup.
	* include/bits/stl_list.h:  Likewise.
	* include/bits/stl_vector.h:  Likewise.

From-SVN: r51471
This commit is contained in:
Phil Edwards 2002-03-27 21:41:36 +00:00
parent 8a12f34cfc
commit 04b7c941e9
18 changed files with 763 additions and 343 deletions

View File

@ -1,3 +1,28 @@
2002-03-27 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/Intro.3: Date tweak.
* docs/doxygen/TODO: Update.
* docs/doxygen/doxygroups.cc: Point to tables.html.
* docs/doxygen/mainpage.html: Date tweak.
* docs/doxygen/run_doxygen: Version tweak. Copy tables.html over.
* docs/doxygen/tables.html: Fill in the blanks.
* docs/doxygen/user.cfg.in (ALIASES): Remove maint and endmaint.
* include/bits/stl_algo.h: Likewise; use expanded form.
* include/bits/stl_alloc.h: Likewise.
* include/bits/stl_construct.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_iterator_base_types.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_relops.h: Likewise.
* include/bits/stl_tempbuf.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/std/std_memory.h: Likewise.
* include/bits/stl_deque.h: Point into tables.html and add @ingroup.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_vector.h: Likewise.
2002-03-26 Benjamin Kosnik <bkoz@redhat.com>
* include/c/: Guard with _CPP_.
@ -5,7 +30,7 @@
* include/Makefile.am: Fixup install, link routines for null
c_base_headers_extra scenarios.
* include/Makefile.in: Regerate.
2002-03-25 Paolo Carlini <pcarlini@unitus.it>
Richard Henderson <rth@redhat.com>
@ -29,11 +54,11 @@
2002-03-25 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
* config/locale/gnu/messages_members.h: Correct conditional.
* config/locale/gnu/messages_members.cc: Same.
* config/locale/gnu/time_members.cc: Same.
2002-03-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Paolo Carlini <pcarlini@unitus.it>
@ -58,15 +83,15 @@
* include/c/*: Formatting tweaks, cleanups.
* include/c_std/*: Same.
2002-03-22 Benjamin Kosnik <bkoz@redhat.com>
* config/locale/gnu/messages_members.h: Add __uselocale bits.
* config/locale/gnu/messages_members.cc: Same.
* config/locale/gnu/time_members.cc: Same.
2002-03-22 Benjamin Kosnik <bkoz@redhat.com>
* src/vterminate.cc: Format, -fno-exceptions cleanup.
2002-03-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
@ -102,11 +127,11 @@
--enable-libunwind-exceptions is set.
* configure.in (GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS): Call new
macro to check for libunwind.
* configure: Regenerate.
* configure: Regenerate.
* src/Makefile.am (libstdc___la_LDFLAGS): Add
LIBUNWIND_FLAG to libstdc link line.
* src/Makefile.in: Regenerate.
2002-03-19 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/faq/index.html: Add OS X workaround.
@ -137,7 +162,7 @@
hash_multimap are in namespace __gnu_cxx.
include/backward/hash_set.h: hash, hashtable, hash_set and
hash_multiset are in namespace __gnu_cxx.
include/backward/hashtable.h: hash and hashtable are in
include/backward/hashtable.h: hash and hashtable are in
namespace __gnu_cxx.
include/backward/rope.h: char_producer, sequence_buffer,
rope, crope and wrope are in namespace __gnu_cxx.
@ -180,7 +205,7 @@
2002-03-12 Benjamin Kosnik <bkoz@redhat.com>
Per Liboriussen <liborius@stofanet.dk>
* config/os/gnu-linux/bits/ctype_noninline.h: Cast to
unsigned char.
* config/os/gnu-linux/bits/ctype_inline.h: Same.
@ -197,7 +222,7 @@
* config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same.
* testsuite/22_locale/ctype_members_char.cc (main): Add tests.
2002-03-12 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/basic_string.tcc (string::_S_construct(_InIter,
@ -206,7 +231,7 @@
* testsuite/21_strings/ctor_copy_dtor.cc (test01): Re-enable, now
that memory limits are in place.
(test03): Add tests.
2002-03-11 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Check for wctype.h.
@ -319,7 +344,7 @@
* messages_members_ieee_1003.1-200x.cc: Move to...
* ieee_1003.1-2001/messages_members.cc
* messages_members_ieee_1003.1-200x.h: Move to...
* ieee_1003.1-2001/messages_members.h
* ieee_1003.1-2001/messages_members.h
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Make consistent.
* aclocal.m4: Regenerate.
@ -343,7 +368,7 @@
* src/limits.cc: Add definitions.
* config/linker-map.gnu: Add __numeric_limits_base.
* testsuite/18_support/numeric_limits.cc: Declare test in scope.
2002-03-07 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/stl_alloc.h: Add extern implicit allocator
@ -368,9 +393,9 @@
(__stl_threshold): _M_threshold, enum.
* src/stl-inst.cc: Same.
* config/linker-map.gnu: Remove.
* testsuite/23_containers/vector_bool.cc: New.
2002-03-06 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/user.cfg.in: Also document deprecated entries.
@ -433,7 +458,7 @@
2002-03-04 Craig Rodrigues <rodrigc@gcc.gnu.org>
* docs/html/17_intro/porting-howto.xml: Refer to
* docs/html/17_intro/porting-howto.xml: Refer to
http://www.oasis-open.org for docbookx.dtd.
* docs/html/17_intro/porting-howto.html: Regenerated.
@ -482,7 +507,7 @@
* include/bits/basic_ios.h (basic_ios::_M_fill): Make mutable.
(basic_ios::_M_fill_init): New.
(basic_ios::fill()): Delay dealing with _M_fill.
Adjust comment.
Adjust comment.
* ios.cc (ios_base::ios_base()): Initialize _M_callbacks, _M_words.
(ios_base::_M_call_callbacks): Adjust.
* testsuite/27_io/ios_init.cc (test02): Adjust testcase.
@ -535,7 +560,7 @@
* configure.in (target_alias): Default to yes.
* acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Add check for shared
libgcc to default case.
libgcc to default case.
2002-02-20 Phil Edwards <pme@gcc.gnu.org>
@ -548,19 +573,19 @@
2002-02-20 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/22_locale/money_put_members_char.cc: Fix.
* testsuite/22_locale/money_put_members_char.cc: Fix.
* testsuite/22_locale/money_put_members_wchar_t.cc: Fix.
* testsuite/27_io/standard_manipulators.cc: New file.
* testsuite/27_io/ios_manip_basefield.cc: Check results, now failing.
* testsuite/27_io/ios_manip_fmtflags.cc: Use locale::classic().
2002-02-20 Danny Smith <dannysmith@users.sourceforge.net>
* config/os/mingw32/bits/ctype_noninline.h
(ctype<char>::ctype): Remove default args from parm list.
* config/os/djgpp/bits/ctype_noninline.h: Same.
* config/os/djgpp/bits/ctype_noninline.h: Same.
2002-02-19 Benjamin Kosnik <bkoz@redhat.com>
@ -573,7 +598,7 @@
* testsuite/22_locale/money_get_members_wchar_t.cc (test07): Same.
2002-02-19 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Export global vtable, typeinfo, guard
variable, and thunk info as per CXXABI docs.
@ -612,7 +637,7 @@
2002-02-16 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.tcc: Add pragma GCC system_header.
* include/bits/locale_facets.tcc: Add pragma GCC system_header.
* include/bits/fstream.tcc: Same.
* include/bits/sstream.tcc: Same.
* include/bits/ostream.tcc: Same.
@ -631,7 +656,7 @@
* src/locale.cc (moneypunct_byname): Remove definitions.
* include/std/std_streambuf.h (streambuf::operator=): Return.
2002-02-15 Benjamin Kosnik <bkoz@redhat.com>
Tune for size.
@ -655,7 +680,7 @@
Add iomanip instantiations for wide streams.
* include/std/std_iomanip.h: Same.
* include/bits/locale_facets.tcc: Same.
* include/std/std_streambuf.h: Correct
_GLIBCPP_FULLY_COMPLIANT_HEADERS guard.
* include/std/std_sstream.h: Same.
@ -672,7 +697,7 @@
* include/bits/basic_ios.h (basic_ios::clear): Don't inline.
* include/bits/basic_ios.tcc (basic_ios::clear): Move definition here.
2002-02-14 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Change tag from GCC_3.1 to GLIBCPP_3.1.
@ -708,7 +733,7 @@
2002-02-11 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/stl_algo (__stl_threshold): Declare external.
* include/bits/stl_algo (__stl_threshold): Declare external.
(__stl_chunk_size): Same.
* include/bits/stl_bvector.h (__WORD_BIT): Same.
* include/bits/stl_tree.h (_S_rb_tree_red): Same.
@ -718,12 +743,12 @@
(__WORD_BIT): Same.
(_S_rb_tree_red): Same.
(_S_rb_tree_black): Same.
* config/io/basic_file_libio.h (__basic_file): Add declarations.
* include/bits/basic_file.h: Remove.
* config/io/c_io_stdio.h: Remove _GLIBCPP_BASIC_FILE_ENCAPSULATION
Declare generic types, specialization.
* config/io/basic_file_stdio.cc: Definitions.
* config/io/basic_file_stdio.cc: Definitions.
* config/io/c_io_libio.h: Remove _GLIBCPP_BASIC_FILE_INHERITANCE.
Declare generic types.
* include/Makefile.am (bits_headers): Remove basic_file.h.
@ -731,14 +756,14 @@
(stamp-target): Same.
* include/bits/stl_alloc.h: Tweaks.
* include/bits/localefwd.h: Same.
* include/bits/localefwd.h: Same.
2002-02-11 Aaron W LaFramboise <AWLaFramboise@aol.com>
* include/bits/locale_facets.tcc (collate::do_hash): Fix.
* testsuite/22_locale/collate_members_char.cc (test03): New test.
* testsuite/22_locale/collate_members_wchar_t.cc (test03): Same.
2002-02-10 Phil Edwards <pme@gcc.gnu.org>
* include/bits/stl_algo.h (transform (both signatures), generate_n):
@ -763,7 +788,7 @@
* include/bits/fstream.tcc (filebuf::underflow): Remove
__codecvt_type typedef.
(filebuf::_M_convert_to_external): Same.
2002-02-08 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/TODO: Update.
@ -793,7 +818,7 @@
codecvt bits for wide streams.
(filebuf::_M_really_overflow): Use it.
(filebuf::underflow): Use codecvt.
* config/locale/codecvt_specializations_ieee_1003.1-200x.h:
* config/locale/codecvt_specializations_ieee_1003.1-200x.h:
(codecvt<__enc_traits>::do_out): Deal with partial.
(codecvt<__enc_traits>::do_encoding): Return something useful.
* src/codecvt.cc (codecvt<wchar_t>::do_encoding): Return sizeof
@ -806,7 +831,7 @@
2002-02-07 Benjamin Kosnik <bkoz@redhat.com>
Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de>
* include/bits/basic_ios.tcc (basic_ios::narrow): Add default value.
(basic_ios::widen): Same.
@ -903,7 +928,7 @@
* include/std/std_streambuf.h: Tweak.
* include/bits/streambuf.tcc: Same.
* include/bits/sstream.tcc: Same.
* include/bits/fstream.tcc: Same.
* include/bits/fstream.tcc: Same.
2002-01-31 Loren Rittle <ljrittle@acm.org>
@ -940,7 +965,7 @@
* docs/html/17_intro/RELEASE-NOTES: Update.
* docs/html/17_intro/TODO: Update.
* README (file): Update.
2002-01-30 Loren Rittle <ljrittle@acm.org>
* config/locale/c_locale_generic.cc: Check errno for ERANGE
@ -1068,20 +1093,20 @@
2002-01-24 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/27_io/ostream_inserter_char.cc (test07): New.
* testsuite/27_io/ostream_inserter_char.cc (test07): New.
2002-01-24 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/basic_ios.h (basic_ios::_M_check_facet): Make
const, tweak.
(basic_ios::fill(char_type)): Use fill().
(basic_ios::fill(char_type)): Use fill().
* include/bits/basic_ios.tcc (basic_ios::widen): Use _M_check_facet.
(basic_ios::narrow): Same.
(basic_ios::_M_cache_facets): Explicitly set cached facets to zero
if they are invalid.
(basic_ios::init): Comment.
* testsuite/27_io/ios_init.cc (test02): New.
2002-01-24 Phil Edwards <pme@gcc.gnu.org>
* include/bits/stl_tempbuf.h (_Temporary_buffer): Add doxygen hook.
@ -1134,7 +1159,7 @@
* aclocal.m4: Regenerate.
* configure: Regenerate.
* config.h.in: Regenerate.
2002-01-23 Loren Rittle <ljrittle@acm.org>
* testsuite/thread/pthread1.cc: New test.
@ -1162,7 +1187,7 @@
* include/bits/locale_facets.tcc (__convert_to_v): Change template
parameter to _Tv.
(__convert_from_v): Same.
2002-01-23 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h (num_get::_M_extract_int): Change
@ -1183,7 +1208,7 @@
* docs/html/22_locale/messages.html: Remove angle brackets.
* docs/html/17_intro/TODO: Add.
2002-01-22 Paolo Carlini <pcarlini@unitus.it>
* testsuite/27_io/ios_manip_basefield.cc: Enable test02.
@ -1202,13 +1227,13 @@
(num_put::_M_convert_float): Use.
(num_put::_M_convert_int): Same.
(money_put::do_put): Same.
* src/locale-inst.cc: Add instantiations for __convert_from_v.
* config/locale/time_members_gnu.cc: Cleanup setlocale usage.
* config/locale/time_members_generic.cc:
* config/locale/time_members_generic.cc:
* config/locale/messages_members_gnu.cc: Same.
* config/locale/messages_members_gnu.h: Same.
* testsuite/22_locale/codecvt_members_wchar_t_char.cc (test02): New.
* testsuite/22_locale/codecvt_members_char_char.cc (test02): New.
* testsuite/22_locale/collate_members_wchar_t.cc (test02): New.
@ -1236,7 +1261,7 @@
* testsuite/22_locale/time_get_members_char.cc: Fixups for global
locale issues.
* testsuite/22_locale/time_get_members_char.cc: Same.
2002-01-22 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/5280
@ -1254,7 +1279,7 @@
(num_get::do_get(unsigned long long)): Same.
* config/locale/c_locale_gnu.cc (__convert_to_v): Specialize.
* config/locale/c_locale_generic.cc: Same.
2002-01-22 Loren Rittle <ljrittle@acm.org>
* include/Makefile.am (c_base_builddir): Remove redundant slash.
@ -1318,7 +1343,7 @@
limiting is only attempted if _GLIBCPP_MEM_LIMIT is defined.
2002-01-17 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* testsuite/22_locale/ctor_copy_dtor.cc: Remove check.
2002-01-17 David Edelsohn <edelsohn@gnu.org>
@ -1340,7 +1365,7 @@
SECTION_LDFLAGS and OPT_LDFLAGS. Fix ac_sectionLDflags type.
* aclocal.m4: Regenerate.
* configure: Regenerate.
2002-01-16 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am (c_base_headers_rename): New.
@ -1357,23 +1382,23 @@
cstdio ctime cwctype]: Move to..
* include/c_std/std_*: Here.
Alexandre Oliva <aoliva@redhat.com>
Alexandre Oliva <aoliva@redhat.com>
* include/Makefile.am (.PRECIOUS): Add rule.
* include/Makefile.in: Regenerate.
2002-01-16 Benjamin Kosnik <bkoz@redhat.com>
Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de>
* include/bits/stl_iterator.h (reverse_iterator::_M_current):
Deuglify, should be current.
(back_insert_iterator::_M_container): Deuglify, should be container.
(front_insert_iterator::_M_container): Same.
(front_insert_iterator::_M_container): Same.
(insert_iterator::_M_container): Same.
* testsuite/24_iterators/reverse_iterator.cc: Add check.
* testsuite/24_iterators/back_insert_iterator.cc: Add check.
* testsuite/24_iterators/back_insert_iterator.cc: Add check.
* testsuite/24_iterators/front_insert_iterator.cc: Same.
* testsuite/24_iterators/insert_iterator.cc: Same.
2002-01-16 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h (ctype<char>::classic_table): Make
@ -1391,14 +1416,14 @@
* config/os/bsd/netbsd/bits/ctype_noninline.h: Same.
* config/os/bsd/freebsd/bits/ctype_noninline.h: Same.
* config/os/aix/bits/ctype_noninline.h: Same.
Testcase by Dietmar Kühl via Peter Schmid
Testcase by Dietmar Kühl via Peter Schmid
* testsuite/22_locale/ctype_members_char.cc (char>): Add test for
classic_table().
2002-01-16 Benjamin Kosnik <bkoz@redhat.com>
* libmath/signbitl.c: Copyright years as list, not range.
* libmath/signbitl.c: Copyright years as list, not range.
* libmath/Makefile.am: Same.
* libmath/Makefie.in: Regenerate.
* libmath/signbit.c: Same.
@ -1446,7 +1471,7 @@
* testsuite/22_locale/num_put_members_wchar_t.cc (test02): Same.
* testsuite/22_locale/num_put_members_char.cc (test01): Tweak.
* testsuite/22_locale/ctype_members_char.cc: Tweak.
* testsuite/22_locale/ctype_members_char.cc: Tweak.
2002-01-15 Benjamin Kosnik <bkoz@redhat.com>
@ -1457,7 +1482,7 @@
* testsuite/22_locale/num_get_members_char.cc (test02): Add
long double, void, bool types.
* testsuite/22_locale/num_get_members_wchar_t.cc (test02): Add.
2002-01-15 Benjamin Kosnik <bkoz@redhat.com>
Alexandre Oliva <aoliva@redhat.com>
@ -1505,20 +1530,20 @@
* include/bits/basic_string.h (insert(__pos, __s, __n)):
Adjust comparison wrt overflow.
2002-01-12 Benjamin Kosnik <bkoz@redhat.com>
* include/Makefile.am (std_headers_rename): New variable.
(install-data-local): Use it.
* include/Makefile.in: Regenerate.
2002-01-12 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.tcc (money_put::do_put(string):
Correct output iterator value.
* testsuite/22_locale/money_put_members_char.cc (test03): Add.
* testsuite/22_locale/money_put_members_wchar_t.cc: Same.
2002-01-11 Phil Edwards <pme@gcc.gnu.org>
* include/Makefile.am, include/Makefile.in (stamp-std): Fix typo from
@ -1576,7 +1601,7 @@
* testsuite/22_locale/money_get_members_char.cc (test02): Add
iterator checks.
* testsuite/22_locale/money_get_members_wchar_t.cc: Same.
2002-01-10 David Seymour <seymour_dj@yahoo.com>
libstdc++/5331
@ -1616,7 +1641,7 @@
* include/Makefile.am (c_base_srcdir): Remove duplicate '/'.
* include/Makefile.in: Regenerate.
2002-01-09 Bo Thorsen <bo@suse.co.uk>
* config/cpu/x86-64/bits/cpu_limits.h (__glibcpp_long_bits): Add
@ -1634,9 +1659,9 @@
2002-01-08 John Fardo <jfardo@laurelnetworks.com>
Brad Garcia <garsh@attbi.com>
* testsuite/27_io/filebuf_members.cc: Add test.
2002-01-07 Benjamin Kosnik <bkoz@redhat.com>
Craig Rodrigues <rodrigc@mediaone.net>
@ -1666,12 +1691,12 @@
(c_base_headers): Adjust names, add ciso646.
(bits_headers): Remove std_xxx.h headers.
* include/Makefile.in: Regenerate.
* include/ext/iterator: Adjust includes.
* include/ext/ropeimpl.h: Same.
* include/ext/stl_hash_fun.h: Same.
* include/ext/algorithm: Same.
* include/backward/bvector.h: Adjust includes.
* include/backward/vector.h: Same.
* include/backward/strstream: Same.
@ -1700,7 +1725,7 @@
std_queue.h, std_valarray.h, std_functional.h, std_limits.h,
std_set.h, std_vector.h, std_iomanip.h, std_list.h, std_sstream.h:
Same.
* include/c_std/bits/std_cassert.h: Move to...
* include/c_std/cassert: Here.
* include/c_std/std_cctype.h, std_cerrno.h, std_cfloat.h,
@ -1715,7 +1740,7 @@
* include/c_std/cstring: Same.
* include/c_std/cstdio: Same.
* include/c_std/bits: Remove directory.
* include/c/bits/std_cassert.h: Move to...
* include/c/cassert: Here.
* include/c/std_cctype.h, std_cerrno.h, std_cfloat.h,
@ -1724,7 +1749,7 @@
std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
std_cwctype.h: Same.
* include/c/bits: Remove directory.
* include/std/cwctype: Remove.
* include/std/cwchar: Remove.
* include/std/ctime: Remove.

View File

@ -1,6 +1,6 @@
.\" t
.\" This man page is released under the FDL as part of libstdc++-v3.
.TH Intro 3 "27 September 2001" "GNU libstdc++-v3" "Standard C++ Library"
.TH Intro 3 "27 March 2002" "GNU libstdc++-v3" "Standard C++ Library"
.SH NAME
Intro \- Introduction to the GNU libstdc++-v3 man pages
.SH DESCRIPTION
@ -48,7 +48,7 @@ SGIextensions A list of the extensions from the SGI STL subset.
Sequences Linear containers.
.TE
.P
The HTML documentation goes into more depth.
The HTML documentation typically goes into much more depth.
.SH FILES
Lots!
.SS Standard Headers

View File

@ -48,10 +48,10 @@ do not have the C code (to which the doxygen comments would be attached),
this would need to be done in entirely separate files, a la doxygroups.cc.
B) Huge chunks of containers and strings are described in common "Tables"
in the standard. These are being pseudo-duplicated in tables.html. We can
in the standard. These are pseudo-duplicated in tables.html. We can
use doxygen hooks like @pre and @see to reference the tables. Then the
individual classes would do like the standard does, and only document
members for which additional info is available.
individual classes do like the standard does, and only document members for
which additional info is available.
STYLE:

View File

@ -1,5 +1,8 @@
/*
Copyright (C) 2001, 2002 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
@ -67,9 +70,8 @@ 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...
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
@ -92,6 +94,9 @@ 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>.
*/
/** @addtogroup Assoc_containers Associative Containers
@ -99,6 +104,11 @@ 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>.
*/
// // // // // // // // // // // // // // // // // // // // // // // //

View File

@ -16,16 +16,16 @@
directly; it all gets run through Doxygen and re-output.) So lots of
tags were all being mangled.
Funk 'dat. Now we let Doxygen do whateer it feels like doing for the
Funk 'dat. Now we let Doxygen do whatever it feels like doing for the
index page, and then we just flat copy this over top of it. Voila!
Tags actually work like they're supposed to.
Tags actually work like they're supposed to in HTML.
-->
<h1>libstdc++-v3 Source Documentation</h1>
<h2> Documentation Overview </h2>
<p class="smallertext">Generated 2002-02-08.</p>
<p class="smallertext">Generated 2002-03-27.</p>
<p>There are two types of documentation for libstdc++-v3. One is the
distribution documentation, which can be read online at
@ -122,8 +122,8 @@ href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/C++STYLE">C++STYLE</a>.
Hewlett-Packard Company
</blockquote>
</p>
<p>Part of the generated documentation is quoted from the C++ standard, which
is copyright 1998 by Information Technology Industry Council.
<p>Part of the generated documentation is quoted from the ISO C++ Standard,
which is Copyright &copy; 1998 by Information Technology Industry Council.
</p>
</body>

View File

@ -1,6 +1,7 @@
#!/bin/sh
# Runs doxygen and massages the output files.
# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
#
# Synopsis: run_doxygen --mode=[user|maint|man] v3srcdir v3builddir
#
@ -8,7 +9,7 @@
# We can check now that the version of doxygen is >= this variable.
DOXYVER=1.2.12
DOXYVER=1.2.14
doxygen=
find_doxygen() {
@ -147,6 +148,7 @@ set +e
test $do_html = yes && {
cp ${srcdir}/docs/doxygen/mainpage.html ${outdir}/html_${mode}/index.html
cp ${srcdir}/docs/doxygen/tables.html ${outdir}/html_${mode}/tables.html
echo ::
echo :: HTML pages begin with
echo :: ${outdir}/html_${mode}/index.html
@ -185,7 +187,8 @@ mv iterator_tags.3 Iterator_types.3
find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
rm -f *.h.3 *config* *.cc.3 *.tcc.3
rm -f *_t.3 # workaround doxygen template parsing bug for now
#mkdir trash # this is used to examine what we would have deleted
# 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
#mv *.h.3 *config* *.cc.3 *.tcc.3 *_t.3 trash

View File

@ -6,27 +6,40 @@
</head>
<body bgcolor="#ffffff">
<!--
Tables can be jumped to with their number, e.g., "tables.html#67".
-->
<h1>Tables</h1>
<p>Most of the requirements on containers are presented in the ISO standard
in the form of tables. In order to avoid massive duplication of effort,
we follow the standard's lead and present the information here.
Individual classes will only document their departures from these tables
(removed functions, additional functions, changes, etc).
in the form of tables. In order to avoid massive duplication of effort
while documenting all the classes, we follow the standard's lead and
present the base information here. Individual classes will only document
their departures from these tables (removed functions, additional functions,
changes, etc).
</p>
<p>The numbers are the same as those used in the standard.
<p>We will not try to duplicate all of the surrounding text (footnotes,
explanations, etc) from the standard, because that would also entail a
duplication of effort. Some of the surrounding text has been paraphrased
here for clarity. If you are uncertain about the meaning or interpretation
of these notes, consult a good textbook, and/or purchase your own copy of
the standard (it's cheap, see our FAQ).
</p>
<p>The table numbers are the same as those used in the standard. Tables can
be jumped to using their number, e.g., &quot;tables.html#67&quot;. Only
Tables 65 through 69 are presented. Some of the active Defect Reports
are also noted or incorporated.
</p>
<p class="smallertext">This will probably be incomplete for a while because
filling out the tables is mind-frothingly boring. Also, the HTML table
rendering is ugly. (Update: mozilla 0.9.9 looks MUCH better.)</p>
<hr />
<a name="65"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
cols="3" title="Table 65">
cols="4" title="Table 65">
<caption><h2>Table 65 --- Container Requirements</h2></caption>
<tr><th colspan="4">
Anything calling itself a container must meet these minimum requirements.
@ -34,82 +47,240 @@ Anything calling itself a container must meet these minimum requirements.
<tr>
<td><strong>expression</strong></td>
<td><strong>result type</strong></td>
<td><strong>notes</strong></td>
<td><strong>notes, pre-/post-conditions, assertions</strong></td>
<td><strong>complexity</strong></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::value_type</td>
<td>T</td>
<td>T is Assignable</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::reference</td>
<td>lvalue of T</td>
<td>&nbsp;</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::const_reference</td>
<td>const lvalue of T</td>
<td>&nbsp;</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::iterator</td>
<td>iterator type pointing to T</td>
<td>Any iterator category except output iterator.
Convertible to X::const_iterator.</td>
<td>compile time</td>
</tr>
<tr>
<td>X::const_iterator</td>
<td>iterator type pointing to const T</td>
<td>Any iterator category except output iterator.</td>
<td>compile time</td>
</tr>
<tr>
<td>X::difference_type</td>
<td>signed integral type</td>
<td>identical to the difference type of X::iterator and X::const_iterator</td>
<td>compile time</td>
</tr>
<tr>
<td>X::size_type</td>
<td>unsigned integral type</td>
<td>size_type can represent any non-negative value of difference_type</td>
<td>compile time</td>
</tr>
<tr>
<td>X u;</td>
<td>&nbsp;</td>
<td>post: u.size() == 0</td>
<td>constant</td>
</tr>
<tr>
<td>X();</td>
<td>&nbsp;</td>
<td>X().size == 0</td>
<td>constant</td>
</tr>
<tr>
<td>X(a);</td>
<td>&nbsp;</td>
<td>a == X(a)</td>
<td>linear</td>
</tr>
<tr>
<td>X u(a);<br />X u = a;</td>
<td>&nbsp;</td>
<td>post: u == a. Equivalent to: X u; u = a;</td>
<td>linear</td>
</tr>
<tr>
<td>(&amp;a)-&gt;~X();</td>
<td>void</td>
<td>dtor is applied to every element of a; all the memory is deallocated</td>
<td>linear</td>
</tr>
<tr>
<td>a.begin()</td>
<td>iterator; const_iterator for constant a</td>
<td>&nbsp;</td>
<td>constant</td>
</tr>
<tr>
<td>a.end()</td>
<td>iterator; const_iterator for constant a</td>
<td>&nbsp;</td>
<td>constant</td>
</tr>
<tr>
<td>a == b</td>
<td>convertible to bool</td>
<td>== is an equivalence relation. a.size()==b.size() &amp;&amp;
equal(a.begin(),a.end(),b.begin())</td>
<td>linear</td>
</tr>
<tr>
<td>a != b</td>
<td>convertible to bool</td>
<td>equivalent to !(a==b)</td>
<td>linear</td>
</tr>
<tr>
<td>a.swap(b)</td>
<td>void</td>
<td>swap(a,b)</td>
<td>may or may not have constant complexity</td>
</tr>
<tr>
<td>r = a</td>
<td>X&amp;</td>
<td>r == a</td>
<td>linear</td>
</tr>
<!-- a fifth column, "operation semantics," magically appears in the table
at this point... wtf? -->
<tr>
<td>a.size()</td>
<td>size_type</td>
<!--<td>a.end() - a.begin()</td>-->
<td>&nbsp;</td>
<td>may or may not have constant complexity</td>
</tr>
<tr>
<td>a.max_size()</td>
<td>size_type</td>
<!--<td>size() of the largest possible container</td>-->
<td>&nbsp;</td>
<td>may or may not have constant complexity</td>
</tr>
<tr>
<td>a.empty()</td>
<td>convertible to bool</td>
<!--<td>a.size() == 0</td>-->
<td>&nbsp;</td>
<td>constant</td>
</tr>
<tr>
<td>a &lt; b</td>
<td>convertible to bool</td>
<!--<td>lexographical_compare(a.begin,a.end(),b.begin(),b.end())</td>-->
<td>pre: &lt; is defined for T and is a total ordering relation</td>
<td>linear</td>
</tr>
<tr>
<td>a &gt; b</td>
<td>convertible to bool</td>
<!--<td>b &lt; a</td>-->
<td>&nbsp;</td>
<td>linear</td>
</tr>
<tr>
<td>a &lt;= b</td>
<td>convertible to bool</td>
<!--<td>!(a &gt; b)</td>-->
<td>&nbsp;</td>
<td>linear</td>
</tr>
<tr>
<td>a &gt;= b</td>
<td>convertible to bool</td>
<!--<td>!(a &lt; b)</td>-->
<td>&nbsp;</td>
<td>linear</td>
</tr>
</table title="Table 65"></p></a>
<a name="66"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
cols="3" title="Table 66">
cols="4" title="Table 66">
<caption><h2>Table 66 --- Reversible Container Requirements</h2></caption>
<tr><th colspan="4">
If a container's iterator is bidirectional or random-access, then the
container also meets these requirements.
Foo, bar, and baz are such containers.
Deque, list, vector, map, multimap, set, and multiset are such containers.
</th></tr>
<tr>
<td><strong>expression</strong></td>
<td><strong>result type</strong></td>
<td><strong>notes</strong></td>
<td><strong>notes, pre-/post-conditions, assertions</strong></td>
<td><strong>complexity</strong></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::reverse_iterator</td>
<td>iterator type pointing to T</td>
<td>reverse_iterator&lt;iterator&gt;</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::const_reverse_iterator</td>
<td>iterator type pointing to const T</td>
<td>reverse_iterator&lt;const_iterator&gt;</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.rbegin()</td>
<td>reverse_iterator; const_reverse_iterator for constant a</td>
<td>reverse_iterator(end())</td>
<td>constant</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.rend()</td>
<td>reverse_iterator; const_reverse_iterator for constant a</td>
<td>reverse_iterator(begin())</td>
<td>constant</td>
</tr>
</table title="Table 66"></p></a>
@ -118,133 +289,330 @@ Foo, bar, and baz are such containers.
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
cols="3" title="Table 67">
<caption><h2>Table 67 --- Sequence Requirements</h2></caption>
<tr><th colspan="4">
<tr><th colspan="3">
These are in addition to the requirements of <a href="#65">containers</a>.
Foo, bar, and baz are such containers.
Deque, list, and vector are such containers.
</th></tr>
<tr>
<td><strong>expression</strong></td>
<td><strong>result type</strong></td>
<td><strong>notes</strong></td>
<td><strong>complexity</strong></td>
<td><strong>notes, pre-/post-conditions, assertions</strong></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X(n,t)<br />X a(n,t)</td>
<td>&nbsp;</td>
<td>constructs a sequence with n copies of t<br />post: size() == n</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X(i,j)<br />X a(i,j)</td>
<td>&nbsp;</td>
<td>constructs a sequence equal to the range [i,j)<br />
post: size() == distance(i,j)</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.insert(p,t)</td>
<td>iterator (points to the inserted copy of t)</td>
<td>inserts a copy of t before p</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.insert(p,n,t)</td>
<td>void</td>
<td>inserts n copies of t before p</td>
</tr>
<tr>
<td>a.insert(p,i,j)</td>
<td>void</td>
<td>inserts copies of elements in [i,j) before p<br />
pre: i, j are not iterators into a</td>
</tr>
<tr>
<td>a.erase(q)</td>
<td>iterator (points to the element following q (prior to erasure))</td>
<td>erases the element pointed to by q</td>
</tr>
<tr>
<td>a.erase(q1,q1)</td>
<td>iterator (points to the element pointed to by q2 (prior to erasure))</td>
<td>erases the elements in the range [q1,q2)</td>
</tr>
<tr>
<td>a.clear()</td>
<td>void</td>
<td>erase(begin(),end())<br />post: size() == 0</td>
</tr>
</table title="Table 67"></p></a>
<a name="68"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
cols="3" title="Table 68">
cols="4" title="Table 68">
<caption><h2>Table 68 --- Optional Sequence Operations</h2></caption>
<tr><th colspan="4">
These operations are only included in containers when the operation can be
done in constant time.
Foo, bar, and baz are such containers.
</th></tr>
<tr>
<td><strong>expression</strong></td>
<td><strong>result type</strong></td>
<td><strong>notes</strong></td>
<td><strong>complexity</strong></td>
<td><strong>operational semantics</strong></td>
<td><strong>container</strong></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.front()</td>
<td>reference; const_reference for constant a</td>
<td>*a.begin()</td>
<td>vector, list, deque</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.back()</td>
<td>reference; const_reference for constant a</td>
<td>*--a.end()</td>
<td>vector, list, deque</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.push_front(x)</td>
<td>void</td>
<td>a.insert(a.begin(),x)</td>
<td>list, deque</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>a.push_back(x)</td>
<td>void</td>
<td>a.insert(a.end(),x)</td>
<td>vector, list, deque</td>
</tr>
<tr>
<td>a.pop_front()</td>
<td>void</td>
<td>a.erase(a.begin())</td>
<td>list, deque</td>
</tr>
<tr>
<td>a.pop_back()</td>
<td>void</td>
<td>a.erase(--a.end())</td>
<td>vector, list, deque</td>
</tr>
<tr>
<td>a[n]</td>
<td>reference; const_reference for constant a</td>
<td>*(a.begin() + n)</td>
<td>vector, deque</td>
</tr>
<tr>
<td>a.at(n)</td>
<td>reference; const_reference for constant a</td>
<td>*(a.begin() + n)<br />throws out_of_range if n&gt;=a.size()</td>
<td>vector, deque</td>
</tr>
</table title="Table 68"></p></a>
<a name="69"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
cols="3" title="Table 69">
cols="4" title="Table 69">
<caption><h2>Table 69 --- Associative Container Requirements</h2></caption>
<tr><th colspan="4">
These are in addition to the requirements of <a href="#65">containers</a>.
Map, multimap, set, and multiset are such containers. An associative
container supports <em>unique keys</em> (and is written as
<code>a_uniq</code> instead of <code>a</code>) if it may contain at most
one element for each key. Otherwise it supports <em>equivalent keys</em>
(and is written <code>a_eq</code>). Examples of the former are set and map,
examples of the latter are multiset and multimap.
</th></tr>
<tr>
<td><strong>expression</strong></td>
<td><strong>result type</strong></td>
<td><strong>notes</strong></td>
<td><strong>notes, pre-/post-conditions, assertions</strong></td>
<td><strong>complexity</strong></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::key_type</td>
<td>Key</td>
<td>Key is Assignable</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::key_compare</td>
<td>Compare</td>
<td>defaults to less&lt;key_type&gt;</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X::value_compare</td>
<td>a binary predicate type</td>
<td>same as key_compare for set and multiset; an ordering relation on
pairs induced by the first component (Key) for map and multimap</td>
<td>compile time</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>X(c)<br />X a(c)</td>
<td>&nbsp;</td>
<td>constructs an empty container which uses c as a comparison object</td>
<td>constant</td>
</tr>
<tr>
<td>X()<br />X a</td>
<td>&nbsp;</td>
<td>constructs an empty container using Compare() as a comparison object</td>
<td>constant</td>
</tr>
<tr>
<td>X(i,j,c)<br />X a(i,j,c)</td>
<td>&nbsp;</td>
<td>constructs an empty container and inserts elements from the range [i,j)
into it; uses c as a comparison object</td>
<td>NlogN in general where N is distance(i,j); linear if [i,j) is
sorted with value_comp()</td>
</tr>
<tr>
<td>X(i,j)<br />X a(i,j)</td>
<td>&nbsp;</td>
<td>same as previous, but uses Compare() as a comparison object</td>
<td>same as previous</td>
</tr>
<tr>
<td>a.key_comp()</td>
<td>X::key_compare</td>
<td>returns the comparison object out of which a was constructed</td>
<td>constant</td>
</tr>
<tr>
<td>a.value_comp()</td>
<td>X::value_compare</td>
<td>returns an object constructed out of the comparison object</td>
<td>constant</td>
</tr>
<tr>
<td>a_uniq.insert(t)</td>
<td>pair&lt;iterator,bool&gt;</td>
<td>&quot;Inserts t if and only if there is no element in the container with
key equivalent to the key of t. The bool component of the returned pair
is true -iff- the insertion took place, and the iterator component of
the pair points to the element with key equivalent to the key of
t.&quot;</td> <!-- DR 316 -->
<td>logarithmic</td>
</tr>
<tr>
<td>a_eq.insert(t)</td>
<td>iterator</td>
<td>inserts t, returns the iterator pointing to the inserted element</td>
<td>logarithmic</td>
</tr>
<tr>
<td>a.insert(p,t)</td>
<td>iterator</td>
<td>possibly inserts t (depending on whether a_uniq or a_eq); returns iterator
pointing to the element with key equivalent to the key of t; iterator p
is a hint pointing to where the insert should start to search</td>
<td>logarithmic in general, amortized constant if t is inserted right
after p<br />
<strong>[but see DR 233 and <a href="
http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4">our
specific notes</a>]</strong></td>
</tr>
<tr>
<td>a.insert(i,j)</td>
<td>void</td>
<td>pre: i, j are not iterators into a. possibly inserts each element from
the range [i,j) (depending on whether a_uniq or a_eq)</td>
<td>Nlog(size()+N) where N is distance(i,j) in general</td> <!-- DR 264 -->
</tr>
<tr>
<td>a.erase(k)</td>
<td>size_type</td>
<td>erases all elements with key equivalent to k; returns number of erased
elements</td>
<td>log(size()) + count(k)</td>
</tr>
<tr>
<td>a.erase(q)</td>
<td>void</td>
<td>erases the element pointed to by q</td>
<td>amortized constant</td>
</tr>
<tr>
<td>a.erase(q1,q2)</td>
<td>void</td>
<td>erases all the elements in the range [q1,q2)</td>
<td>log(size()) + distance(q1,q2)</td>
</tr>
<tr>
<td>a.clear()</td>
<td>void</td>
<td>erases everthing; post: size() == 0</td>
<td>linear</td> <!-- DR 224 -->
</tr>
<tr>
<td>a.find(k)</td>
<td>iterator; const_iterator for constant a</td>
<td>returns iterator pointing to element with key equivalent to k, or
a.end() if no such element found</td>
<td>logarithmic</td>
</tr>
<tr>
<td>a.count(k)</td>
<td>size_type</td>
<td>returns number of elements with key equivalent to k</td>
<td>log(size()) + count(k)</td>
</tr>
<tr>
<td>a.lower_bound(k)</td>
<td>iterator; const_iterator for constant a</td>
<td>returns iterator pointing to the first element with key not less than k</td>
<td>logarithmic</td>
</tr>
<tr>
<td>a.upper_bound(k)</td>
<td>iterator; const_iterator for constant a</td>
<td>returns iterator pointing to the first element with key greater than k</td>
<td>logarithmic</td>
</tr>
<tr>
<td>a.equal_range(k)</td>
<td>pair&lt;iterator,iterator&gt;;
pair&lt;const_iterator, const_iterator&gt; for constant a</td>
<td>equivalent to make_pair(a.lower_bound(k), a.upper_bound(k))</td>
<td>logarithmic</td>
</tr>
</table title="Table 69"></p></a>
@ -252,6 +620,8 @@ These are in addition to the requirements of <a href="#65">containers</a>.
<hr />
<p class="smallertext"><em>
See <a href="mainpage.html">mainpage.html</a> for copying conditions.
See <a href="http://gcc.gnu.org/libstdc++/">the libstdc++-v3 homepage</a>
for more information.
</em></p>

View File

@ -222,9 +222,7 @@ GENERATE_BUGLIST = YES
# will result in a user defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
ALIASES = "maint=@if maint" \
"endmaint=@endif" \
"doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more."
ALIASES = "doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more."
# The ENABLED_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.

View File

@ -159,9 +159,9 @@ namespace std
}
/**
* @maint
* @if maint
* This is an overload used by find() for the Input Iterator case.
* @endmaint
* @endif
*/
template<typename _InputIter, typename _Tp>
inline _InputIter
@ -175,9 +175,9 @@ namespace std
}
/**
* @maint
* @if maint
* This is an overload used by find_if() for the Input Iterator case.
* @endmaint
* @endif
*/
template<typename _InputIter, typename _Predicate>
inline _InputIter
@ -191,9 +191,9 @@ namespace std
}
/**
* @maint
* @if maint
* This is an overload used by find() for the RAI case.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Tp>
_RandomAccessIter
@ -235,9 +235,9 @@ namespace std
}
/**
* @maint
* @if maint
* This is an overload used by find_if() for the RAI case.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Predicate>
_RandomAccessIter
@ -1087,10 +1087,10 @@ namespace std
}
/**
* @maint
* @if maint
* This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter)
* overloaded for output iterators.
* @endmaint
* @endif
*/
template<typename _InputIter, typename _OutputIter>
_OutputIter
@ -1110,10 +1110,10 @@ namespace std
}
/**
* @maint
* @if maint
* This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter)
* overloaded for forward iterators.
* @endmaint
* @endif
*/
template<typename _InputIter, typename _ForwardIter>
_ForwardIter
@ -1159,11 +1159,11 @@ namespace std
}
/**
* @maint
* @if maint
* This is an uglified
* unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate)
* overloaded for output iterators.
* @endmaint
* @endif
*/
template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate>
_OutputIter
@ -1188,11 +1188,11 @@ namespace std
}
/**
* @maint
* @if maint
* This is an uglified
* unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate)
* overloaded for forward iterators.
* @endmaint
* @endif
*/
template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate>
_ForwardIter
@ -1301,10 +1301,10 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is an uglified reverse(_BidirectionalIter, _BidirectionalIter)
* overloaded for bidirectional iterators.
* @endmaint
* @endif
*/
template<typename _BidirectionalIter>
void
@ -1319,10 +1319,10 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is an uglified reverse(_BidirectionalIter, _BidirectionalIter)
* overloaded for bidirectional iterators.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter>
void
@ -1389,9 +1389,9 @@ __result, __binary_pred, _IterType());
/**
* @maint
* @if maint
* This is a helper function for the rotate algorithm specialized on RAIs.
* @endmaint
* @endif
*/
template<typename _EuclideanRingElement>
_EuclideanRingElement
@ -1406,9 +1406,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the rotate algorithm.
* @endmaint
* @endif
*/
template<typename _ForwardIter>
void
@ -1439,9 +1439,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the rotate algorithm.
* @endmaint
* @endif
*/
template<typename _BidirectionalIter>
void
@ -1472,9 +1472,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the rotate algorithm.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter>
void
@ -1582,13 +1582,13 @@ __result, __binary_pred, _IterType());
/**
* @maint
* @if maint
* Return a random number in the range [0, __n). This function encapsulates
* whether we're using rand (part of the standard C library) or lrand48
* (not standard, but a much better choice whenever it's available).
*
* XXX There is no corresponding encapsulation fn to seed the generator.
* @endmaint
* @endif
*/
template<typename _Distance>
inline _Distance
@ -1648,9 +1648,9 @@ __result, __binary_pred, _IterType());
/**
* @maint
* @if maint
* This is a helper function...
* @endmaint
* @endif
*/
template<typename _ForwardIter, typename _Predicate>
_ForwardIter
@ -1675,9 +1675,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function...
* @endmaint
* @endif
*/
template<typename _BidirectionalIter, typename _Predicate>
_BidirectionalIter
@ -1730,9 +1730,9 @@ __result, __binary_pred, _IterType());
/**
* @maint
* @if maint
* This is a helper function...
* @endmaint
* @endif
*/
template<typename _ForwardIter, typename _Predicate, typename _Distance>
_ForwardIter
@ -1755,9 +1755,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function...
* @endmaint
* @endif
*/
template<typename _ForwardIter, typename _Pointer, typename _Predicate,
typename _Distance>
@ -1837,9 +1837,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function...
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Tp>
_RandomAccessIter
@ -1860,9 +1860,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function...
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Tp, typename _Compare>
_RandomAccessIter
@ -1884,17 +1884,17 @@ __result, __binary_pred, _IterType());
/**
* @maint
* @if maint
* @doctodo
* This controls some aspect of the sort routines.
* @endmaint
* @endif
*/
enum { _M_threshold = 16 };
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Tp>
void
@ -1911,9 +1911,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Tp, typename _Compare>
void
@ -1930,9 +1930,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter>
void
@ -1953,9 +1953,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Compare>
void
@ -1977,9 +1977,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter>
inline void
@ -1992,9 +1992,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Compare>
inline void
@ -2008,9 +2008,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter>
void
@ -2025,9 +2025,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Compare>
void
@ -2043,9 +2043,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _Size>
inline _Size
@ -2057,9 +2057,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Size>
void
@ -2085,9 +2085,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the sort routine.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Size, typename _Compare>
void
@ -2166,9 +2166,9 @@ __result, __binary_pred, _IterType());
/**
* @maint
* @if maint
* This is a helper function for the stable sorting routines.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter>
void
@ -2187,9 +2187,9 @@ __result, __binary_pred, _IterType());
}
/**
* @maint
* @if maint
* This is a helper function for the stable sorting routines.
* @endmaint
* @endif
*/
template<typename _RandomAccessIter, typename _Compare>
void

View File

@ -50,7 +50,7 @@
/**
* @defgroup Allocators Memory Allocators
* @maint
* @if maint
* stl_alloc.h implements some node allocators. These are NOT the same as
* allocators in the C++ standard, nor in the original H-P STL. They do not
* encapsulate different pointer types; we assume that there is only one
@ -72,7 +72,7 @@
*
* "SGI" allocators may be wrapped in __allocator to convert the interface
* into a "standard" one.
* @endmaint
* @endif
*
* The canonical description of these classes is in docs/html/ext/howto.html
* or online at http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html#3
@ -88,11 +88,11 @@
namespace std
{
/**
* @maint
* @if maint
* A new-based allocator, as required by the standard. Allocation and
* deallocation forward to global new and delete. "SGI" style, minus
* reallocate().
* @endmaint
* @endif
* (See @link Allocators allocators info @endlink for more.)
*/
class __new_alloc
@ -109,13 +109,13 @@ namespace std
/**
* @maint
* @if maint
* A malloc-based allocator. Typically slower than the
* __default_alloc_template (below). Typically thread-safe and more
* storage efficient. The template argument is unused and is only present
* to permit multiple instantiations (but see __default_alloc_template
* for caveats). "SGI" style, plus __set_malloc_handler for OOM conditions.
* @endmaint
* @endif
* (See @link Allocators allocators info @endlink for more.)
*/
template <int __inst>
@ -207,13 +207,13 @@ namespace std
/**
* @maint
* @if maint
* This is used primarily (only?) in _Alloc_traits and other places to
* help provide the _Alloc_type typedef.
*
* This is neither "standard"-conforming nor "SGI". The _Alloc parameter
* must be "SGI" style.
* @endmaint
* @endif
* (See @link Allocators allocators info @endlink for more.)
*/
template<class _Tp, class _Alloc>
@ -235,7 +235,7 @@ namespace std
/**
* @maint
* @if maint
* An adaptor for an underlying allocator (_Alloc) to check the size
* arguments for debugging. Errors are reported using assert; these
* checks can be disabled via NDEBUG, but the space penalty is still
@ -245,7 +245,7 @@ namespace std
* "There is some evidence that this can confuse Purify." - SGI comment
*
* This adaptor is "SGI" style. The _Alloc parameter must also be "SGI".
* @endmaint
* @endif
* (See @link Allocators allocators info @endlink for more.)
*/
template <class _Alloc>
@ -293,7 +293,7 @@ typedef __mem_interface __single_client_alloc;
/**
* @maint
* @if maint
* Default node allocator. "SGI" style. Uses __mem_interface for its
* underlying requests (and makes as few requests as possible).
* **** Currently __mem_interface is always __new_alloc, never __malloc*.
@ -318,7 +318,7 @@ typedef __mem_interface __single_client_alloc;
* approach. If you do not wish to share the free lists with the main
* default_alloc instance, instantiate this with a non-zero __inst.
*
* @endmaint
* @endif
* (See @link Allocators allocators info @endlink for more.)
*/
template<bool __threads, int __inst>
@ -682,14 +682,14 @@ inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&)
/**
* @maint
* @if maint
* Allocator adaptor to turn an "SGI" style allocator (e.g., __alloc,
* __malloc_alloc_template) into a "standard" conforming allocator. Note
* that this adaptor does *not* assume that all objects of the underlying
* alloc class are identical, nor does it assume that all of the underlying
* alloc's member functions are static member functions. Note, also, that
* __allocator<_Tp, __alloc> is essentially the same thing as allocator<_Tp>.
* @endmaint
* @endif
* (See @link Allocators allocators info @endlink for more.)
*/
template <class _Tp, class _Alloc>
@ -800,7 +800,7 @@ inline bool operator!=(const __debug_alloc<_Alloc>&,
/**
* @maint
* @if maint
* Another allocator adaptor: _Alloc_traits. This serves two purposes.
* First, make it possible to write containers that can use either "SGI"
* style allocators or "standard" allocators. Second, provide a mechanism
@ -832,7 +832,7 @@ inline bool operator!=(const __debug_alloc<_Alloc>&,
* The size_t parameters are "standard" style (see top of stl_alloc.h) in
* that they take counts, not sizes.
*
* @endmaint
* @endif
* (See @link Allocators allocators info @endlink for more.)
*/
//@{

View File

@ -1,6 +1,6 @@
// nonstandard construct and destroy functions -*- C++ -*-
// Copyright (C) 2001 Free Software Foundation, Inc.
// Copyright (C) 2001, 2002 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
@ -67,10 +67,10 @@
namespace std
{
/**
* @maint
* @if maint
* Constructs an object in existing memory by invoking an allocated
* object's constructor with an initializer.
* @endmaint
* @endif
*/
template <class _T1, class _T2>
inline void
@ -78,10 +78,10 @@ namespace std
{ new (static_cast<void*>(__p)) _T1(__value); }
/**
* @maint
* @if maint
* Constructs an object in existing memory by invoking an allocated
* object's default constructor (no initializers).
* @endmaint
* @endif
*/
template <class _T1>
inline void
@ -89,11 +89,11 @@ namespace std
{ new (static_cast<void*>(__p)) _T1(); }
/**
* @maint
* @if maint
* Destroy a range of objects with nontrivial destructors.
*
* This is a helper function used only by _Destroy().
* @endmaint
* @endif
*/
template <class _ForwardIterator>
inline void
@ -101,13 +101,13 @@ namespace std
{ for ( ; __first != __last; ++__first) _Destroy(&*__first); }
/**
* @maint
* @if maint
* Destroy a range of objects with trivial destructors. Since the destructors
* are trivial, there's nothing to do and hopefully this function will be
* entirely optimized away.
*
* This is a helper function used only by _Destroy().
* @endmaint
* @endif
*/
template <class _ForwardIterator>
inline void
@ -115,9 +115,9 @@ namespace std
{ }
/**
* @maint
* @if maint
* Destroy the object pointed to by a pointer type.
* @endmaint
* @endif
*/
template <class _Tp>
inline void
@ -125,11 +125,11 @@ namespace std
{ __pointer->~_Tp(); }
/**
* @maint
* @if maint
* Destroy a range of objects. If the value_type of the object has
* a trivial destructor, the compiler should optimize all of this
* away, otherwise the objects' destructors must be invoked.
* @endmaint
* @endif
*/
template <class _ForwardIterator>
inline void
@ -146,6 +146,3 @@ namespace std
#endif /* _CPP_BITS_STL_CONSTRUCT_H */
// Local Variables:
// mode:C++
// End:

View File

@ -1,6 +1,6 @@
// deque implementation -*- C++ -*-
// Copyright (C) 2001 Free Software Foundation, Inc.
// Copyright (C) 2001, 2002 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
@ -73,14 +73,14 @@ namespace std
{
/**
* @maint
* @if maint
* @brief This function controls the size of memory nodes.
* @param size The size of an element.
* @return The number (not bytesize) of elements per node.
*
* This function started off as a compiler kludge from SGI, but seems to
* be a useful wrapper around a repeated constant expression.
* @endmaint
* @endif
*/
inline size_t
__deque_buf_size(size_t __size)
@ -94,9 +94,9 @@ __deque_buf_size(size_t __size)
* marking its valid range. Access to elements is done as offsets of either
* of those two, relying on operator overloading in this class.
*
* @maint
* @if maint
* All the functions are op overloads except for _M_set_node.
* @endmaint
* @endif
*/
template <class _Tp, class _Ref, class _Ptr>
struct _Deque_iterator
@ -204,11 +204,11 @@ struct _Deque_iterator
bool operator<=(const _Self& __x) const { return !(__x < *this); }
bool operator>=(const _Self& __x) const { return !(*this < __x); }
/** @maint
/** @if maint
* Prepares to traverse new_node. Sets everything except _M_cur, which
* should therefore be set by the caller immediately afterwards, based on
* _M_first and _M_last.
* @endmaint
* @endif
*/
void _M_set_node(_Map_pointer __new_node) {
_M_node = __new_node;
@ -225,16 +225,16 @@ operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x)
}
/// @maint Primary default version. @endmaint
/// @if maint Primary default version. @endif
/**
* @maint
* @if maint
* Deque base class. It has two purposes. First, its constructor
* and destructor allocate (but don't initialize) storage. This makes
* exception safety easier. Second, the base class encapsulates all of
* the differences between SGI-style allocators and standard-conforming
* allocators. There are two versions: this ordinary one, and the
* space-saving specialization for instanceless allocators.
* @endmaint
* @endif
*/
template <class _Tp, class _Alloc, bool __is_static>
class _Deque_alloc_base
@ -270,7 +270,7 @@ protected:
size_t _M_map_size;
};
/// Specialization for instanceless allocators.
/// @if maint Specialization for instanceless allocators. @endif
template <class _Tp, class _Alloc>
class _Deque_alloc_base<_Tp, _Alloc, true>
{
@ -301,14 +301,14 @@ protected:
/**
* @maint
* @if maint
* Deque base class. Using _Alloc_traits in the instantiation of the parent
* class provides the compile-time dispatching mentioned in the parent's docs.
* This class provides the unified face for deque's allocation.
*
* Nothing in this class ever constructs or destroys an actual Tp element.
* (Deque handles that itself.) Only/All memory management is performed here.
* @endmaint
* @endif
*/
template <class _Tp, class _Alloc>
class _Deque_base
@ -352,13 +352,13 @@ _Deque_base<_Tp,_Alloc>::~_Deque_base()
}
/**
* @maint
* @if maint
* @brief Layout storage.
* @param num_elements The count of T's for which to allocate space at first.
* @return Nothing.
*
* The initial underlying memory layout is a bit complicated...
* @endmaint
* @endif
*/
template <class _Tp, class _Alloc>
void
@ -415,6 +415,14 @@ _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
/**
* @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>, including the
* <a href="tables.html#68">optional sequence requirements</a>.
*
* Placeholder: see http://www.sgi.com/tech/stl/Deque.html for now.
*
* In previous HP/SGI versions of deque, there was an extra template parameter
@ -422,7 +430,7 @@ _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
* the C++ standard (it can be detected using template template parameters),
* and it was removed.
*
* @maint
* @if maint
* Here's how a deque<Tp> manages memory. Each deque has 4 members:
*
* - Tp** _M_map
@ -483,8 +491,7 @@ _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
* the implementation routines for deque itself work only through the start
* and finish iterators. This keeps the routines simple and sane, and we can
* use other standard algorithms as well.
*
* @endmaint
* @endif
*/
template <class _Tp, class _Alloc = allocator<_Tp> >
class deque : protected _Deque_base<_Tp, _Alloc>
@ -524,11 +531,11 @@ protected:
using _Base::_M_allocate_map;
using _Base::_M_deallocate_map;
/** @maint
/** @if maint
* A total of four data members accumulated down the heirarchy. If the
* _Alloc type requires separate instances, then two of them will also be
* included in each deque.
* @endmaint
* @endif
*/
using _Base::_M_map;
using _Base::_M_map_size;
@ -1035,7 +1042,7 @@ void deque<_Tp,_Alloc>::clear()
}
/**
* @maint
* @if maint
* @brief Fills the deque with copies of value.
* @param value Initial value.
* @return Nothing.
@ -1044,7 +1051,7 @@ void deque<_Tp,_Alloc>::clear()
*
* This function is called only when the user provides an explicit size (with
* or without an explicit exemplar value).
* @endmaint
* @endif
*/
template <class _Tp, class _Alloc>
void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __value)
@ -1063,7 +1070,7 @@ void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __value)
}
/** @{
* @maint
* @if maint
* @brief Fills the deque with whatever is in [first,last).
* @param first An input iterator.
* @param last An input iterator.
@ -1072,7 +1079,7 @@ void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __value)
* If the iterators are actually forward iterators (or better), then the
* memory layout can be done all at once. Else we move forward using
* push_back on each value from the iterator.
* @endmaint
* @endif
*/
template <class _Tp, class _Alloc> template <class _InputIterator>
void deque<_Tp,_Alloc>::_M_range_initialize(_InputIterator __first,
@ -1570,6 +1577,3 @@ inline void swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y) {
#endif /* __GLIBCPP_INTERNAL_DEQUE_H */
// Local Variables:
// mode:C++
// End:

View File

@ -146,10 +146,10 @@ namespace std
};
/**
* @maint
* @if maint
* This function is not a part of the C++ standard but is syntactic
* sugar for internal library use only.
* @endmaint
* @endif
*/
template<typename _Iter>
inline typename iterator_traits<_Iter>::iterator_category
@ -160,7 +160,3 @@ namespace std
#endif /* __GLIBCPP_INTERNAL_ITERATOR_BASE_TYPES_H */
// Local Variables:
// mode:C++
// End:

View File

@ -1,6 +1,6 @@
// List implementation -*- C++ -*-
// Copyright (C) 2001 Free Software Foundation, Inc.
// Copyright (C) 2001, 2002 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
@ -273,7 +273,19 @@ namespace std
void clear();
};
/**
* @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>, including the
* <a href="tables.html#68">optional sequence requirements</a> with the
* %exception of @c at and @c operator[].
*
* @doctodo
*
*/
template<typename _Tp, typename _Alloc = allocator<_Tp> >
class list : protected _List_base<_Tp, _Alloc>
{

View File

@ -57,7 +57,7 @@
* This is an internal header file, included by other library headers.
* You should not attempt to use it directly.
*
* @maint
* @if maint
* Inclusion of this file has been removed from
* all of the other STL headers for safety reasons, except std_utility.h.
* For more information, see the thread of about twenty messages starting
@ -65,7 +65,7 @@
* FAQ at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4 .
*
* Short summary: the rel_ops operators should be avoided for the present.
* @endmaint
* @endif
*/
#ifndef _CPP_BITS_STL_RELOPS_H

View File

@ -65,11 +65,11 @@ namespace std
{
/**
* @maint
* @if maint
* This class is used in two places: stl_algo.h and ext/memory, where it
* is wrapped as the temporary_buffer class. See temporary_buffer docs for
* more notes.
* @endmaint
* @endif
*/
template <class _ForwardIterator, class _Tp>
class _Temporary_buffer

View File

@ -1,6 +1,6 @@
// Vector implementation -*- C++ -*-
// Copyright (C) 2001 Free Software Foundation, Inc.
// Copyright (C) 2001, 2002 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
@ -148,6 +148,15 @@ struct _Vector_base
* @brief A standard container which offers fixed time access to individual
* elements in any order.
*
* @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>, including the
* <a href="tables.html#68">optional sequence requirements</a> with the
* %exception of @c push_front and @c pop_front.
*
* In some terminology a vector can be described as a dynamic C-style array,
* it offers fast and efficient access to individual elements in any order
* and saves the user from worrying about memory and size allocation.

View File

@ -62,10 +62,10 @@ namespace std
{
/**
* @maint
* @if maint
* This is a helper function. The unused second parameter exists to
* permit the real get_temporary_buffer to use template parameter deduction.
* @endmaint
* @endif
*/
template <class _Tp>
pair<_Tp*, ptrdiff_t>
@ -202,7 +202,3 @@ public:
#endif /* _CPP_MEMORY */
// Local Variables:
// mode:C++
// End: