From 04b7c941e90c9f6df2c35121b36264941ec28dd5 Mon Sep 17 00:00:00 2001
From: Phil Edwards
Date: Wed, 27 Mar 2002 21:41:36 +0000
Subject: [PATCH] Intro.3: Date tweak.
2002-03-27 Phil Edwards
* 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
---
libstdc++-v3/ChangeLog | 173 +++---
libstdc++-v3/docs/doxygen/Intro.3 | 4 +-
libstdc++-v3/docs/doxygen/TODO | 6 +-
libstdc++-v3/docs/doxygen/doxygroups.cc | 16 +-
libstdc++-v3/docs/doxygen/mainpage.html | 10 +-
libstdc++-v3/docs/doxygen/run_doxygen | 7 +-
libstdc++-v3/docs/doxygen/tables.html | 576 ++++++++++++++----
libstdc++-v3/docs/doxygen/user.cfg.in | 4 +-
libstdc++-v3/include/bits/stl_algo.h | 140 ++---
libstdc++-v3/include/bits/stl_alloc.h | 32 +-
libstdc++-v3/include/bits/stl_construct.h | 29 +-
libstdc++-v3/include/bits/stl_deque.h | 58 +-
.../include/bits/stl_iterator_base_types.h | 8 +-
libstdc++-v3/include/bits/stl_list.h | 16 +-
libstdc++-v3/include/bits/stl_relops.h | 4 +-
libstdc++-v3/include/bits/stl_tempbuf.h | 4 +-
libstdc++-v3/include/bits/stl_vector.h | 11 +-
libstdc++-v3/include/std/std_memory.h | 8 +-
18 files changed, 763 insertions(+), 343 deletions(-)
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4f06c2b1fbc..f7a7d8ee1b2 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,28 @@
+2002-03-27 Phil Edwards
+
+ * 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
* 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
Richard Henderson
@@ -29,11 +54,11 @@
2002-03-25 Benjamin Kosnik
Jakub Jelinek
-
+
* 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
Paolo Carlini
@@ -58,15 +83,15 @@
* include/c/*: Formatting tweaks, cleanups.
* include/c_std/*: Same.
-
+
2002-03-22 Benjamin Kosnik
* 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
-
+
* src/vterminate.cc: Format, -fno-exceptions cleanup.
2002-03-21 Rainer Orth
@@ -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
* 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
Per Liboriussen
-
+
* 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
* 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
* 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
* 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
* docs/doxygen/user.cfg.in: Also document deprecated entries.
@@ -433,7 +458,7 @@
2002-03-04 Craig Rodrigues
- * 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
@@ -548,19 +573,19 @@
2002-02-20 Benjamin Kosnik
- * 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
* config/os/mingw32/bits/ctype_noninline.h
(ctype::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
@@ -573,7 +598,7 @@
* testsuite/22_locale/money_get_members_wchar_t.cc (test07): Same.
2002-02-19 Benjamin Kosnik
-
+
* 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
- * 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
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
* config/linker-map.gnu: Change tag from GCC_3.1 to GLIBCPP_3.1.
@@ -708,7 +733,7 @@
2002-02-11 Benjamin Kosnik
- * 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
* 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
* 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
* 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::do_encoding): Return sizeof
@@ -806,7 +831,7 @@
2002-02-07 Benjamin Kosnik
Wolfgang Bangerth
-
+
* 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
@@ -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
* config/locale/c_locale_generic.cc: Check errno for ERANGE
@@ -1068,20 +1093,20 @@
2002-01-24 Benjamin Kosnik
- * testsuite/27_io/ostream_inserter_char.cc (test07): New.
-
+ * testsuite/27_io/ostream_inserter_char.cc (test07): New.
+
2002-01-24 Benjamin Kosnik
* 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
* 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
* 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
* 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
* 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
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
* 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
-
+
* testsuite/22_locale/ctor_copy_dtor.cc: Remove check.
2002-01-17 David Edelsohn
@@ -1340,7 +1365,7 @@
SECTION_LDFLAGS and OPT_LDFLAGS. Fix ac_sectionLDflags type.
* aclocal.m4: Regenerate.
* configure: Regenerate.
-
+
2002-01-16 Benjamin Kosnik
* include/Makefile.am (c_base_headers_rename): New.
@@ -1357,23 +1382,23 @@
cstdio ctime cwctype]: Move to..
* include/c_std/std_*: Here.
- Alexandre Oliva
+ Alexandre Oliva
* include/Makefile.am (.PRECIOUS): Add rule.
* include/Makefile.in: Regenerate.
-
+
2002-01-16 Benjamin Kosnik
Peter Schmid
-
+
* 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
* include/bits/locale_facets.h (ctype::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
- * 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
@@ -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
Alexandre Oliva
@@ -1505,20 +1530,20 @@
* include/bits/basic_string.h (insert(__pos, __s, __n)):
Adjust comparison wrt overflow.
-
+
2002-01-12 Benjamin Kosnik
* include/Makefile.am (std_headers_rename): New variable.
(install-data-local): Use it.
* include/Makefile.in: Regenerate.
-
+
2002-01-12 Benjamin Kosnik
* 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
* 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
libstdc++/5331
@@ -1616,7 +1641,7 @@
* include/Makefile.am (c_base_srcdir): Remove duplicate '/'.
* include/Makefile.in: Regenerate.
-
+
2002-01-09 Bo Thorsen
* config/cpu/x86-64/bits/cpu_limits.h (__glibcpp_long_bits): Add
@@ -1634,9 +1659,9 @@
2002-01-08 John Fardo
Brad Garcia
-
+
* testsuite/27_io/filebuf_members.cc: Add test.
-
+
2002-01-07 Benjamin Kosnik
Craig Rodrigues
@@ -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.
diff --git a/libstdc++-v3/docs/doxygen/Intro.3 b/libstdc++-v3/docs/doxygen/Intro.3
index 3e963aa9faa..fc44025c0c3 100644
--- a/libstdc++-v3/docs/doxygen/Intro.3
+++ b/libstdc++-v3/docs/doxygen/Intro.3
@@ -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
diff --git a/libstdc++-v3/docs/doxygen/TODO b/libstdc++-v3/docs/doxygen/TODO
index 375cd5fc785..662993396e2 100644
--- a/libstdc++-v3/docs/doxygen/TODO
+++ b/libstdc++-v3/docs/doxygen/TODO
@@ -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:
diff --git a/libstdc++-v3/docs/doxygen/doxygroups.cc b/libstdc++-v3/docs/doxygen/doxygroups.cc
index 8af04b1ea54..c6139f37547 100644
--- a/libstdc++-v3/docs/doxygen/doxygroups.cc
+++ b/libstdc++-v3/docs/doxygen/doxygroups.cc
@@ -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
+tables.
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
+tables.
*/
/** @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
+tables.
*/
// // // // // // // // // // // // // // // // // // // // // // // //
diff --git a/libstdc++-v3/docs/doxygen/mainpage.html b/libstdc++-v3/docs/doxygen/mainpage.html
index 88ea279331f..431344b972e 100644
--- a/libstdc++-v3/docs/doxygen/mainpage.html
+++ b/libstdc++-v3/docs/doxygen/mainpage.html
@@ -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.
-->
libstdc++-v3 Source Documentation
Documentation Overview
-Generated 2002-02-08.
+Generated 2002-03-27.
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.
Hewlett-Packard Company
-Part of the generated documentation is quoted from the C++ standard, which
- is copyright 1998 by Information Technology Industry Council.
+
Part of the generated documentation is quoted from the ISO C++ Standard,
+ which is Copyright © 1998 by Information Technology Industry Council.
-
Tables
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).
-The numbers are the same as those used in the standard.
+
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).
+The table numbers are the same as those used in the standard. Tables can
+ be jumped to using their number, e.g., "tables.html#67". Only
+ Tables 65 through 69 are presented. Some of the active Defect Reports
+ are also noted or incorporated.
+
+
+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.)
+
+ cols="4" title="Table 65">
Table 65 --- Container Requirements
Anything calling itself a container must meet these minimum requirements.
@@ -34,82 +47,240 @@ Anything calling itself a container must meet these minimum requirements.
|
---|
expression |
result type |
-notes |
+notes, pre-/post-conditions, assertions |
complexity |
- |
- |
- |
- |
+X::value_type |
+T |
+T is Assignable |
+compile time |
- |
- |
- |
- |
+X::reference |
+lvalue of T |
+ |
+compile time |
- |
- |
- |
- |
+X::const_reference |
+const lvalue of T |
+ |
+compile time |
- |
- |
- |
- |
+X::iterator |
+iterator type pointing to T |
+Any iterator category except output iterator.
+ Convertible to X::const_iterator. |
+compile time |
+
+
+
+X::const_iterator |
+iterator type pointing to const T |
+Any iterator category except output iterator. |
+compile time |
+
+
+
+X::difference_type |
+signed integral type |
+identical to the difference type of X::iterator and X::const_iterator |
+compile time |
+
+
+
+X::size_type |
+unsigned integral type |
+size_type can represent any non-negative value of difference_type |
+compile time |
+
+
+
+X u; |
+ |
+post: u.size() == 0 |
+constant |
+
+
+
+X(); |
+ |
+X().size == 0 |
+constant |
+
+
+
+X(a); |
+ |
+a == X(a) |
+linear |
+
+
+
+X u(a); X u = a; |
+ |
+post: u == a. Equivalent to: X u; u = a; |
+linear |
+
+
+
+(&a)->~X(); |
+void |
+dtor is applied to every element of a; all the memory is deallocated |
+linear |
+
+
+
+a.begin() |
+iterator; const_iterator for constant a |
+ |
+constant |
+
+
+
+a.end() |
+iterator; const_iterator for constant a |
+ |
+constant |
+
+
+
+a == b |
+convertible to bool |
+== is an equivalence relation. a.size()==b.size() &&
+ equal(a.begin(),a.end(),b.begin()) |
+linear |
+
+
+
+a != b |
+convertible to bool |
+equivalent to !(a==b) |
+linear |
+
+
+
+a.swap(b) |
+void |
+swap(a,b) |
+may or may not have constant complexity |
+
+
+
+r = a |
+X& |
+r == a |
+linear |
+
+
+
+
+a.size() |
+size_type |
+
+ |
+may or may not have constant complexity |
+
+
+
+a.max_size() |
+size_type |
+
+ |
+may or may not have constant complexity |
+
+
+
+a.empty() |
+convertible to bool |
+
+ |
+constant |
+
+
+
+a < b |
+convertible to bool |
+
+pre: < is defined for T and is a total ordering relation |
+linear |
+
+
+
+a > b |
+convertible to bool |
+
+ |
+linear |
+
+
+
+a <= b |
+convertible to bool |
+
+ |
+linear |
+
+
+
+a >= b |
+convertible to bool |
+
+ |
+linear |
+ cols="4" title="Table 66">
Table 66 --- Reversible Container Requirements
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.
|
expression |
result type |
-notes |
+notes, pre-/post-conditions, assertions |
complexity |
- |
- |
- |
- |
+X::reverse_iterator |
+iterator type pointing to T |
+reverse_iterator<iterator> |
+compile time |
- |
- |
- |
- |
+X::const_reverse_iterator |
+iterator type pointing to const T |
+reverse_iterator<const_iterator> |
+compile time |
- |
- |
- |
- |
+a.rbegin() |
+reverse_iterator; const_reverse_iterator for constant a |
+reverse_iterator(end()) |
+constant |
- |
- |
- |
- |
+a.rend() |
+reverse_iterator; const_reverse_iterator for constant a |
+reverse_iterator(begin()) |
+constant |
@@ -118,133 +289,330 @@ Foo, bar, and baz are such containers.
Table 67 --- Sequence Requirements
-
+ |
---|
These are in addition to the requirements of containers.
-Foo, bar, and baz are such containers.
+Deque, list, and vector are such containers.
|
expression |
result type |
-notes |
-complexity |
+notes, pre-/post-conditions, assertions |
- |
- |
- |
- |
+X(n,t) X a(n,t) |
+ |
+constructs a sequence with n copies of t post: size() == n |
- |
- |
- |
- |
+X(i,j) X a(i,j) |
+ |
+constructs a sequence equal to the range [i,j)
+ post: size() == distance(i,j) |
- |
- |
- |
- |
+a.insert(p,t) |
+iterator (points to the inserted copy of t) |
+inserts a copy of t before p |
- |
- |
- |
- |
+a.insert(p,n,t) |
+void |
+inserts n copies of t before p |
+
+
+
+a.insert(p,i,j) |
+void |
+inserts copies of elements in [i,j) before p
+ pre: i, j are not iterators into a |
+
+
+
+a.erase(q) |
+iterator (points to the element following q (prior to erasure)) |
+erases the element pointed to by q |
+
+
+
+a.erase(q1,q1) |
+iterator (points to the element pointed to by q2 (prior to erasure)) |
+erases the elements in the range [q1,q2) |
+
+
+
+a.clear() |
+void |
+erase(begin(),end()) post: size() == 0 |
+ cols="4" title="Table 68">
Table 68 --- Optional Sequence Operations
These operations are only included in containers when the operation can be
done in constant time.
-Foo, bar, and baz are such containers.
|
expression |
result type |
-notes |
-complexity |
+operational semantics |
+container |
- |
- |
- |
- |
+a.front() |
+reference; const_reference for constant a |
+*a.begin() |
+vector, list, deque |
- |
- |
- |
- |
+a.back() |
+reference; const_reference for constant a |
+*--a.end() |
+vector, list, deque |
- |
- |
- |
- |
+a.push_front(x) |
+void |
+a.insert(a.begin(),x) |
+list, deque |
- |
- |
- |
- |
+a.push_back(x) |
+void |
+a.insert(a.end(),x) |
+vector, list, deque |
+
+
+
+a.pop_front() |
+void |
+a.erase(a.begin()) |
+list, deque |
+
+
+
+a.pop_back() |
+void |
+a.erase(--a.end()) |
+vector, list, deque |
+
+
+
+a[n] |
+reference; const_reference for constant a |
+*(a.begin() + n) |
+vector, deque |
+
+
+
+a.at(n) |
+reference; const_reference for constant a |
+*(a.begin() + n) throws out_of_range if n>=a.size() |
+vector, deque |
+ cols="4" title="Table 69">
Table 69 --- Associative Container Requirements
These are in addition to the requirements of containers.
+Map, multimap, set, and multiset are such containers. An associative
+container supports unique keys (and is written as
+a_uniq instead of a ) if it may contain at most
+one element for each key. Otherwise it supports equivalent keys
+(and is written a_eq ). Examples of the former are set and map,
+examples of the latter are multiset and multimap.
|
expression |
result type |
-notes |
+notes, pre-/post-conditions, assertions |
complexity |
- |
- |
- |
- |
+X::key_type |
+Key |
+Key is Assignable |
+compile time |
- |
- |
- |
- |
+X::key_compare |
+Compare |
+defaults to less<key_type> |
+compile time |
- |
- |
- |
- |
+X::value_compare |
+a binary predicate type |
+same as key_compare for set and multiset; an ordering relation on
+ pairs induced by the first component (Key) for map and multimap |
+compile time |
- |
- |
- |
- |
+X(c) X a(c) |
+ |
+constructs an empty container which uses c as a comparison object |
+constant |
+
+
+
+X() X a |
+ |
+constructs an empty container using Compare() as a comparison object |
+constant |
+
+
+
+X(i,j,c) X a(i,j,c) |
+ |
+constructs an empty container and inserts elements from the range [i,j)
+ into it; uses c as a comparison object |
+NlogN in general where N is distance(i,j); linear if [i,j) is
+ sorted with value_comp() |
+
+
+
+X(i,j) X a(i,j) |
+ |
+same as previous, but uses Compare() as a comparison object |
+same as previous |
+
+
+
+a.key_comp() |
+X::key_compare |
+returns the comparison object out of which a was constructed |
+constant |
+
+
+
+a.value_comp() |
+X::value_compare |
+returns an object constructed out of the comparison object |
+constant |
+
+
+
+a_uniq.insert(t) |
+pair<iterator,bool> |
+"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." |
+logarithmic |
+
+
+
+a_eq.insert(t) |
+iterator |
+inserts t, returns the iterator pointing to the inserted element |
+logarithmic |
+
+
+
+a.insert(p,t) |
+iterator |
+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 |
+logarithmic in general, amortized constant if t is inserted right
+ after p
+ [but see DR 233 and our
+ specific notes] |
+
+
+
+a.insert(i,j) |
+void |
+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) |
+Nlog(size()+N) where N is distance(i,j) in general |
+
+
+
+a.erase(k) |
+size_type |
+erases all elements with key equivalent to k; returns number of erased
+ elements |
+log(size()) + count(k) |
+
+
+
+a.erase(q) |
+void |
+erases the element pointed to by q |
+amortized constant |
+
+
+
+a.erase(q1,q2) |
+void |
+erases all the elements in the range [q1,q2) |
+log(size()) + distance(q1,q2) |
+
+
+
+a.clear() |
+void |
+erases everthing; post: size() == 0 |
+linear |
+
+
+
+a.find(k) |
+iterator; const_iterator for constant a |
+returns iterator pointing to element with key equivalent to k, or
+ a.end() if no such element found |
+logarithmic |
+
+
+
+a.count(k) |
+size_type |
+returns number of elements with key equivalent to k |
+log(size()) + count(k) |
+
+
+
+a.lower_bound(k) |
+iterator; const_iterator for constant a |
+returns iterator pointing to the first element with key not less than k |
+logarithmic |
+
+
+
+a.upper_bound(k) |
+iterator; const_iterator for constant a |
+returns iterator pointing to the first element with key greater than k |
+logarithmic |
+
+
+
+a.equal_range(k) |
+pair<iterator,iterator>;
+ pair<const_iterator, const_iterator> for constant a |
+equivalent to make_pair(a.lower_bound(k), a.upper_bound(k)) |
+logarithmic |
@@ -252,6 +620,8 @@ These are in addition to the requirements of containers.
See mainpage.html for copying conditions.
+See the libstdc++-v3 homepage
+for more information.
diff --git a/libstdc++-v3/docs/doxygen/user.cfg.in b/libstdc++-v3/docs/doxygen/user.cfg.in
index 475dd53e42d..bb9809ab901 100644
--- a/libstdc++-v3/docs/doxygen/user.cfg.in
+++ b/libstdc++-v3/docs/doxygen/user.cfg.in
@@ -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.
diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h
index a251befd248..35832c3e1d9 100644
--- a/libstdc++-v3/include/bits/stl_algo.h
+++ b/libstdc++-v3/include/bits/stl_algo.h
@@ -159,9 +159,9 @@ namespace std
}
/**
- * @maint
+ * @if maint
* This is an overload used by find() for the Input Iterator case.
- * @endmaint
+ * @endif
*/
template
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
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
_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
_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
_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
_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
_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
_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
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
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
_EuclideanRingElement
@@ -1406,9 +1406,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the rotate algorithm.
- * @endmaint
+ * @endif
*/
template
void
@@ -1439,9 +1439,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the rotate algorithm.
- * @endmaint
+ * @endif
*/
template
void
@@ -1472,9 +1472,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the rotate algorithm.
- * @endmaint
+ * @endif
*/
template
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
inline _Distance
@@ -1648,9 +1648,9 @@ __result, __binary_pred, _IterType());
/**
- * @maint
+ * @if maint
* This is a helper function...
- * @endmaint
+ * @endif
*/
template
_ForwardIter
@@ -1675,9 +1675,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function...
- * @endmaint
+ * @endif
*/
template
_BidirectionalIter
@@ -1730,9 +1730,9 @@ __result, __binary_pred, _IterType());
/**
- * @maint
+ * @if maint
* This is a helper function...
- * @endmaint
+ * @endif
*/
template
_ForwardIter
@@ -1755,9 +1755,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function...
- * @endmaint
+ * @endif
*/
template
@@ -1837,9 +1837,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function...
- * @endmaint
+ * @endif
*/
template
_RandomAccessIter
@@ -1860,9 +1860,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function...
- * @endmaint
+ * @endif
*/
template
_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
void
@@ -1911,9 +1911,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the sort routine.
- * @endmaint
+ * @endif
*/
template
void
@@ -1930,9 +1930,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the sort routine.
- * @endmaint
+ * @endif
*/
template
void
@@ -1953,9 +1953,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the sort routine.
- * @endmaint
+ * @endif
*/
template
void
@@ -1977,9 +1977,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the sort routine.
- * @endmaint
+ * @endif
*/
template
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
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
void
@@ -2025,9 +2025,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the sort routine.
- * @endmaint
+ * @endif
*/
template
void
@@ -2043,9 +2043,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the sort routine.
- * @endmaint
+ * @endif
*/
template
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
void
@@ -2085,9 +2085,9 @@ __result, __binary_pred, _IterType());
}
/**
- * @maint
+ * @if maint
* This is a helper function for the sort routine.
- * @endmaint
+ * @endif
*/
template
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
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
void
diff --git a/libstdc++-v3/include/bits/stl_alloc.h b/libstdc++-v3/include/bits/stl_alloc.h
index 4ff816be5e3..e193297513c 100644
--- a/libstdc++-v3/include/bits/stl_alloc.h
+++ b/libstdc++-v3/include/bits/stl_alloc.h
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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.)
*/
//@{
diff --git a/libstdc++-v3/include/bits/stl_construct.h b/libstdc++-v3/include/bits/stl_construct.h
index 51bd8a013e7..685913888c8 100644
--- a/libstdc++-v3/include/bits/stl_construct.h
+++ b/libstdc++-v3/include/bits/stl_construct.h
@@ -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
inline void
@@ -78,10 +78,10 @@ namespace std
{ new (static_cast(__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
inline void
@@ -89,11 +89,11 @@ namespace std
{ new (static_cast(__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
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
inline void
@@ -115,9 +115,9 @@ namespace std
{ }
/**
- * @maint
+ * @if maint
* Destroy the object pointed to by a pointer type.
- * @endmaint
+ * @endif
*/
template
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
inline void
@@ -146,6 +146,3 @@ namespace std
#endif /* _CPP_BITS_STL_CONSTRUCT_H */
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h
index b2d58d8f0a6..5cd62b7291f 100644
--- a/libstdc++-v3/include/bits/stl_deque.h
+++ b/libstdc++-v3/include/bits/stl_deque.h
@@ -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
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 _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 _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 _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
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 container, a
+ * reversible container, and a
+ * sequence, including the
+ * optional sequence requirements.
+ *
* 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 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 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
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 template
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:
diff --git a/libstdc++-v3/include/bits/stl_iterator_base_types.h b/libstdc++-v3/include/bits/stl_iterator_base_types.h
index e5b3fa461b4..5dff8fc3f44 100644
--- a/libstdc++-v3/include/bits/stl_iterator_base_types.h
+++ b/libstdc++-v3/include/bits/stl_iterator_base_types.h
@@ -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
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:
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h
index 99205791387..3d470b1f25f 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -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 container, a
+ * reversible container, and a
+ * sequence, including the
+ * optional sequence requirements with the
+ * %exception of @c at and @c operator[].
+ *
+ * @doctodo
+ *
+ */
template >
class list : protected _List_base<_Tp, _Alloc>
{
diff --git a/libstdc++-v3/include/bits/stl_relops.h b/libstdc++-v3/include/bits/stl_relops.h
index cc1ef782647..ce3dc0b9b39 100644
--- a/libstdc++-v3/include/bits/stl_relops.h
+++ b/libstdc++-v3/include/bits/stl_relops.h
@@ -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
diff --git a/libstdc++-v3/include/bits/stl_tempbuf.h b/libstdc++-v3/include/bits/stl_tempbuf.h
index 088807fb82d..7b88f9333ec 100644
--- a/libstdc++-v3/include/bits/stl_tempbuf.h
+++ b/libstdc++-v3/include/bits/stl_tempbuf.h
@@ -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 _Temporary_buffer
diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index 75260a3e5a3..81bb9752453 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -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 container, a
+ * reversible container, and a
+ * sequence, including the
+ * optional sequence requirements 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.
diff --git a/libstdc++-v3/include/std/std_memory.h b/libstdc++-v3/include/std/std_memory.h
index a35cd0d4d41..b7feb37aa45 100644
--- a/libstdc++-v3/include/std/std_memory.h
+++ b/libstdc++-v3/include/std/std_memory.h
@@ -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
pair<_Tp*, ptrdiff_t>
@@ -202,7 +202,3 @@ public:
#endif /* _CPP_MEMORY */
-
-// Local Variables:
-// mode:C++
-// End: