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

View file

@ -1,6 +1,6 @@
.\" t .\" t
.\" This man page is released under the FDL as part of libstdc++-v3. .\" 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 .SH NAME
Intro \- Introduction to the GNU libstdc++-v3 man pages Intro \- Introduction to the GNU libstdc++-v3 man pages
.SH DESCRIPTION .SH DESCRIPTION
@ -48,7 +48,7 @@ SGIextensions A list of the extensions from the SGI STL subset.
Sequences Linear containers. Sequences Linear containers.
.TE .TE
.P .P
The HTML documentation goes into more depth. The HTML documentation typically goes into much more depth.
.SH FILES .SH FILES
Lots! Lots!
.SS Standard Headers .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. 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" 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 use doxygen hooks like @pre and @see to reference the tables. Then the
individual classes would do like the standard does, and only document individual classes do like the standard does, and only document members for
members for which additional info is available. which additional info is available.
STYLE: 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 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 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 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, 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. @c delete is @e not automatically called on the pointers before destroying them.
All containers must meet certain requirements. They would be listed here All containers must meet certain requirements, summarized in
except I'm not certain how much of 14882 can be reproduced without a <a href="tables.html">tables</a>.
copyright violation. Reproducing Tables 65 through 69 is a lot of typing...
The standard containers are further refined into The standard containers are further refined into
@link Sequences Sequences@endlink and @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, 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 @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. 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 /** @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 Each container type is parameterized on a @c Key type, and an ordering
relation used to sort the elements of the container. 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 directly; it all gets run through Doxygen and re-output.) So lots of
tags were all being mangled. 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! 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> <h1>libstdc++-v3 Source Documentation</h1>
<h2> Documentation Overview </h2> <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 <p>There are two types of documentation for libstdc++-v3. One is the
distribution documentation, which can be read online at 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 Hewlett-Packard Company
</blockquote> </blockquote>
</p> </p>
<p>Part of the generated documentation is quoted from the C++ standard, which <p>Part of the generated documentation is quoted from the ISO C++ Standard,
is copyright 1998 by Information Technology Industry Council. which is Copyright &copy; 1998 by Information Technology Industry Council.
</p> </p>
</body> </body>

View file

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

View file

@ -6,27 +6,40 @@
</head> </head>
<body bgcolor="#ffffff"> <body bgcolor="#ffffff">
<!--
Tables can be jumped to with their number, e.g., "tables.html#67".
-->
<h1>Tables</h1> <h1>Tables</h1>
<p>Most of the requirements on containers are presented in the ISO standard <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, in the form of tables. In order to avoid massive duplication of effort
we follow the standard's lead and present the information here. while documenting all the classes, we follow the standard's lead and
Individual classes will only document their departures from these tables present the base information here. Individual classes will only document
(removed functions, additional functions, changes, etc). their departures from these tables (removed functions, additional functions,
changes, etc).
</p> </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>
<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 /> <hr />
<a name="65"><p> <a name="65"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3" <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> <caption><h2>Table 65 --- Container Requirements</h2></caption>
<tr><th colspan="4"> <tr><th colspan="4">
Anything calling itself a container must meet these minimum 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.
<tr> <tr>
<td><strong>expression</strong></td> <td><strong>expression</strong></td>
<td><strong>result type</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> <td><strong>complexity</strong></td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::value_type</td>
<td></td> <td>T</td>
<td></td> <td>T is Assignable</td>
<td></td> <td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::reference</td>
<td></td> <td>lvalue of T</td>
<td></td> <td>&nbsp;</td>
<td></td> <td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::const_reference</td>
<td></td> <td>const lvalue of T</td>
<td></td> <td>&nbsp;</td>
<td></td> <td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::iterator</td>
<td></td> <td>iterator type pointing to T</td>
<td></td> <td>Any iterator category except output iterator.
<td></td> 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> </tr>
</table title="Table 65"></p></a> </table title="Table 65"></p></a>
<a name="66"><p> <a name="66"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3" <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> <caption><h2>Table 66 --- Reversible Container Requirements</h2></caption>
<tr><th colspan="4"> <tr><th colspan="4">
If a container's iterator is bidirectional or random-access, then the If a container's iterator is bidirectional or random-access, then the
container also meets these requirements. 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> </th></tr>
<tr> <tr>
<td><strong>expression</strong></td> <td><strong>expression</strong></td>
<td><strong>result type</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> <td><strong>complexity</strong></td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::reverse_iterator</td>
<td></td> <td>iterator type pointing to T</td>
<td></td> <td>reverse_iterator&lt;iterator&gt;</td>
<td></td> <td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::const_reverse_iterator</td>
<td></td> <td>iterator type pointing to const T</td>
<td></td> <td>reverse_iterator&lt;const_iterator&gt;</td>
<td></td> <td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.rbegin()</td>
<td></td> <td>reverse_iterator; const_reverse_iterator for constant a</td>
<td></td> <td>reverse_iterator(end())</td>
<td></td> <td>constant</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.rend()</td>
<td></td> <td>reverse_iterator; const_reverse_iterator for constant a</td>
<td></td> <td>reverse_iterator(begin())</td>
<td></td> <td>constant</td>
</tr> </tr>
</table title="Table 66"></p></a> </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" <table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
cols="3" title="Table 67"> cols="3" title="Table 67">
<caption><h2>Table 67 --- Sequence Requirements</h2></caption> <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>. 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> </th></tr>
<tr> <tr>
<td><strong>expression</strong></td> <td><strong>expression</strong></td>
<td><strong>result type</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>
<tr> <tr>
<td></td> <td>X(n,t)<br />X a(n,t)</td>
<td></td> <td>&nbsp;</td>
<td></td> <td>constructs a sequence with n copies of t<br />post: size() == n</td>
<td></td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X(i,j)<br />X a(i,j)</td>
<td></td> <td>&nbsp;</td>
<td></td> <td>constructs a sequence equal to the range [i,j)<br />
<td></td> post: size() == distance(i,j)</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.insert(p,t)</td>
<td></td> <td>iterator (points to the inserted copy of t)</td>
<td></td> <td>inserts a copy of t before p</td>
<td></td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.insert(p,n,t)</td>
<td></td> <td>void</td>
<td></td> <td>inserts n copies of t before p</td>
<td></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> </tr>
</table title="Table 67"></p></a> </table title="Table 67"></p></a>
<a name="68"><p> <a name="68"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3" <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> <caption><h2>Table 68 --- Optional Sequence Operations</h2></caption>
<tr><th colspan="4"> <tr><th colspan="4">
These operations are only included in containers when the operation can be These operations are only included in containers when the operation can be
done in constant time. done in constant time.
Foo, bar, and baz are such containers.
</th></tr> </th></tr>
<tr> <tr>
<td><strong>expression</strong></td> <td><strong>expression</strong></td>
<td><strong>result type</strong></td> <td><strong>result type</strong></td>
<td><strong>notes</strong></td> <td><strong>operational semantics</strong></td>
<td><strong>complexity</strong></td> <td><strong>container</strong></td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.front()</td>
<td></td> <td>reference; const_reference for constant a</td>
<td></td> <td>*a.begin()</td>
<td></td> <td>vector, list, deque</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.back()</td>
<td></td> <td>reference; const_reference for constant a</td>
<td></td> <td>*--a.end()</td>
<td></td> <td>vector, list, deque</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.push_front(x)</td>
<td></td> <td>void</td>
<td></td> <td>a.insert(a.begin(),x)</td>
<td></td> <td>list, deque</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>a.push_back(x)</td>
<td></td> <td>void</td>
<td></td> <td>a.insert(a.end(),x)</td>
<td></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> </tr>
</table title="Table 68"></p></a> </table title="Table 68"></p></a>
<a name="69"><p> <a name="69"><p>
<table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3" <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> <caption><h2>Table 69 --- Associative Container Requirements</h2></caption>
<tr><th colspan="4"> <tr><th colspan="4">
These are in addition to the requirements of <a href="#65">containers</a>. 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> </th></tr>
<tr> <tr>
<td><strong>expression</strong></td> <td><strong>expression</strong></td>
<td><strong>result type</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> <td><strong>complexity</strong></td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::key_type</td>
<td></td> <td>Key</td>
<td></td> <td>Key is Assignable</td>
<td></td> <td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::key_compare</td>
<td></td> <td>Compare</td>
<td></td> <td>defaults to less&lt;key_type&gt;</td>
<td></td> <td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X::value_compare</td>
<td></td> <td>a binary predicate type</td>
<td></td> <td>same as key_compare for set and multiset; an ordering relation on
<td></td> pairs induced by the first component (Key) for map and multimap</td>
<td>compile time</td>
</tr> </tr>
<tr> <tr>
<td></td> <td>X(c)<br />X a(c)</td>
<td></td> <td>&nbsp;</td>
<td></td> <td>constructs an empty container which uses c as a comparison object</td>
<td></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> </tr>
</table title="Table 69"></p></a> </table title="Table 69"></p></a>
@ -252,6 +620,8 @@ These are in addition to the requirements of <a href="#65">containers</a>.
<hr /> <hr />
<p class="smallertext"><em> <p class="smallertext"><em>
See <a href="mainpage.html">mainpage.html</a> for copying conditions. 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> </em></p>

View file

@ -222,9 +222,7 @@ GENERATE_BUGLIST = YES
# will result in a user defined paragraph with heading "Side Effects:". # 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. # You can put \n's in the value part of an alias to insert newlines.
ALIASES = "maint=@if maint" \ ALIASES = "doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more."
"endmaint=@endif" \
"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 # The ENABLED_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif. # 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. * This is an overload used by find() for the Input Iterator case.
* @endmaint * @endif
*/ */
template<typename _InputIter, typename _Tp> template<typename _InputIter, typename _Tp>
inline _InputIter inline _InputIter
@ -175,9 +175,9 @@ namespace std
} }
/** /**
* @maint * @if maint
* This is an overload used by find_if() for the Input Iterator case. * This is an overload used by find_if() for the Input Iterator case.
* @endmaint * @endif
*/ */
template<typename _InputIter, typename _Predicate> template<typename _InputIter, typename _Predicate>
inline _InputIter inline _InputIter
@ -191,9 +191,9 @@ namespace std
} }
/** /**
* @maint * @if maint
* This is an overload used by find() for the RAI case. * This is an overload used by find() for the RAI case.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Tp> template<typename _RandomAccessIter, typename _Tp>
_RandomAccessIter _RandomAccessIter
@ -235,9 +235,9 @@ namespace std
} }
/** /**
* @maint * @if maint
* This is an overload used by find_if() for the RAI case. * This is an overload used by find_if() for the RAI case.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Predicate> template<typename _RandomAccessIter, typename _Predicate>
_RandomAccessIter _RandomAccessIter
@ -1087,10 +1087,10 @@ namespace std
} }
/** /**
* @maint * @if maint
* This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter) * This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter)
* overloaded for output iterators. * overloaded for output iterators.
* @endmaint * @endif
*/ */
template<typename _InputIter, typename _OutputIter> template<typename _InputIter, typename _OutputIter>
_OutputIter _OutputIter
@ -1110,10 +1110,10 @@ namespace std
} }
/** /**
* @maint * @if maint
* This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter) * This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter)
* overloaded for forward iterators. * overloaded for forward iterators.
* @endmaint * @endif
*/ */
template<typename _InputIter, typename _ForwardIter> template<typename _InputIter, typename _ForwardIter>
_ForwardIter _ForwardIter
@ -1159,11 +1159,11 @@ namespace std
} }
/** /**
* @maint * @if maint
* This is an uglified * This is an uglified
* unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate) * unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate)
* overloaded for output iterators. * overloaded for output iterators.
* @endmaint * @endif
*/ */
template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate> template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate>
_OutputIter _OutputIter
@ -1188,11 +1188,11 @@ namespace std
} }
/** /**
* @maint * @if maint
* This is an uglified * This is an uglified
* unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate) * unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate)
* overloaded for forward iterators. * overloaded for forward iterators.
* @endmaint * @endif
*/ */
template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate> template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate>
_ForwardIter _ForwardIter
@ -1301,10 +1301,10 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is an uglified reverse(_BidirectionalIter, _BidirectionalIter) * This is an uglified reverse(_BidirectionalIter, _BidirectionalIter)
* overloaded for bidirectional iterators. * overloaded for bidirectional iterators.
* @endmaint * @endif
*/ */
template<typename _BidirectionalIter> template<typename _BidirectionalIter>
void void
@ -1319,10 +1319,10 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is an uglified reverse(_BidirectionalIter, _BidirectionalIter) * This is an uglified reverse(_BidirectionalIter, _BidirectionalIter)
* overloaded for bidirectional iterators. * overloaded for bidirectional iterators.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter> template<typename _RandomAccessIter>
void void
@ -1389,9 +1389,9 @@ __result, __binary_pred, _IterType());
/** /**
* @maint * @if maint
* This is a helper function for the rotate algorithm specialized on RAIs. * This is a helper function for the rotate algorithm specialized on RAIs.
* @endmaint * @endif
*/ */
template<typename _EuclideanRingElement> template<typename _EuclideanRingElement>
_EuclideanRingElement _EuclideanRingElement
@ -1406,9 +1406,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the rotate algorithm. * This is a helper function for the rotate algorithm.
* @endmaint * @endif
*/ */
template<typename _ForwardIter> template<typename _ForwardIter>
void void
@ -1439,9 +1439,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the rotate algorithm. * This is a helper function for the rotate algorithm.
* @endmaint * @endif
*/ */
template<typename _BidirectionalIter> template<typename _BidirectionalIter>
void void
@ -1472,9 +1472,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the rotate algorithm. * This is a helper function for the rotate algorithm.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter> template<typename _RandomAccessIter>
void void
@ -1582,13 +1582,13 @@ __result, __binary_pred, _IterType());
/** /**
* @maint * @if maint
* Return a random number in the range [0, __n). This function encapsulates * 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 * whether we're using rand (part of the standard C library) or lrand48
* (not standard, but a much better choice whenever it's available). * (not standard, but a much better choice whenever it's available).
* *
* XXX There is no corresponding encapsulation fn to seed the generator. * XXX There is no corresponding encapsulation fn to seed the generator.
* @endmaint * @endif
*/ */
template<typename _Distance> template<typename _Distance>
inline _Distance inline _Distance
@ -1648,9 +1648,9 @@ __result, __binary_pred, _IterType());
/** /**
* @maint * @if maint
* This is a helper function... * This is a helper function...
* @endmaint * @endif
*/ */
template<typename _ForwardIter, typename _Predicate> template<typename _ForwardIter, typename _Predicate>
_ForwardIter _ForwardIter
@ -1675,9 +1675,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function... * This is a helper function...
* @endmaint * @endif
*/ */
template<typename _BidirectionalIter, typename _Predicate> template<typename _BidirectionalIter, typename _Predicate>
_BidirectionalIter _BidirectionalIter
@ -1730,9 +1730,9 @@ __result, __binary_pred, _IterType());
/** /**
* @maint * @if maint
* This is a helper function... * This is a helper function...
* @endmaint * @endif
*/ */
template<typename _ForwardIter, typename _Predicate, typename _Distance> template<typename _ForwardIter, typename _Predicate, typename _Distance>
_ForwardIter _ForwardIter
@ -1755,9 +1755,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function... * This is a helper function...
* @endmaint * @endif
*/ */
template<typename _ForwardIter, typename _Pointer, typename _Predicate, template<typename _ForwardIter, typename _Pointer, typename _Predicate,
typename _Distance> typename _Distance>
@ -1837,9 +1837,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function... * This is a helper function...
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Tp> template<typename _RandomAccessIter, typename _Tp>
_RandomAccessIter _RandomAccessIter
@ -1860,9 +1860,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function... * This is a helper function...
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Tp, typename _Compare> template<typename _RandomAccessIter, typename _Tp, typename _Compare>
_RandomAccessIter _RandomAccessIter
@ -1884,17 +1884,17 @@ __result, __binary_pred, _IterType());
/** /**
* @maint * @if maint
* @doctodo * @doctodo
* This controls some aspect of the sort routines. * This controls some aspect of the sort routines.
* @endmaint * @endif
*/ */
enum { _M_threshold = 16 }; enum { _M_threshold = 16 };
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Tp> template<typename _RandomAccessIter, typename _Tp>
void void
@ -1911,9 +1911,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Tp, typename _Compare> template<typename _RandomAccessIter, typename _Tp, typename _Compare>
void void
@ -1930,9 +1930,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter> template<typename _RandomAccessIter>
void void
@ -1953,9 +1953,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Compare> template<typename _RandomAccessIter, typename _Compare>
void void
@ -1977,9 +1977,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter> template<typename _RandomAccessIter>
inline void inline void
@ -1992,9 +1992,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Compare> template<typename _RandomAccessIter, typename _Compare>
inline void inline void
@ -2008,9 +2008,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter> template<typename _RandomAccessIter>
void void
@ -2025,9 +2025,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Compare> template<typename _RandomAccessIter, typename _Compare>
void void
@ -2043,9 +2043,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _Size> template<typename _Size>
inline _Size inline _Size
@ -2057,9 +2057,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Size> template<typename _RandomAccessIter, typename _Size>
void void
@ -2085,9 +2085,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the sort routine. * This is a helper function for the sort routine.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Size, typename _Compare> template<typename _RandomAccessIter, typename _Size, typename _Compare>
void void
@ -2166,9 +2166,9 @@ __result, __binary_pred, _IterType());
/** /**
* @maint * @if maint
* This is a helper function for the stable sorting routines. * This is a helper function for the stable sorting routines.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter> template<typename _RandomAccessIter>
void void
@ -2187,9 +2187,9 @@ __result, __binary_pred, _IterType());
} }
/** /**
* @maint * @if maint
* This is a helper function for the stable sorting routines. * This is a helper function for the stable sorting routines.
* @endmaint * @endif
*/ */
template<typename _RandomAccessIter, typename _Compare> template<typename _RandomAccessIter, typename _Compare>
void void

View file

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

View file

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

View file

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

View file

@ -1,6 +1,6 @@
// List implementation -*- C++ -*- // 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 // 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 // software; you can redistribute it and/or modify it under the
@ -273,7 +273,19 @@ namespace std
void clear(); 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> > template<typename _Tp, typename _Alloc = allocator<_Tp> >
class list : protected _List_base<_Tp, _Alloc> class list : protected _List_base<_Tp, _Alloc>
{ {

View file

@ -57,7 +57,7 @@
* This is an internal header file, included by other library headers. * This is an internal header file, included by other library headers.
* You should not attempt to use it directly. * You should not attempt to use it directly.
* *
* @maint * @if maint
* Inclusion of this file has been removed from * Inclusion of this file has been removed from
* all of the other STL headers for safety reasons, except std_utility.h. * all of the other STL headers for safety reasons, except std_utility.h.
* For more information, see the thread of about twenty messages starting * 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 . * 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. * Short summary: the rel_ops operators should be avoided for the present.
* @endmaint * @endif
*/ */
#ifndef _CPP_BITS_STL_RELOPS_H #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 * 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 * is wrapped as the temporary_buffer class. See temporary_buffer docs for
* more notes. * more notes.
* @endmaint * @endif
*/ */
template <class _ForwardIterator, class _Tp> template <class _ForwardIterator, class _Tp>
class _Temporary_buffer class _Temporary_buffer

View file

@ -1,6 +1,6 @@
// Vector implementation -*- C++ -*- // 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 // 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 // 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 * @brief A standard container which offers fixed time access to individual
* elements in any order. * 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, * 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 * it offers fast and efficient access to individual elements in any order
* and saves the user from worrying about memory and size allocation. * 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 * This is a helper function. The unused second parameter exists to
* permit the real get_temporary_buffer to use template parameter deduction. * permit the real get_temporary_buffer to use template parameter deduction.
* @endmaint * @endif
*/ */
template <class _Tp> template <class _Tp>
pair<_Tp*, ptrdiff_t> pair<_Tp*, ptrdiff_t>
@ -202,7 +202,3 @@ public:
#endif /* _CPP_MEMORY */ #endif /* _CPP_MEMORY */
// Local Variables:
// mode:C++
// End: