2002-03-27 Phil Edwards <pme@gcc.gnu.org>
authorpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Mar 2002 21:41:36 +0000 (21:41 +0000)
committerpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Mar 2002 21:41:36 +0000 (21:41 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51471 138bc75d-0d04-0410-961f-82ee72b054a4

18 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/docs/doxygen/Intro.3
libstdc++-v3/docs/doxygen/TODO
libstdc++-v3/docs/doxygen/doxygroups.cc
libstdc++-v3/docs/doxygen/mainpage.html
libstdc++-v3/docs/doxygen/run_doxygen
libstdc++-v3/docs/doxygen/tables.html
libstdc++-v3/docs/doxygen/user.cfg.in
libstdc++-v3/include/bits/stl_algo.h
libstdc++-v3/include/bits/stl_alloc.h
libstdc++-v3/include/bits/stl_construct.h
libstdc++-v3/include/bits/stl_deque.h
libstdc++-v3/include/bits/stl_iterator_base_types.h
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/include/bits/stl_relops.h
libstdc++-v3/include/bits/stl_tempbuf.h
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/include/std/std_memory.h

index 4f06c2b..f7a7d8e 100644 (file)
@@ -1,3 +1,28 @@
+2002-03-27  Phil Edwards  <pme@gcc.gnu.org>
+
+       * docs/doxygen/Intro.3:  Date tweak.
+       * docs/doxygen/TODO:  Update.
+       * docs/doxygen/doxygroups.cc:  Point to tables.html.
+       * docs/doxygen/mainpage.html:  Date tweak.
+       * docs/doxygen/run_doxygen:  Version tweak.  Copy tables.html over.
+       * docs/doxygen/tables.html:  Fill in the blanks.
+
+       * docs/doxygen/user.cfg.in (ALIASES):  Remove maint and endmaint.
+       * include/bits/stl_algo.h:  Likewise; use expanded form.
+       * include/bits/stl_alloc.h:  Likewise.
+       * include/bits/stl_construct.h:  Likewise.
+       * include/bits/stl_deque.h:  Likewise.
+       * include/bits/stl_iterator_base_types.h:  Likewise.
+       * include/bits/stl_list.h:  Likewise.
+       * include/bits/stl_relops.h:  Likewise.
+       * include/bits/stl_tempbuf.h:  Likewise.
+       * include/bits/stl_vector.h:  Likewise.
+       * include/std/std_memory.h:  Likewise.
+
+       * include/bits/stl_deque.h:  Point into tables.html and add @ingroup.
+       * include/bits/stl_list.h:  Likewise.
+       * include/bits/stl_vector.h:  Likewise.
+
 2002-03-26  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/c/: Guard with _CPP_.
@@ -5,7 +30,7 @@
        * include/Makefile.am: Fixup install, link routines for null
        c_base_headers_extra scenarios.
        * include/Makefile.in: Regerate.
-       
+
 2002-03-25  Paolo Carlini <pcarlini@unitus.it>
             Richard Henderson  <rth@redhat.com>
 
 
 2002-03-25  Benjamin Kosnik  <bkoz@redhat.com>
             Jakub Jelinek  <jakub@redhat.com>
-       
+
        * config/locale/gnu/messages_members.h: Correct conditional.
        * config/locale/gnu/messages_members.cc: Same.
        * config/locale/gnu/time_members.cc: Same.
-       
+
 2002-03-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
             Paolo Carlini  <pcarlini@unitus.it>
 
 
        * include/c/*: Formatting tweaks, cleanups.
        * include/c_std/*: Same.
-       
+
 2002-03-22  Benjamin Kosnik  <bkoz@redhat.com>
 
        * config/locale/gnu/messages_members.h: Add __uselocale bits.
        * config/locale/gnu/messages_members.cc: Same.
        * config/locale/gnu/time_members.cc: Same.
-       
+
 2002-03-22  Benjamin Kosnik  <bkoz@redhat.com>
-       
+
        * src/vterminate.cc: Format, -fno-exceptions cleanup.
 
 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
        --enable-libunwind-exceptions is set.
        * configure.in (GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS): Call new
        macro to check for libunwind.
-       * configure: Regenerate.        
+       * configure: Regenerate.
        * src/Makefile.am (libstdc___la_LDFLAGS): Add
        LIBUNWIND_FLAG to libstdc link line.
        * src/Makefile.in: Regenerate.
-       
+
 2002-03-19  Benjamin Kosnik  <bkoz@redhat.com>
 
        * docs/html/faq/index.html: Add OS X workaround.
        hash_multimap are in namespace __gnu_cxx.
        include/backward/hash_set.h: hash, hashtable, hash_set and
        hash_multiset are in namespace __gnu_cxx.
-       include/backward/hashtable.h: hash and hashtable are in 
+       include/backward/hashtable.h: hash and hashtable are in
        namespace __gnu_cxx.
        include/backward/rope.h: char_producer, sequence_buffer,
        rope, crope and wrope are in namespace __gnu_cxx.
 
 2002-03-12  Benjamin Kosnik  <bkoz@redhat.com>
             Per Liboriussen  <liborius@stofanet.dk>
-       
+
        * config/os/gnu-linux/bits/ctype_noninline.h: Cast to
        unsigned char.
        * config/os/gnu-linux/bits/ctype_inline.h: Same.
        * config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same.
 
        * testsuite/22_locale/ctype_members_char.cc (main): Add tests.
-       
+
 2002-03-12  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/bits/basic_string.tcc (string::_S_construct(_InIter,
        * testsuite/21_strings/ctor_copy_dtor.cc (test01): Re-enable, now
        that memory limits are in place.
        (test03): Add tests.
-       
+
 2002-03-11  Benjamin Kosnik  <bkoz@redhat.com>
 
        * acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Check for wctype.h.
        * messages_members_ieee_1003.1-200x.cc: Move to...
        * ieee_1003.1-2001/messages_members.cc
        * messages_members_ieee_1003.1-200x.h: Move to...
-       * ieee_1003.1-2001/messages_members.h   
+       * ieee_1003.1-2001/messages_members.h
 
        * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Make consistent.
        * aclocal.m4: Regenerate.
        * src/limits.cc: Add definitions.
        * config/linker-map.gnu: Add __numeric_limits_base.
        * testsuite/18_support/numeric_limits.cc: Declare test in scope.
-       
+
 2002-03-07  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/bits/stl_alloc.h: Add extern implicit allocator
        (__stl_threshold): _M_threshold, enum.
        * src/stl-inst.cc: Same.
        * config/linker-map.gnu: Remove.
-       
+
        * testsuite/23_containers/vector_bool.cc: New.
-       
+
 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
 
        * docs/doxygen/user.cfg.in:  Also document deprecated entries.
 
 2002-03-04  Craig Rodrigues  <rodrigc@gcc.gnu.org>
 
-       * docs/html/17_intro/porting-howto.xml: Refer to 
+       * docs/html/17_intro/porting-howto.xml: Refer to
        http://www.oasis-open.org for docbookx.dtd.
        * docs/html/17_intro/porting-howto.html: Regenerated.
 
        * include/bits/basic_ios.h (basic_ios::_M_fill): Make mutable.
        (basic_ios::_M_fill_init): New.
        (basic_ios::fill()): Delay dealing with _M_fill.
-       Adjust comment. 
+       Adjust comment.
        * ios.cc (ios_base::ios_base()): Initialize _M_callbacks, _M_words.
        (ios_base::_M_call_callbacks): Adjust.
        * testsuite/27_io/ios_init.cc (test02): Adjust testcase.
 
        * configure.in (target_alias): Default to yes.
        * acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Add check for shared
-       libgcc to default case. 
+       libgcc to default case.
 
 2002-02-20  Phil Edwards  <pme@gcc.gnu.org>
 
 
 2002-02-20  Benjamin Kosnik  <bkoz@redhat.com>
 
-       * testsuite/22_locale/money_put_members_char.cc: Fix.   
+       * testsuite/22_locale/money_put_members_char.cc: Fix.
        * testsuite/22_locale/money_put_members_wchar_t.cc: Fix.
 
        * testsuite/27_io/standard_manipulators.cc: New file.
 
        * testsuite/27_io/ios_manip_basefield.cc: Check results, now failing.
        * testsuite/27_io/ios_manip_fmtflags.cc: Use locale::classic().
-       
+
 2002-02-20  Danny Smith  <dannysmith@users.sourceforge.net>
 
        * config/os/mingw32/bits/ctype_noninline.h
        (ctype<char>::ctype): Remove default args from parm list.
-       * config/os/djgpp/bits/ctype_noninline.h: Same. 
+       * config/os/djgpp/bits/ctype_noninline.h: Same.
 
 2002-02-19  Benjamin Kosnik  <bkoz@redhat.com>
 
        * testsuite/22_locale/money_get_members_wchar_t.cc (test07): Same.
 
 2002-02-19  Benjamin Kosnik  <bkoz@redhat.com>
-       
+
        * config/linker-map.gnu: Export global vtable, typeinfo, guard
        variable, and thunk info as per CXXABI docs.
 
 
 2002-02-16   Benjamin Kosnik  <bkoz@redhat.com>
 
-       * include/bits/locale_facets.tcc: Add pragma GCC system_header. 
+       * include/bits/locale_facets.tcc: Add pragma GCC system_header.
        * include/bits/fstream.tcc: Same.
        * include/bits/sstream.tcc: Same.
        * include/bits/ostream.tcc: Same.
 
        * src/locale.cc (moneypunct_byname): Remove definitions.
        * include/std/std_streambuf.h (streambuf::operator=): Return.
-       
+
 2002-02-15  Benjamin Kosnik  <bkoz@redhat.com>
 
        Tune for size.
        Add iomanip instantiations for wide streams.
        * include/std/std_iomanip.h: Same.
        * include/bits/locale_facets.tcc: Same.
-       
+
        * include/std/std_streambuf.h: Correct
        _GLIBCPP_FULLY_COMPLIANT_HEADERS guard.
        * include/std/std_sstream.h: Same.
 
        * include/bits/basic_ios.h (basic_ios::clear): Don't inline.
        * include/bits/basic_ios.tcc (basic_ios::clear): Move definition here.
-       
+
 2002-02-14  Benjamin Kosnik  <bkoz@redhat.com>
 
        * config/linker-map.gnu: Change tag from GCC_3.1 to GLIBCPP_3.1.
 
 2002-02-11  Benjamin Kosnik  <bkoz@redhat.com>
 
-       * include/bits/stl_algo (__stl_threshold): Declare external.    
+       * include/bits/stl_algo (__stl_threshold): Declare external.
        (__stl_chunk_size): Same.
        * include/bits/stl_bvector.h (__WORD_BIT): Same.
        * include/bits/stl_tree.h (_S_rb_tree_red): Same.
        (__WORD_BIT): Same.
        (_S_rb_tree_red): Same.
        (_S_rb_tree_black): Same.
-       
+
        * config/io/basic_file_libio.h (__basic_file): Add declarations.
        * include/bits/basic_file.h: Remove.
        * config/io/c_io_stdio.h: Remove _GLIBCPP_BASIC_FILE_ENCAPSULATION
        Declare generic types, specialization.
-       * config/io/basic_file_stdio.cc: Definitions.   
+       * config/io/basic_file_stdio.cc: Definitions.
        * config/io/c_io_libio.h: Remove _GLIBCPP_BASIC_FILE_INHERITANCE.
        Declare generic types.
        * include/Makefile.am (bits_headers): Remove basic_file.h.
        (stamp-target): Same.
 
        * include/bits/stl_alloc.h: Tweaks.
-       * include/bits/localefwd.h: Same.       
+       * include/bits/localefwd.h: Same.
 
 2002-02-11  Aaron W LaFramboise  <AWLaFramboise@aol.com>
 
        * include/bits/locale_facets.tcc (collate::do_hash): Fix.
        * testsuite/22_locale/collate_members_char.cc (test03): New test.
        * testsuite/22_locale/collate_members_wchar_t.cc (test03): Same.
-       
+
 2002-02-10  Phil Edwards  <pme@gcc.gnu.org>
 
        * include/bits/stl_algo.h (transform (both signatures), generate_n):
        * include/bits/fstream.tcc (filebuf::underflow): Remove
        __codecvt_type typedef.
        (filebuf::_M_convert_to_external): Same.
-       
+
 2002-02-08  Phil Edwards  <pme@gcc.gnu.org>
 
        * docs/doxygen/TODO:  Update.
        codecvt bits for wide streams.
        (filebuf::_M_really_overflow): Use it.
        (filebuf::underflow): Use codecvt.
-       * config/locale/codecvt_specializations_ieee_1003.1-200x.h: 
+       * config/locale/codecvt_specializations_ieee_1003.1-200x.h:
        (codecvt<__enc_traits>::do_out): Deal with partial.
        (codecvt<__enc_traits>::do_encoding): Return something useful.
        * src/codecvt.cc (codecvt<wchar_t>::do_encoding): Return sizeof
 
 2002-02-07  Benjamin Kosnik  <bkoz@redhat.com>
            Wolfgang Bangerth  <wolfgang.bangerth@iwr.uni-heidelberg.de>
-       
+
        * include/bits/basic_ios.tcc (basic_ios::narrow): Add default value.
        (basic_ios::widen): Same.
 
        * include/std/std_streambuf.h: Tweak.
        * include/bits/streambuf.tcc: Same.
        * include/bits/sstream.tcc: Same.
-       * include/bits/fstream.tcc: Same.       
+       * include/bits/fstream.tcc: Same.
 
 2002-01-31  Loren Rittle <ljrittle@acm.org>
 
        * docs/html/17_intro/RELEASE-NOTES: Update.
        * docs/html/17_intro/TODO: Update.
        * README (file): Update.
-       
+
 2002-01-30  Loren Rittle <ljrittle@acm.org>
 
        * config/locale/c_locale_generic.cc: Check errno for ERANGE
 
 2002-01-24  Benjamin Kosnik  <bkoz@redhat.com>
 
-       * testsuite/27_io/ostream_inserter_char.cc (test07): New. 
-       
+       * testsuite/27_io/ostream_inserter_char.cc (test07): New.
+
 2002-01-24  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/bits/basic_ios.h (basic_ios::_M_check_facet): Make
        const, tweak.
-       (basic_ios::fill(char_type)): Use fill().       
+       (basic_ios::fill(char_type)): Use fill().
        * include/bits/basic_ios.tcc (basic_ios::widen): Use _M_check_facet.
        (basic_ios::narrow): Same.
        (basic_ios::_M_cache_facets): Explicitly set cached facets to zero
        if they are invalid.
        (basic_ios::init): Comment.
        * testsuite/27_io/ios_init.cc (test02): New.
-       
+
 2002-01-24  Phil Edwards  <pme@gcc.gnu.org>
 
        * include/bits/stl_tempbuf.h (_Temporary_buffer):  Add doxygen hook.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.
        * config.h.in: Regenerate.
-       
+
 2002-01-23  Loren Rittle <ljrittle@acm.org>
 
        * testsuite/thread/pthread1.cc: New test.
        * include/bits/locale_facets.tcc (__convert_to_v): Change template
        parameter to _Tv.
        (__convert_from_v): Same.
-       
+
 2002-01-23  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/bits/locale_facets.h (num_get::_M_extract_int): Change
 
        * docs/html/22_locale/messages.html: Remove angle brackets.
        * docs/html/17_intro/TODO: Add.
-       
+
 2002-01-22  Paolo Carlini  <pcarlini@unitus.it>
 
        * testsuite/27_io/ios_manip_basefield.cc: Enable test02.
        (num_put::_M_convert_float): Use.
        (num_put::_M_convert_int): Same.
        (money_put::do_put): Same.
-       
+
        * src/locale-inst.cc: Add instantiations for __convert_from_v.
        * config/locale/time_members_gnu.cc: Cleanup setlocale usage.
-       * config/locale/time_members_generic.cc: 
+       * config/locale/time_members_generic.cc:
        * config/locale/messages_members_gnu.cc: Same.
        * config/locale/messages_members_gnu.h: Same.
-       
+
        * testsuite/22_locale/codecvt_members_wchar_t_char.cc (test02): New.
        * testsuite/22_locale/codecvt_members_char_char.cc (test02): New.
        * testsuite/22_locale/collate_members_wchar_t.cc (test02): New.
        * testsuite/22_locale/time_get_members_char.cc: Fixups for global
        locale issues.
        * testsuite/22_locale/time_get_members_char.cc: Same.
-       
+
 2002-01-22  Benjamin Kosnik  <bkoz@redhat.com>
 
        libstdc++/5280
        (num_get::do_get(unsigned long long)): Same.
        * config/locale/c_locale_gnu.cc (__convert_to_v): Specialize.
        * config/locale/c_locale_generic.cc: Same.
-       
+
 2002-01-22  Loren Rittle <ljrittle@acm.org>
 
        * include/Makefile.am (c_base_builddir): Remove redundant slash.
        limiting is only attempted if _GLIBCPP_MEM_LIMIT is defined.
 
 2002-01-17  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
-       
+
        * testsuite/22_locale/ctor_copy_dtor.cc: Remove check.
 
 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
        SECTION_LDFLAGS and OPT_LDFLAGS.  Fix ac_sectionLDflags type.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.
-       
+
 2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/Makefile.am (c_base_headers_rename): New.
        cstdio ctime cwctype]: Move to..
        * include/c_std/std_*: Here.
 
-       Alexandre Oliva  <aoliva@redhat.com>    
+       Alexandre Oliva  <aoliva@redhat.com>
        * include/Makefile.am (.PRECIOUS): Add rule.
        * include/Makefile.in: Regenerate.
-       
+
 2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>
            Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
-       
+
        * include/bits/stl_iterator.h (reverse_iterator::_M_current):
        Deuglify, should be current.
        (back_insert_iterator::_M_container): Deuglify, should be container.
-       (front_insert_iterator::_M_container): Same.    
+       (front_insert_iterator::_M_container): Same.
        (insert_iterator::_M_container): Same.
        * testsuite/24_iterators/reverse_iterator.cc: Add check.
-       * testsuite/24_iterators/back_insert_iterator.cc: Add check.    
+       * testsuite/24_iterators/back_insert_iterator.cc: Add check.
        * testsuite/24_iterators/front_insert_iterator.cc: Same.
        * testsuite/24_iterators/insert_iterator.cc: Same.
-       
+
 2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/bits/locale_facets.h (ctype<char>::classic_table): Make
        * config/os/bsd/netbsd/bits/ctype_noninline.h: Same.
        * config/os/bsd/freebsd/bits/ctype_noninline.h: Same.
        * config/os/aix/bits/ctype_noninline.h: Same.
-       
-       Testcase by Dietmar Kühl via Peter Schmid 
+
+       Testcase by Dietmar Kühl via Peter Schmid
        * testsuite/22_locale/ctype_members_char.cc (char>): Add test for
        classic_table().
 
 2002-01-16  Benjamin Kosnik  <bkoz@redhat.com>
 
-       * libmath/signbitl.c: Copyright years as list, not range.       
+       * libmath/signbitl.c: Copyright years as list, not range.
        * libmath/Makefile.am: Same.
        * libmath/Makefie.in: Regenerate.
        * libmath/signbit.c: Same.
 
        * testsuite/22_locale/num_put_members_wchar_t.cc (test02): Same.
        * testsuite/22_locale/num_put_members_char.cc (test01): Tweak.
-       * testsuite/22_locale/ctype_members_char.cc: Tweak.     
+       * testsuite/22_locale/ctype_members_char.cc: Tweak.
 
 2002-01-15  Benjamin Kosnik  <bkoz@redhat.com>
 
        * testsuite/22_locale/num_get_members_char.cc (test02): Add
        long double, void, bool types.
        * testsuite/22_locale/num_get_members_wchar_t.cc (test02): Add.
-       
+
 2002-01-15  Benjamin Kosnik  <bkoz@redhat.com>
            Alexandre Oliva  <aoliva@redhat.com>
 
 
        * include/bits/basic_string.h (insert(__pos, __s, __n)):
        Adjust comparison wrt overflow.
-       
+
 2002-01-12  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/Makefile.am (std_headers_rename): New variable.
        (install-data-local): Use it.
        * include/Makefile.in: Regenerate.
-       
+
 2002-01-12  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/bits/locale_facets.tcc (money_put::do_put(string):
        Correct output iterator value.
        * testsuite/22_locale/money_put_members_char.cc (test03): Add.
        * testsuite/22_locale/money_put_members_wchar_t.cc: Same.
-       
+
 2002-01-11  Phil Edwards  <pme@gcc.gnu.org>
 
        * include/Makefile.am, include/Makefile.in (stamp-std):  Fix typo from
        * testsuite/22_locale/money_get_members_char.cc (test02): Add
        iterator checks.
        * testsuite/22_locale/money_get_members_wchar_t.cc: Same.
-       
+
 2002-01-10  David Seymour  <seymour_dj@yahoo.com>
 
        libstdc++/5331
 
        * include/Makefile.am (c_base_srcdir): Remove duplicate '/'.
        * include/Makefile.in: Regenerate.
-       
+
 2002-01-09  Bo Thorsen  <bo@suse.co.uk>
 
        * config/cpu/x86-64/bits/cpu_limits.h (__glibcpp_long_bits): Add
 
 2002-01-08  John Fardo  <jfardo@laurelnetworks.com>
            Brad Garcia  <garsh@attbi.com>
-       
+
        * testsuite/27_io/filebuf_members.cc: Add test.
-       
+
 2002-01-07  Benjamin Kosnik  <bkoz@redhat.com>
            Craig Rodrigues  <rodrigc@mediaone.net>
 
        (c_base_headers): Adjust names, add ciso646.
        (bits_headers): Remove std_xxx.h headers.
        * include/Makefile.in: Regenerate.
-       
+
        * include/ext/iterator: Adjust includes.
        * include/ext/ropeimpl.h: Same.
        * include/ext/stl_hash_fun.h: Same.
        * include/ext/algorithm: Same.
-       
+
        * include/backward/bvector.h: Adjust includes.
        * include/backward/vector.h: Same.
        * include/backward/strstream: Same.
        std_queue.h, std_valarray.h, std_functional.h, std_limits.h,
        std_set.h, std_vector.h, std_iomanip.h, std_list.h, std_sstream.h:
        Same.
-       
+
        * include/c_std/bits/std_cassert.h: Move to...
        * include/c_std/cassert: Here.
        * include/c_std/std_cctype.h, std_cerrno.h, std_cfloat.h,
        * include/c_std/cstring: Same.
        * include/c_std/cstdio: Same.
        * include/c_std/bits: Remove directory.
-       
+
        * include/c/bits/std_cassert.h: Move to...
        * include/c/cassert: Here.
        * include/c/std_cctype.h, std_cerrno.h, std_cfloat.h,
        std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h,
        std_cwctype.h: Same.
        * include/c/bits: Remove directory.
-       
+
        * include/std/cwctype: Remove.
        * include/std/cwchar: Remove.
        * include/std/ctime: Remove.
index 3e963aa..fc44025 100644 (file)
@@ -1,6 +1,6 @@
 .\" t
 .\" This man page is released under the FDL as part of libstdc++-v3.
-.TH Intro 3 "27 September 2001" "GNU libstdc++-v3" "Standard C++ Library"
+.TH Intro 3 "27 March 2002" "GNU libstdc++-v3" "Standard C++ Library"
 .SH NAME
 Intro \- Introduction to the GNU libstdc++-v3 man pages
 .SH DESCRIPTION
@@ -48,7 +48,7 @@ SGIextensions A list of the extensions from the SGI STL subset.
 Sequences      Linear containers.
 .TE
 .P
-The HTML documentation goes into more depth.
+The HTML documentation typically goes into much more depth.
 .SH FILES
 Lots!
 .SS Standard Headers
index 375cd5f..6629933 100644 (file)
@@ -48,10 +48,10 @@ do not have the C code (to which the doxygen comments would be attached),
 this would need to be done in entirely separate files, a la doxygroups.cc.
 
 B)  Huge chunks of containers and strings are described in common "Tables"
-in the standard.  These are being pseudo-duplicated in tables.html.  We can
+in the standard.  These are pseudo-duplicated in tables.html.  We can
 use doxygen hooks like @pre and @see to reference the tables.  Then the
-individual classes would do like the standard does, and only document
-members for which additional info is available.
+individual classes do like the standard does, and only document members for
+which additional info is available.
 
 
 STYLE:
index 8af04b1..c6139f3 100644 (file)
@@ -1,5 +1,8 @@
 
 /*
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   See license.html for license.
+
    This just provides documentation for stuff that doesn't need to be in the
    source headers themselves.  It is a ".cc" file for the sole cheesy reason
    that it triggers many different text editors into doing Nice Things when
@@ -67,9 +70,8 @@ storing your objects.  The objects are destroyed when the container is
 itself destroyed.  Note that if you are storing pointers in a container,
 @c delete is @e not automatically called on the pointers before destroying them.
 
-All containers must meet certain requirements.  They would be listed here
-except I'm not certain how much of 14882 can be reproduced without a
-copyright violation.  Reproducing Tables 65 through 69 is a lot of typing...
+All containers must meet certain requirements, summarized in
+<a href="tables.html">tables</a>.
 
 The standard containers are further refined into
 @link Sequences Sequences@endlink and
@@ -92,6 +94,9 @@ the second category of differences, algorithmic complexity.  For example, if
 you need to perform many inserts and removals from the middle of a sequence,
 @c list would be ideal.  But if you need to perform constant-time access to
 random elements of the sequence, then @c list should not be used.
+
+All sequences must meet certain requirements, summarized in
+<a href="tables.html">tables</a>.
 */
 
 /** @addtogroup Assoc_containers Associative Containers
@@ -99,6 +104,11 @@ Associative containers allow fast retrieval of data based on keys.
 
 Each container type is parameterized on a @c Key type, and an ordering
 relation used to sort the elements of the container.
+
+There should be more text here.
+
+All associative containers must meet certain requirements, summarized in
+<a href="tables.html">tables</a>.
 */
 
 // // // // // // // // // // // // // // // // // // // // // // // //
index 88ea279..431344b 100644 (file)
      directly; it all gets run through Doxygen and re-output.)  So lots of
      tags were all being mangled.
 
-     Funk 'dat.  Now we let Doxygen do whateer it feels like doing for the
+     Funk 'dat.  Now we let Doxygen do whatever it feels like doing for the
      index page, and then we just flat copy this over top of it.  Voila!
-     Tags actually work like they're supposed to.
+     Tags actually work like they're supposed to in HTML.
 -->
 
 <h1>libstdc++-v3 Source Documentation</h1>
 
 <h2> Documentation Overview </h2>
 
-<p class="smallertext">Generated 2002-02-08.</p>
+<p class="smallertext">Generated 2002-03-27.</p>
 
 <p>There are two types of documentation for libstdc++-v3.  One is the
    distribution documentation, which can be read online at
@@ -122,8 +122,8 @@ href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/C++STYLE">C++STYLE</a>.
    Hewlett-Packard Company
    </blockquote>
 </p>
-<p>Part of the generated documentation is quoted from the C++ standard, which
-   is copyright 1998 by Information Technology Industry Council.
+<p>Part of the generated documentation is quoted from the ISO C++ Standard,
+   which is Copyright &copy; 1998 by Information Technology Industry Council.
 </p>
 
 </body>
index e93c947..7b3b7f5 100644 (file)
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 # Runs doxygen and massages the output files.
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 #
 # Synopsis:  run_doxygen --mode=[user|maint|man]  v3srcdir  v3builddir
 #
@@ -8,7 +9,7 @@
 
 
 # We can check now that the version of doxygen is >= this variable.
-DOXYVER=1.2.12
+DOXYVER=1.2.14
 doxygen=
 
 find_doxygen() {
@@ -147,6 +148,7 @@ set +e
 
 test $do_html = yes && {
     cp ${srcdir}/docs/doxygen/mainpage.html ${outdir}/html_${mode}/index.html
+    cp ${srcdir}/docs/doxygen/tables.html ${outdir}/html_${mode}/tables.html
     echo ::
     echo :: HTML pages begin with
     echo :: ${outdir}/html_${mode}/index.html
@@ -185,7 +187,8 @@ mv iterator_tags.3          Iterator_types.3
 find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
 rm -f *.h.3 *config* *.cc.3 *.tcc.3
 rm -f *_t.3  # workaround doxygen template parsing bug for now
-#mkdir trash  # this is used to examine what we would have deleted
+# this is used to examine what we would have deleted, for debugging
+#mkdir trash
 #find . -name "[a-z]*" -a ! -name "std_*" -print | xargs -i mv {} trash
 #mv *.h.3 *config* *.cc.3 *.tcc.3 *_t.3  trash
 
index d38e461..2382d25 100644 (file)
@@ -6,27 +6,40 @@
 </head>
 
 <body bgcolor="#ffffff">
-<!--
-     Tables can be jumped to with their number, e.g., "tables.html#67".
--->
 
 <h1>Tables</h1>
 
 <p>Most of the requirements on containers are presented in the ISO standard
-   in the form of tables.  In order to avoid massive duplication of effort,
-   we follow the standard's lead and present the information here.
-   Individual classes will only document their departures from these tables
-   (removed functions, additional functions, changes, etc).
+   in the form of tables.  In order to avoid massive duplication of effort
+   while documenting all the classes, we follow the standard's lead and
+   present the base information here.  Individual classes will only document
+   their departures from these tables (removed functions, additional functions,
+   changes, etc).
 </p>
 
-<p>The numbers are the same as those used in the standard.
+<p>We will not try to duplicate all of the surrounding text (footnotes,
+   explanations, etc) from the standard, because that would also entail a
+   duplication of effort.  Some of the surrounding text has been paraphrased
+   here for clarity.  If you are uncertain about the meaning or interpretation
+   of these notes, consult a good textbook, and/or purchase your own copy of
+   the standard (it's cheap, see our FAQ).
 </p>
 
+<p>The table numbers are the same as those used in the standard.  Tables can
+   be jumped to using their number, e.g., &quot;tables.html#67&quot;.  Only
+   Tables 65 through 69 are presented.  Some of the active Defect Reports
+   are also noted or incorporated.
+</p>
+
+<p class="smallertext">This will probably be incomplete for a while because
+filling out the tables is mind-frothingly boring.  Also, the HTML table
+rendering is ugly.  (Update:  mozilla 0.9.9 looks MUCH better.)</p>
+
 <hr />
 
 <a name="65"><p>
 <table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="3" title="Table 65">
+       cols="4" title="Table 65">
 <caption><h2>Table 65 --- Container Requirements</h2></caption>
 <tr><th colspan="4">
 Anything calling itself a container must meet these minimum requirements.
@@ -34,82 +47,240 @@ Anything calling itself a container must meet these minimum requirements.
 <tr>
 <td><strong>expression</strong></td>
 <td><strong>result type</strong></td>
-<td><strong>notes</strong></td>
+<td><strong>notes, pre-/post-conditions, assertions</strong></td>
 <td><strong>complexity</strong></td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>X::value_type</td>
+<td>T</td>
+<td>T is Assignable</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::reference</td>
+<td>lvalue of T</td>
+<td>&nbsp;</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::const_reference</td>
+<td>const lvalue of T</td>
+<td>&nbsp;</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::iterator</td>
+<td>iterator type pointing to T</td>
+<td>Any iterator category except output iterator.
+    Convertible to X::const_iterator.</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::const_iterator</td>
+<td>iterator type pointing to const T</td>
+<td>Any iterator category except output iterator.</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::difference_type</td>
+<td>signed integral type</td>
+<td>identical to the difference type of X::iterator and X::const_iterator</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::size_type</td>
+<td>unsigned integral type</td>
+<td>size_type can represent any non-negative value of difference_type</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X u;</td>
+<td>&nbsp;</td>
+<td>post: u.size() == 0</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>X();</td>
+<td>&nbsp;</td>
+<td>X().size == 0</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>X(a);</td>
+<td>&nbsp;</td>
+<td>a == X(a)</td>
+<td>linear</td>
+</tr>
+
+<tr>
+<td>X u(a);<br />X u = a;</td>
+<td>&nbsp;</td>
+<td>post: u == a.  Equivalent to: X u; u = a;</td>
+<td>linear</td>
+</tr>
+
+<tr>
+<td>(&amp;a)-&gt;~X();</td>
+<td>void</td>
+<td>dtor is applied to every element of a; all the memory is deallocated</td>
+<td>linear</td>
+</tr>
+
+<tr>
+<td>a.begin()</td>
+<td>iterator; const_iterator for constant a</td>
+<td>&nbsp;</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>a.end()</td>
+<td>iterator; const_iterator for constant a</td>
+<td>&nbsp;</td>
+<td>constant</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<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></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a != b</td>
+<td>convertible to bool</td>
+<td>equivalent to !(a==b)</td>
+<td>linear</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.swap(b)</td>
+<td>void</td>
+<td>swap(a,b)</td>
+<td>may or may not have constant complexity</td>
+</tr>
+
+<tr>
+<td>r = a</td>
+<td>X&amp;</td>
+<td>r == a</td>
+<td>linear</td>
+</tr>
+
+<!-- a fifth column, "operation semantics," magically appears in the table
+     at this point... wtf?  -->
+<tr>
+<td>a.size()</td>
+<td>size_type</td>
+<!--<td>a.end() - a.begin()</td>-->
+<td>&nbsp;</td>
+<td>may or may not have constant complexity</td>
+</tr>
+
+<tr>
+<td>a.max_size()</td>
+<td>size_type</td>
+<!--<td>size() of the largest possible container</td>-->
+<td>&nbsp;</td>
+<td>may or may not have constant complexity</td>
+</tr>
+
+<tr>
+<td>a.empty()</td>
+<td>convertible to bool</td>
+<!--<td>a.size() == 0</td>-->
+<td>&nbsp;</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>a &lt; b</td>
+<td>convertible to bool</td>
+<!--<td>lexographical_compare(a.begin,a.end(),b.begin(),b.end())</td>-->
+<td>pre: &lt; is defined for T and is a total ordering relation</td>
+<td>linear</td>
+</tr>
+
+<tr>
+<td>a &gt; b</td>
+<td>convertible to bool</td>
+<!--<td>b &lt; a</td>-->
+<td>&nbsp;</td>
+<td>linear</td>
+</tr>
+
+<tr>
+<td>a &lt;= b</td>
+<td>convertible to bool</td>
+<!--<td>!(a &gt; b)</td>-->
+<td>&nbsp;</td>
+<td>linear</td>
+</tr>
+
+<tr>
+<td>a &gt;= b</td>
+<td>convertible to bool</td>
+<!--<td>!(a &lt; b)</td>-->
+<td>&nbsp;</td>
+<td>linear</td>
 </tr>
 </table title="Table 65"></p></a>
 
 
 <a name="66"><p>
 <table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="3" title="Table 66">
+       cols="4" title="Table 66">
 <caption><h2>Table 66 --- Reversible Container Requirements</h2></caption>
 <tr><th colspan="4">
 If a container's iterator is bidirectional or random-access, then the
 container also meets these requirements.
-Foo, bar, and baz are such containers.
+Deque, list, vector, map, multimap, set, and multiset are such containers.
 </th></tr>
 <tr>
 <td><strong>expression</strong></td>
 <td><strong>result type</strong></td>
-<td><strong>notes</strong></td>
+<td><strong>notes, pre-/post-conditions, assertions</strong></td>
 <td><strong>complexity</strong></td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>X::reverse_iterator</td>
+<td>iterator type pointing to T</td>
+<td>reverse_iterator&lt;iterator&gt;</td>
+<td>compile time</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>X::const_reverse_iterator</td>
+<td>iterator type pointing to const T</td>
+<td>reverse_iterator&lt;const_iterator&gt;</td>
+<td>compile time</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.rbegin()</td>
+<td>reverse_iterator; const_reverse_iterator for constant a</td>
+<td>reverse_iterator(end())</td>
+<td>constant</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.rend()</td>
+<td>reverse_iterator; const_reverse_iterator for constant a</td>
+<td>reverse_iterator(begin())</td>
+<td>constant</td>
 </tr>
 </table title="Table 66"></p></a>
 
@@ -118,133 +289,330 @@ Foo, bar, and baz are such containers.
 <table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
        cols="3" title="Table 67">
 <caption><h2>Table 67 --- Sequence Requirements</h2></caption>
-<tr><th colspan="4">
+<tr><th colspan="3">
 These are in addition to the requirements of <a href="#65">containers</a>.
-Foo, bar, and baz are such containers.
+Deque, list, and vector are such containers.
 </th></tr>
 <tr>
 <td><strong>expression</strong></td>
 <td><strong>result type</strong></td>
-<td><strong>notes</strong></td>
-<td><strong>complexity</strong></td>
+<td><strong>notes, pre-/post-conditions, assertions</strong></td>
+</tr>
+
+<tr>
+<td>X(n,t)<br />X a(n,t)</td>
+<td>&nbsp;</td>
+<td>constructs a sequence with n copies of t<br />post: size() == n</td>
+</tr>
+
+<tr>
+<td>X(i,j)<br />X a(i,j)</td>
+<td>&nbsp;</td>
+<td>constructs a sequence equal to the range [i,j)<br />
+    post: size() == distance(i,j)</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.insert(p,t)</td>
+<td>iterator (points to the inserted copy of t)</td>
+<td>inserts a copy of t before p</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.insert(p,n,t)</td>
+<td>void</td>
+<td>inserts n copies of t before p</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<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></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.erase(q)</td>
+<td>iterator (points to the element following q (prior to erasure))</td>
+<td>erases the element pointed to by q</td>
+</tr>
+
+<tr>
+<td>a.erase(q1,q1)</td>
+<td>iterator (points to the element pointed to by q2 (prior to erasure))</td>
+<td>erases the elements in the range [q1,q2)</td>
+</tr>
+
+<tr>
+<td>a.clear()</td>
+<td>void</td>
+<td>erase(begin(),end())<br />post: size() == 0</td>
 </tr>
 </table title="Table 67"></p></a>
 
 
 <a name="68"><p>
 <table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="3" title="Table 68">
+       cols="4" title="Table 68">
 <caption><h2>Table 68 --- Optional Sequence Operations</h2></caption>
 <tr><th colspan="4">
 These operations are only included in containers when the operation can be
 done in constant time.
-Foo, bar, and baz are such containers.
 </th></tr>
 <tr>
 <td><strong>expression</strong></td>
 <td><strong>result type</strong></td>
-<td><strong>notes</strong></td>
-<td><strong>complexity</strong></td>
+<td><strong>operational semantics</strong></td>
+<td><strong>container</strong></td>
+</tr>
+
+<tr>
+<td>a.front()</td>
+<td>reference; const_reference for constant a</td>
+<td>*a.begin()</td>
+<td>vector, list, deque</td>
+</tr>
+
+<tr>
+<td>a.back()</td>
+<td>reference; const_reference for constant a</td>
+<td>*--a.end()</td>
+<td>vector, list, deque</td>
+</tr>
+
+<tr>
+<td>a.push_front(x)</td>
+<td>void</td>
+<td>a.insert(a.begin(),x)</td>
+<td>list, deque</td>
+</tr>
+
+<tr>
+<td>a.push_back(x)</td>
+<td>void</td>
+<td>a.insert(a.end(),x)</td>
+<td>vector, list, deque</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.pop_front()</td>
+<td>void</td>
+<td>a.erase(a.begin())</td>
+<td>list, deque</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.pop_back()</td>
+<td>void</td>
+<td>a.erase(--a.end())</td>
+<td>vector, list, deque</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a[n]</td>
+<td>reference; const_reference for constant a</td>
+<td>*(a.begin() + n)</td>
+<td>vector, deque</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.at(n)</td>
+<td>reference; const_reference for constant a</td>
+<td>*(a.begin() + n)<br />throws out_of_range if n&gt;=a.size()</td>
+<td>vector, deque</td>
 </tr>
 </table title="Table 68"></p></a>
 
 
 <a name="69"><p>
 <table cellpadding="3" cellspacing="5" align="center" rules="rows" border="3"
-       cols="3" title="Table 69">
+       cols="4" title="Table 69">
 <caption><h2>Table 69 --- Associative Container Requirements</h2></caption>
 <tr><th colspan="4">
 These are in addition to the requirements of <a href="#65">containers</a>.
+Map, multimap, set, and multiset are such containers.  An associative
+container supports <em>unique keys</em> (and is written as
+<code>a_uniq</code> instead of <code>a</code>) if it may contain at most
+one element for each key.  Otherwise it supports <em>equivalent keys</em>
+(and is written <code>a_eq</code>).  Examples of the former are set and map,
+examples of the latter are multiset and multimap.
 </th></tr>
 <tr>
 <td><strong>expression</strong></td>
 <td><strong>result type</strong></td>
-<td><strong>notes</strong></td>
+<td><strong>notes, pre-/post-conditions, assertions</strong></td>
 <td><strong>complexity</strong></td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<td>X::key_type</td>
+<td>Key</td>
+<td>Key is Assignable</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::key_compare</td>
+<td>Compare</td>
+<td>defaults to less&lt;key_type&gt;</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X::value_compare</td>
+<td>a binary predicate type</td>
+<td>same as key_compare for set and multiset; an ordering relation on
+    pairs induced by the first component (Key) for map and multimap</td>
+<td>compile time</td>
+</tr>
+
+<tr>
+<td>X(c)<br />X a(c)</td>
+<td>&nbsp;</td>
+<td>constructs an empty container which uses c as a comparison object</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>X()<br />X a</td>
+<td>&nbsp;</td>
+<td>constructs an empty container using Compare() as a comparison object</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>X(i,j,c)<br />X a(i,j,c)</td>
+<td>&nbsp;</td>
+<td>constructs an empty container and inserts elements from the range [i,j)
+    into it; uses c as a comparison object</td>
+<td>NlogN in general where N is distance(i,j); linear if [i,j) is
+    sorted with value_comp()</td>
+</tr>
+
+<tr>
+<td>X(i,j)<br />X a(i,j)</td>
+<td>&nbsp;</td>
+<td>same as previous, but uses Compare() as a comparison object</td>
+<td>same as previous</td>
+</tr>
+
+<tr>
+<td>a.key_comp()</td>
+<td>X::key_compare</td>
+<td>returns the comparison object out of which a was constructed</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>a.value_comp()</td>
+<td>X::value_compare</td>
+<td>returns an object constructed out of the comparison object</td>
+<td>constant</td>
+</tr>
+
+<tr>
+<td>a_uniq.insert(t)</td>
+<td>pair&lt;iterator,bool&gt;</td>
+<td>&quot;Inserts t if and only if there is no element in the container with
+    key equivalent to the key of t. The bool component of the returned pair
+    is true -iff- the insertion took place, and the iterator component of
+    the pair points to the element with key equivalent to the key of
+    t.&quot;</td> <!-- DR 316 -->
+<td>logarithmic</td>
+</tr>
+
+<tr>
+<td>a_eq.insert(t)</td>
+<td>iterator</td>
+<td>inserts t, returns the iterator pointing to the inserted element</td>
+<td>logarithmic</td>
+</tr>
+
+<tr>
+<td>a.insert(p,t)</td>
+<td>iterator</td>
+<td>possibly inserts t (depending on whether a_uniq or a_eq); returns iterator
+    pointing to the element with key equivalent to the key of t; iterator p
+    is a hint pointing to where the insert should start to search</td>
+<td>logarithmic in general, amortized constant if t is inserted right
+    after p<br />
+    <strong>[but see DR 233 and <a href="
+    http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4">our
+    specific notes</a>]</strong></td>
+</tr>
+
+<tr>
+<td>a.insert(i,j)</td>
+<td>void</td>
+<td>pre: i, j are not iterators into a.  possibly inserts each element from
+    the range [i,j) (depending on whether a_uniq or a_eq)</td>
+<td>Nlog(size()+N) where N is distance(i,j) in general</td> <!-- DR 264 -->
+</tr>
+
+<tr>
+<td>a.erase(k)</td>
+<td>size_type</td>
+<td>erases all elements with key equivalent to k; returns number of erased
+    elements</td>
+<td>log(size()) + count(k)</td>
+</tr>
+
+<tr>
+<td>a.erase(q)</td>
+<td>void</td>
+<td>erases the element pointed to by q</td>
+<td>amortized constant</td>
+</tr>
+
+<tr>
+<td>a.erase(q1,q2)</td>
+<td>void</td>
+<td>erases all the elements in the range [q1,q2)</td>
+<td>log(size()) + distance(q1,q2)</td>
+</tr>
+
+<tr>
+<td>a.clear()</td>
+<td>void</td>
+<td>erases everthing; post: size() == 0</td>
+<td>linear</td> <!-- DR 224 -->
+</tr>
+
+<tr>
+<td>a.find(k)</td>
+<td>iterator; const_iterator for constant a</td>
+<td>returns iterator pointing to element with key equivalent to k, or
+    a.end() if no such element found</td>
+<td>logarithmic</td>
+</tr>
+
+<tr>
+<td>a.count(k)</td>
+<td>size_type</td>
+<td>returns number of elements with key equivalent to k</td>
+<td>log(size()) + count(k)</td>
 </tr>
 
 <tr>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
+<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></td>
-<td></td>
-<td></td>
-<td></td>
+<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></td>
-<td></td>
-<td></td>
-<td></td>
+<td>a.equal_range(k)</td>
+<td>pair&lt;iterator,iterator&gt;;
+    pair&lt;const_iterator, const_iterator&gt; for constant a</td>
+<td>equivalent to make_pair(a.lower_bound(k), a.upper_bound(k))</td>
+<td>logarithmic</td>
 </tr>
 </table title="Table 69"></p></a>
 
@@ -252,6 +620,8 @@ These are in addition to the requirements of <a href="#65">containers</a>.
 <hr />
 <p class="smallertext"><em>
 See <a href="mainpage.html">mainpage.html</a> for copying conditions.
+See <a href="http://gcc.gnu.org/libstdc++/">the libstdc++-v3 homepage</a>
+for more information.
 </em></p>
 
 
index 475dd53..bb9809a 100644 (file)
@@ -222,9 +222,7 @@ GENERATE_BUGLIST       = YES
 # will result in a user defined paragraph with heading "Side Effects:". 
 # You can put \n's in the value part of an alias to insert newlines.
 
-ALIASES                = "maint=@if maint" \
-                         "endmaint=@endif" \
-       "doctodo=@todo\nDoc me!  See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more."
+ALIASES                = "doctodo=@todo\nDoc me!  See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more."
 
 # The ENABLED_SECTIONS tag can be used to enable conditional 
 # documentation sections, marked by \if sectionname ... \endif.
index a251bef..35832c3 100644 (file)
@@ -159,9 +159,9 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an overload used by find() for the Input Iterator case.
-   *  @endmaint
+   *  @endif
   */
   template<typename _InputIter, typename _Tp>
     inline _InputIter
@@ -175,9 +175,9 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an overload used by find_if() for the Input Iterator case.
-   *  @endmaint
+   *  @endif
   */
   template<typename _InputIter, typename _Predicate>
     inline _InputIter
@@ -191,9 +191,9 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an overload used by find() for the RAI case.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Tp>
     _RandomAccessIter
@@ -235,9 +235,9 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an overload used by find_if() for the RAI case.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Predicate>
     _RandomAccessIter
@@ -1087,10 +1087,10 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter)
    *  overloaded for output iterators.
-   *  @endmaint
+   *  @endif
   */
   template<typename _InputIter, typename _OutputIter>
     _OutputIter
@@ -1110,10 +1110,10 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an uglified unique_copy(_InputIter, _InputIter, _OutputIter)
    *  overloaded for forward iterators.
-   *  @endmaint
+   *  @endif
   */
   template<typename _InputIter, typename _ForwardIter>
     _ForwardIter
@@ -1159,11 +1159,11 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an uglified
    *  unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate)
    *  overloaded for output iterators.
-   *  @endmaint
+   *  @endif
   */
   template<typename _InputIter, typename _OutputIter, typename _BinaryPredicate>
     _OutputIter
@@ -1188,11 +1188,11 @@ namespace std
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an uglified
    *  unique_copy(_InputIter, _InputIter, _OutputIter, _BinaryPredicate)
    *  overloaded for forward iterators.
-   *  @endmaint
+   *  @endif
   */
   template<typename _InputIter, typename _ForwardIter, typename _BinaryPredicate>
     _ForwardIter
@@ -1301,10 +1301,10 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an uglified reverse(_BidirectionalIter, _BidirectionalIter)
    *  overloaded for bidirectional iterators.
-   *  @endmaint
+   *  @endif
   */
   template<typename _BidirectionalIter>
     void
@@ -1319,10 +1319,10 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is an uglified reverse(_BidirectionalIter, _BidirectionalIter)
    *  overloaded for bidirectional iterators.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter>
     void
@@ -1389,9 +1389,9 @@ __result, __binary_pred, _IterType());
 
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the rotate algorithm specialized on RAIs.
-   *  @endmaint
+   *  @endif
   */
   template<typename _EuclideanRingElement>
     _EuclideanRingElement
@@ -1406,9 +1406,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the rotate algorithm.
-   *  @endmaint
+   *  @endif
   */
   template<typename _ForwardIter>
     void
@@ -1439,9 +1439,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the rotate algorithm.
-   *  @endmaint
+   *  @endif
   */
   template<typename _BidirectionalIter>
     void
@@ -1472,9 +1472,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the rotate algorithm.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter>
     void
@@ -1582,13 +1582,13 @@ __result, __binary_pred, _IterType());
 
 
   /**
-   *  @maint
+   *  @if maint
    *  Return a random number in the range [0, __n).  This function encapsulates
    *  whether we're using rand (part of the standard C library) or lrand48
    *  (not standard, but a much better choice whenever it's available).
    *
    *  XXX There is no corresponding encapsulation fn to seed the generator.
-   *  @endmaint
+   *  @endif
   */
   template<typename _Distance>
     inline _Distance
@@ -1648,9 +1648,9 @@ __result, __binary_pred, _IterType());
 
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function...
-   *  @endmaint
+   *  @endif
   */
   template<typename _ForwardIter, typename _Predicate>
     _ForwardIter
@@ -1675,9 +1675,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function...
-   *  @endmaint
+   *  @endif
   */
   template<typename _BidirectionalIter, typename _Predicate>
     _BidirectionalIter
@@ -1730,9 +1730,9 @@ __result, __binary_pred, _IterType());
 
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function...
-   *  @endmaint
+   *  @endif
   */
   template<typename _ForwardIter, typename _Predicate, typename _Distance>
     _ForwardIter
@@ -1755,9 +1755,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function...
-   *  @endmaint
+   *  @endif
   */
   template<typename _ForwardIter, typename _Pointer, typename _Predicate,
           typename _Distance>
@@ -1837,9 +1837,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function...
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Tp>
     _RandomAccessIter
@@ -1860,9 +1860,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function...
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Tp, typename _Compare>
     _RandomAccessIter
@@ -1884,17 +1884,17 @@ __result, __binary_pred, _IterType());
 
 
   /**
-   *  @maint
+   *  @if maint
    *  @doctodo
    *  This controls some aspect of the sort routines.
-   *  @endmaint
+   *  @endif
   */
   enum { _M_threshold = 16 };
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Tp>
     void
@@ -1911,9 +1911,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Tp, typename _Compare>
     void
@@ -1930,9 +1930,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter>
     void
@@ -1953,9 +1953,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Compare>
     void
@@ -1977,9 +1977,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter>
     inline void
@@ -1992,9 +1992,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Compare>
     inline void
@@ -2008,9 +2008,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter>
     void
@@ -2025,9 +2025,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Compare>
     void
@@ -2043,9 +2043,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _Size>
     inline _Size
@@ -2057,9 +2057,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Size>
     void
@@ -2085,9 +2085,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the sort routine.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Size, typename _Compare>
     void
@@ -2166,9 +2166,9 @@ __result, __binary_pred, _IterType());
 
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the stable sorting routines.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter>
     void
@@ -2187,9 +2187,9 @@ __result, __binary_pred, _IterType());
     }
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function for the stable sorting routines.
-   *  @endmaint
+   *  @endif
   */
   template<typename _RandomAccessIter, typename _Compare>
     void
index 4ff816b..e193297 100644 (file)
@@ -50,7 +50,7 @@
 
 /**
  *  @defgroup Allocators Memory Allocators
- *  @maint
+ *  @if maint
  *  stl_alloc.h implements some node allocators.  These are NOT the same as
  *  allocators in the C++ standard, nor in the original H-P STL.  They do not
  *  encapsulate different pointer types; we assume that there is only one
@@ -72,7 +72,7 @@
  *
  *  "SGI" allocators may be wrapped in __allocator to convert the interface
  *  into a "standard" one.
- *  @endmaint
+ *  @endif
  *
  *  The canonical description of these classes is in docs/html/ext/howto.html
  *  or online at http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html#3
 namespace std
 {
   /**
-   *  @maint
+   *  @if maint
    *  A new-based allocator, as required by the standard.  Allocation and
    *  deallocation forward to global new and delete.  "SGI" style, minus
    *  reallocate().
-   *  @endmaint
+   *  @endif
    *  (See @link Allocators allocators info @endlink for more.)
   */
   class __new_alloc 
@@ -109,13 +109,13 @@ namespace std
   
 
   /**
-   *  @maint
+   *  @if maint
    *  A malloc-based allocator.  Typically slower than the
    *  __default_alloc_template (below).  Typically thread-safe and more
    *  storage efficient.  The template argument is unused and is only present
    *  to permit multiple instantiations (but see __default_alloc_template
    *  for caveats).  "SGI" style, plus __set_malloc_handler for OOM conditions.
-   *  @endmaint
+   *  @endif
    *  (See @link Allocators allocators info @endlink for more.)
   */
   template <int __inst>
@@ -207,13 +207,13 @@ namespace std
 
 
   /**
-   *  @maint
+   *  @if maint
    *  This is used primarily (only?) in _Alloc_traits and other places to
    *  help provide the _Alloc_type typedef.
    *
    *  This is neither "standard"-conforming nor "SGI".  The _Alloc parameter
    *  must be "SGI" style.
-   *  @endmaint
+   *  @endif
    *  (See @link Allocators allocators info @endlink for more.)
   */
   template<class _Tp, class _Alloc>
@@ -235,7 +235,7 @@ namespace std
 
 
   /**
-   *  @maint
+   *  @if maint
    *  An adaptor for an underlying allocator (_Alloc) to check the size
    *  arguments for debugging.  Errors are reported using assert; these
    *  checks can be disabled via NDEBUG, but the space penalty is still
@@ -245,7 +245,7 @@ namespace std
    *  "There is some evidence that this can confuse Purify." - SGI comment
    *
    *  This adaptor is "SGI" style.  The _Alloc parameter must also be "SGI".
-   *  @endmaint
+   *  @endif
    *  (See @link Allocators allocators info @endlink for more.)
   */
   template <class _Alloc>
@@ -293,7 +293,7 @@ typedef __mem_interface __single_client_alloc;
 
 
 /**
- *  @maint
+ *  @if maint
  *  Default node allocator.  "SGI" style.  Uses __mem_interface for its
  *  underlying requests (and makes as few requests as possible).
  *  **** Currently __mem_interface is always __new_alloc, never __malloc*.
@@ -318,7 +318,7 @@ typedef __mem_interface __single_client_alloc;
  *  approach.  If you do not wish to share the free lists with the main
  *  default_alloc instance, instantiate this with a non-zero __inst.
  *
- *  @endmaint
+ *  @endif
  *  (See @link Allocators allocators info @endlink for more.)
 */
 template<bool __threads, int __inst>
@@ -682,14 +682,14 @@ inline bool operator!=(const allocator<_T1>&, const allocator<_T2>&)
 
 
 /**
- *  @maint
+ *  @if maint
  *  Allocator adaptor to turn an "SGI" style allocator (e.g., __alloc,
  *  __malloc_alloc_template) into a "standard" conforming allocator.  Note
  *  that this adaptor does *not* assume that all objects of the underlying
  *  alloc class are identical, nor does it assume that all of the underlying
  *  alloc's member functions are static member functions.  Note, also, that
  *  __allocator<_Tp, __alloc> is essentially the same thing as allocator<_Tp>.
- *  @endmaint
+ *  @endif
  *  (See @link Allocators allocators info @endlink for more.)
 */
 template <class _Tp, class _Alloc>
@@ -800,7 +800,7 @@ inline bool operator!=(const __debug_alloc<_Alloc>&,
 
 
 /**
- *  @maint
+ *  @if maint
  *  Another allocator adaptor:  _Alloc_traits.  This serves two purposes.
  *  First, make it possible to write containers that can use either "SGI"
  *  style allocators or "standard" allocators.  Second, provide a mechanism
@@ -832,7 +832,7 @@ inline bool operator!=(const __debug_alloc<_Alloc>&,
  *  The size_t parameters are "standard" style (see top of stl_alloc.h) in
  *  that they take counts, not sizes.
  *
- *  @endmaint
+ *  @endif
  *  (See @link Allocators allocators info @endlink for more.)
 */
 //@{
index 51bd8a0..6859138 100644 (file)
@@ -1,6 +1,6 @@
 // nonstandard construct and destroy functions -*- C++ -*-
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 namespace std
 {
   /**
-   * @maint
+   * @if maint
    * Constructs an object in existing memory by invoking an allocated
    * object's constructor with an initializer.
-   * @endmaint
+   * @endif
    */
   template <class _T1, class _T2>
     inline void
@@ -78,10 +78,10 @@ namespace std
     { new (static_cast<void*>(__p)) _T1(__value); }
   
   /**
-   * @maint
+   * @if maint
    * Constructs an object in existing memory by invoking an allocated
    * object's default constructor (no initializers).
-   * @endmaint
+   * @endif
    */
   template <class _T1>
     inline void
@@ -89,11 +89,11 @@ namespace std
     { new (static_cast<void*>(__p)) _T1(); }
 
   /**
-   * @maint
+   * @if maint
    * Destroy a range of objects with nontrivial destructors.  
    *
    * This is a helper function used only by _Destroy().
-   * @endmaint
+   * @endif
    */
   template <class _ForwardIterator>
     inline void
@@ -101,13 +101,13 @@ namespace std
     { for ( ; __first != __last; ++__first) _Destroy(&*__first); }
 
   /**
-   * @maint
+   * @if maint
    * Destroy a range of objects with trivial destructors.  Since the destructors
    * are trivial, there's nothing to do and hopefully this function will be
    * entirely optimized away.
    *
    * This is a helper function used only by _Destroy().
-   * @endmaint
+   * @endif
    */
   template <class _ForwardIterator> 
     inline void
@@ -115,9 +115,9 @@ namespace std
     { }
 
   /**
-   * @maint
+   * @if maint
    * Destroy the object pointed to by a pointer type.
-   * @endmaint
+   * @endif
    */
   template <class _Tp>
     inline void
@@ -125,11 +125,11 @@ namespace std
     { __pointer->~_Tp(); }
   
   /**
-   * @maint
+   * @if maint
    * Destroy a range of objects.  If the value_type of the object has
    * a trivial destructor, the compiler should optimize all of this
    * away, otherwise the objects' destructors must be invoked.
-   * @endmaint
+   * @endif
    */
   template <class _ForwardIterator>
     inline void
@@ -146,6 +146,3 @@ namespace std
 
 #endif /* _CPP_BITS_STL_CONSTRUCT_H */
 
-// Local Variables:
-// mode:C++
-// End:
index b2d58d8..5cd62b7 100644 (file)
@@ -1,6 +1,6 @@
 // deque implementation -*- C++ -*-
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -73,14 +73,14 @@ namespace std
 { 
 
 /**
- *  @maint
+ *  @if maint
  *  @brief This function controls the size of memory nodes.
  *  @param  size  The size of an element.
  *  @return   The number (not bytesize) of elements per node.
  *
  *  This function started off as a compiler kludge from SGI, but seems to
  *  be a useful wrapper around a repeated constant expression.
- *  @endmaint
+ *  @endif
 */
 inline size_t 
 __deque_buf_size(size_t __size) 
@@ -94,9 +94,9 @@ __deque_buf_size(size_t __size)
  *  marking its valid range.  Access to elements is done as offsets of either
  *  of those two, relying on operator overloading in this class.
  *
- *  @maint
+ *  @if maint
  *  All the functions are op overloads except for _M_set_node.
- *  @endmaint
+ *  @endif
 */
 template <class _Tp, class _Ref, class _Ptr>
 struct _Deque_iterator
@@ -204,11 +204,11 @@ struct _Deque_iterator
   bool operator<=(const _Self& __x) const { return !(__x < *this); }
   bool operator>=(const _Self& __x) const { return !(*this < __x); }
 
-  /** @maint
+  /** @if maint
    *  Prepares to traverse new_node.  Sets everything except _M_cur, which
    *  should therefore be set by the caller immediately afterwards, based on
    *  _M_first and _M_last.
-   *  @endmaint
+   *  @endif
   */
   void _M_set_node(_Map_pointer __new_node) {
     _M_node = __new_node;
@@ -225,16 +225,16 @@ operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Ref, _Ptr>& __x)
 }
 
 
-/// @maint Primary default version.  @endmaint
+/// @if maint Primary default version.  @endif
 /**
- *  @maint
+ *  @if maint
  *  Deque base class.  It has two purposes.  First, its constructor
  *  and destructor allocate (but don't initialize) storage.  This makes
  *  exception safety easier.  Second, the base class encapsulates all of
  *  the differences between SGI-style allocators and standard-conforming
  *  allocators.  There are two versions:  this ordinary one, and the
  *  space-saving specialization for instanceless allocators.
- *  @endmaint
+ *  @endif
 */
 template <class _Tp, class _Alloc, bool __is_static>
 class _Deque_alloc_base
@@ -270,7 +270,7 @@ protected:
   size_t _M_map_size;
 };
 
-/// Specialization for instanceless allocators.
+/// @if maint Specialization for instanceless allocators.  @endif
 template <class _Tp, class _Alloc>
 class _Deque_alloc_base<_Tp, _Alloc, true>
 {
@@ -301,14 +301,14 @@ protected:
 
 
 /**
- *  @maint
+ *  @if maint
  *  Deque base class.  Using _Alloc_traits in the instantiation of the parent
  *  class provides the compile-time dispatching mentioned in the parent's docs.
  *  This class provides the unified face for deque's allocation.
  *
  *  Nothing in this class ever constructs or destroys an actual Tp element.
  *  (Deque handles that itself.)  Only/All memory management is performed here.
- *  @endmaint
+ *  @endif
 */
 template <class _Tp, class _Alloc>
 class _Deque_base
@@ -352,13 +352,13 @@ _Deque_base<_Tp,_Alloc>::~_Deque_base()
 }
 
 /**
- *  @maint
+ *  @if maint
  *  @brief Layout storage.
  *  @param  num_elements  The count of T's for which to allocate space at first.
  *  @return   Nothing.
  *
  *  The initial underlying memory layout is a bit complicated...
- *  @endmaint
+ *  @endif
 */
 template <class _Tp, class _Alloc>
 void
@@ -415,6 +415,14 @@ _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
 
 
 /**
+ *  @ingroup Containers
+ *  @ingroup Sequences
+ *
+ *  Meets the requirements of a <a href="tables.html#65">container</a>, a
+ *  <a href="tables.html#66">reversible container</a>, and a
+ *  <a href="tables.html#67">sequence</a>, including the
+ *  <a href="tables.html#68">optional sequence requirements</a>.
+ *
  *  Placeholder:  see http://www.sgi.com/tech/stl/Deque.html for now.
  *
  *  In previous HP/SGI versions of deque, there was an extra template parameter
@@ -422,7 +430,7 @@ _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
  *  the C++ standard (it can be detected using template template parameters),
  *  and it was removed.
  *
- *  @maint
+ *  @if maint
  *  Here's how a deque<Tp> manages memory.  Each deque has 4 members:
  *  
  *  - Tp**        _M_map
@@ -483,8 +491,7 @@ _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish)
  *  the implementation routines for deque itself work only through the start
  *  and finish iterators.  This keeps the routines simple and sane, and we can
  *  use other standard algorithms as well.
- *
- *  @endmaint
+ *  @endif
 */
 template <class _Tp, class _Alloc = allocator<_Tp> >
 class deque : protected _Deque_base<_Tp, _Alloc>
@@ -524,11 +531,11 @@ protected:
   using _Base::_M_allocate_map;
   using _Base::_M_deallocate_map;
 
-  /** @maint
+  /** @if maint
    *  A total of four data members accumulated down the heirarchy.  If the
    *  _Alloc type requires separate instances, then two of them will also be
    *  included in each deque.
-   *  @endmaint
+   *  @endif
   */
   using _Base::_M_map;
   using _Base::_M_map_size;
@@ -1035,7 +1042,7 @@ void deque<_Tp,_Alloc>::clear()
 }
 
 /**
- *  @maint
+ *  @if maint
  *  @brief Fills the deque with copies of value.
  *  @param  value  Initial value.
  *  @return   Nothing.
@@ -1044,7 +1051,7 @@ void deque<_Tp,_Alloc>::clear()
  *
  *  This function is called only when the user provides an explicit size (with
  *  or without an explicit exemplar value).
- *  @endmaint
+ *  @endif
 */
 template <class _Tp, class _Alloc>
 void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __value)
@@ -1063,7 +1070,7 @@ void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __value)
 }
 
 /** @{
- *  @maint
+ *  @if maint
  *  @brief Fills the deque with whatever is in [first,last).
  *  @param  first  An input iterator.
  *  @param  last  An input iterator.
@@ -1072,7 +1079,7 @@ void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __value)
  *  If the iterators are actually forward iterators (or better), then the
  *  memory layout can be done all at once.  Else we move forward using
  *  push_back on each value from the iterator.
- *  @endmaint
+ *  @endif
 */
 template <class _Tp, class _Alloc> template <class _InputIterator>
 void deque<_Tp,_Alloc>::_M_range_initialize(_InputIterator __first,
@@ -1570,6 +1577,3 @@ inline void swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y) {
   
 #endif /* __GLIBCPP_INTERNAL_DEQUE_H */
 
-// Local Variables:
-// mode:C++
-// End:
index e5b3fa4..5dff8fc 100644 (file)
@@ -146,10 +146,10 @@ namespace std
     };
 
   /**
-   *  @maint
+   *  @if maint
    *  This function is not a part of the C++ standard but is syntactic
    *  sugar for internal library use only.
-   *  @endmaint
+   *  @endif
   */
   template<typename _Iter>
     inline typename iterator_traits<_Iter>::iterator_category
@@ -160,7 +160,3 @@ namespace std
 
 #endif /* __GLIBCPP_INTERNAL_ITERATOR_BASE_TYPES_H */
 
-
-// Local Variables:
-// mode:C++
-// End:
index 9920579..3d470b1 100644 (file)
@@ -1,6 +1,6 @@
 // List implementation -*- C++ -*-
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -273,7 +273,19 @@ namespace std
       void clear();
     };
 
-
+  /**
+   *  @ingroup Containers
+   *  @ingroup Sequences
+   *
+   *  Meets the requirements of a <a href="tables.html#65">container</a>, a
+   *  <a href="tables.html#66">reversible container</a>, and a
+   *  <a href="tables.html#67">sequence</a>, including the
+   *  <a href="tables.html#68">optional sequence requirements</a> with the
+   *  %exception of @c at and @c operator[].
+   *
+   *  @doctodo
+   *
+  */
   template<typename _Tp, typename _Alloc = allocator<_Tp> >
     class list : protected _List_base<_Tp, _Alloc>
     {
index cc1ef78..ce3dc0b 100644 (file)
@@ -57,7 +57,7 @@
  *  This is an internal header file, included by other library headers.
  *  You should not attempt to use it directly.
  *
- *  @maint
+ *  @if maint
  *  Inclusion of this file has been removed from
  *  all of the other STL headers for safety reasons, except std_utility.h.
  *  For more information, see the thread of about twenty messages starting
@@ -65,7 +65,7 @@
  *  FAQ at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4 .
  *
  *  Short summary:  the rel_ops operators should be avoided for the present.
- *  @endmaint
+ *  @endif
  */
 
 #ifndef _CPP_BITS_STL_RELOPS_H
index 088807f..7b88f93 100644 (file)
@@ -65,11 +65,11 @@ namespace std
 {
 
 /**
- *  @maint
+ *  @if maint
  *  This class is used in two places:  stl_algo.h and ext/memory, where it
  *  is wrapped as the temporary_buffer class.  See temporary_buffer docs for
  *  more notes.
- *  @endmaint
+ *  @endif
 */
 template <class _ForwardIterator, class _Tp>
   class _Temporary_buffer
index 75260a3..81bb975 100644 (file)
@@ -1,6 +1,6 @@
 // Vector implementation -*- C++ -*-
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -148,6 +148,15 @@ struct _Vector_base
  *  @brief  A standard container which offers fixed time access to individual
  *  elements in any order.
  *
+ *  @ingroup Containers
+ *  @ingroup Sequences
+ *
+ *  Meets the requirements of a <a href="tables.html#65">container</a>, a
+ *  <a href="tables.html#66">reversible container</a>, and a
+ *  <a href="tables.html#67">sequence</a>, including the
+ *  <a href="tables.html#68">optional sequence requirements</a> with the
+ *  %exception of @c push_front and @c pop_front.
+ *
  *  In some terminology a vector can be described as a dynamic C-style array,
  *  it offers fast and efficient access to individual elements in any order
  *  and saves the user from worrying about memory and size allocation.
index a35cd0d..b7feb37 100644 (file)
@@ -62,10 +62,10 @@ namespace std
 {
 
   /**
-   *  @maint
+   *  @if maint
    *  This is a helper function.  The unused second parameter exists to
    *  permit the real get_temporary_buffer to use template parameter deduction.
-   *  @endmaint
+   *  @endif
   */
   template <class _Tp>
   pair<_Tp*, ptrdiff_t> 
@@ -202,7 +202,3 @@ public:
 
 #endif /* _CPP_MEMORY */
 
-
-// Local Variables:
-// mode:C++
-// End: