diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 173 | ||||
-rw-r--r-- | libstdc++-v3/docs/doxygen/Intro.3 | 4 | ||||
-rw-r--r-- | libstdc++-v3/docs/doxygen/TODO | 6 | ||||
-rw-r--r-- | libstdc++-v3/docs/doxygen/doxygroups.cc | 16 | ||||
-rw-r--r-- | libstdc++-v3/docs/doxygen/mainpage.html | 10 | ||||
-rw-r--r-- | libstdc++-v3/docs/doxygen/run_doxygen | 7 | ||||
-rw-r--r-- | libstdc++-v3/docs/doxygen/tables.html | 576 | ||||
-rw-r--r-- | libstdc++-v3/docs/doxygen/user.cfg.in | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_algo.h | 140 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_alloc.h | 32 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_construct.h | 29 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_deque.h | 58 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_iterator_base_types.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_list.h | 16 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_relops.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_tempbuf.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_vector.h | 11 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_memory.h | 8 |
18 files changed, 763 insertions, 343 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4f06c2b..f7a7d8e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,28 @@ +2002-03-27 Phil Edwards <pme@gcc.gnu.org> + + * docs/doxygen/Intro.3: Date tweak. + * docs/doxygen/TODO: Update. + * docs/doxygen/doxygroups.cc: Point to tables.html. + * docs/doxygen/mainpage.html: Date tweak. + * docs/doxygen/run_doxygen: Version tweak. Copy tables.html over. + * docs/doxygen/tables.html: Fill in the blanks. + + * docs/doxygen/user.cfg.in (ALIASES): Remove maint and endmaint. + * include/bits/stl_algo.h: Likewise; use expanded form. + * include/bits/stl_alloc.h: Likewise. + * include/bits/stl_construct.h: Likewise. + * include/bits/stl_deque.h: Likewise. + * include/bits/stl_iterator_base_types.h: Likewise. + * include/bits/stl_list.h: Likewise. + * include/bits/stl_relops.h: Likewise. + * include/bits/stl_tempbuf.h: Likewise. + * include/bits/stl_vector.h: Likewise. + * include/std/std_memory.h: Likewise. + + * include/bits/stl_deque.h: Point into tables.html and add @ingroup. + * include/bits/stl_list.h: Likewise. + * include/bits/stl_vector.h: Likewise. + 2002-03-26 Benjamin Kosnik <bkoz@redhat.com> * include/c/: Guard with _CPP_. @@ -5,7 +30,7 @@ * include/Makefile.am: Fixup install, link routines for null c_base_headers_extra scenarios. * include/Makefile.in: Regerate. - + 2002-03-25 Paolo Carlini <pcarlini@unitus.it> Richard Henderson <rth@redhat.com> @@ -29,11 +54,11 @@ 2002-03-25 Benjamin Kosnik <bkoz@redhat.com> Jakub Jelinek <jakub@redhat.com> - + * config/locale/gnu/messages_members.h: Correct conditional. * config/locale/gnu/messages_members.cc: Same. * config/locale/gnu/time_members.cc: Same. - + 2002-03-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> Paolo Carlini <pcarlini@unitus.it> @@ -58,15 +83,15 @@ * include/c/*: Formatting tweaks, cleanups. * include/c_std/*: Same. - + 2002-03-22 Benjamin Kosnik <bkoz@redhat.com> * config/locale/gnu/messages_members.h: Add __uselocale bits. * config/locale/gnu/messages_members.cc: Same. * config/locale/gnu/time_members.cc: Same. - + 2002-03-22 Benjamin Kosnik <bkoz@redhat.com> - + * src/vterminate.cc: Format, -fno-exceptions cleanup. 2002-03-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> @@ -102,11 +127,11 @@ --enable-libunwind-exceptions is set. * configure.in (GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS): Call new macro to check for libunwind. - * configure: Regenerate. + * configure: Regenerate. * src/Makefile.am (libstdc___la_LDFLAGS): Add LIBUNWIND_FLAG to libstdc link line. * src/Makefile.in: Regenerate. - + 2002-03-19 Benjamin Kosnik <bkoz@redhat.com> * docs/html/faq/index.html: Add OS X workaround. @@ -137,7 +162,7 @@ hash_multimap are in namespace __gnu_cxx. include/backward/hash_set.h: hash, hashtable, hash_set and hash_multiset are in namespace __gnu_cxx. - include/backward/hashtable.h: hash and hashtable are in + include/backward/hashtable.h: hash and hashtable are in namespace __gnu_cxx. include/backward/rope.h: char_producer, sequence_buffer, rope, crope and wrope are in namespace __gnu_cxx. @@ -180,7 +205,7 @@ 2002-03-12 Benjamin Kosnik <bkoz@redhat.com> Per Liboriussen <liborius@stofanet.dk> - + * config/os/gnu-linux/bits/ctype_noninline.h: Cast to unsigned char. * config/os/gnu-linux/bits/ctype_inline.h: Same. @@ -197,7 +222,7 @@ * config/os/solaris/solaris2.7/bits/ctype_noninline.h: Same. * testsuite/22_locale/ctype_members_char.cc (main): Add tests. - + 2002-03-12 Benjamin Kosnik <bkoz@redhat.com> * include/bits/basic_string.tcc (string::_S_construct(_InIter, @@ -206,7 +231,7 @@ * testsuite/21_strings/ctor_copy_dtor.cc (test01): Re-enable, now that memory limits are in place. (test03): Add tests. - + 2002-03-11 Benjamin Kosnik <bkoz@redhat.com> * acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Check for wctype.h. @@ -319,7 +344,7 @@ * messages_members_ieee_1003.1-200x.cc: Move to... * ieee_1003.1-2001/messages_members.cc * messages_members_ieee_1003.1-200x.h: Move to... - * ieee_1003.1-2001/messages_members.h + * ieee_1003.1-2001/messages_members.h * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Make consistent. * aclocal.m4: Regenerate. @@ -343,7 +368,7 @@ * src/limits.cc: Add definitions. * config/linker-map.gnu: Add __numeric_limits_base. * testsuite/18_support/numeric_limits.cc: Declare test in scope. - + 2002-03-07 Benjamin Kosnik <bkoz@redhat.com> * include/bits/stl_alloc.h: Add extern implicit allocator @@ -368,9 +393,9 @@ (__stl_threshold): _M_threshold, enum. * src/stl-inst.cc: Same. * config/linker-map.gnu: Remove. - + * testsuite/23_containers/vector_bool.cc: New. - + 2002-03-06 Phil Edwards <pme@gcc.gnu.org> * docs/doxygen/user.cfg.in: Also document deprecated entries. @@ -433,7 +458,7 @@ 2002-03-04 Craig Rodrigues <rodrigc@gcc.gnu.org> - * docs/html/17_intro/porting-howto.xml: Refer to + * docs/html/17_intro/porting-howto.xml: Refer to http://www.oasis-open.org for docbookx.dtd. * docs/html/17_intro/porting-howto.html: Regenerated. @@ -482,7 +507,7 @@ * include/bits/basic_ios.h (basic_ios::_M_fill): Make mutable. (basic_ios::_M_fill_init): New. (basic_ios::fill()): Delay dealing with _M_fill. - Adjust comment. + Adjust comment. * ios.cc (ios_base::ios_base()): Initialize _M_callbacks, _M_words. (ios_base::_M_call_callbacks): Adjust. * testsuite/27_io/ios_init.cc (test02): Adjust testcase. @@ -535,7 +560,7 @@ * configure.in (target_alias): Default to yes. * acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Add check for shared - libgcc to default case. + libgcc to default case. 2002-02-20 Phil Edwards <pme@gcc.gnu.org> @@ -548,19 +573,19 @@ 2002-02-20 Benjamin Kosnik <bkoz@redhat.com> - * testsuite/22_locale/money_put_members_char.cc: Fix. + * testsuite/22_locale/money_put_members_char.cc: Fix. * testsuite/22_locale/money_put_members_wchar_t.cc: Fix. * testsuite/27_io/standard_manipulators.cc: New file. * testsuite/27_io/ios_manip_basefield.cc: Check results, now failing. * testsuite/27_io/ios_manip_fmtflags.cc: Use locale::classic(). - + 2002-02-20 Danny Smith <dannysmith@users.sourceforge.net> * config/os/mingw32/bits/ctype_noninline.h (ctype<char>::ctype): Remove default args from parm list. - * config/os/djgpp/bits/ctype_noninline.h: Same. + * config/os/djgpp/bits/ctype_noninline.h: Same. 2002-02-19 Benjamin Kosnik <bkoz@redhat.com> @@ -573,7 +598,7 @@ * testsuite/22_locale/money_get_members_wchar_t.cc (test07): Same. 2002-02-19 Benjamin Kosnik <bkoz@redhat.com> - + * config/linker-map.gnu: Export global vtable, typeinfo, guard variable, and thunk info as per CXXABI docs. @@ -612,7 +637,7 @@ 2002-02-16 Benjamin Kosnik <bkoz@redhat.com> - * include/bits/locale_facets.tcc: Add pragma GCC system_header. + * include/bits/locale_facets.tcc: Add pragma GCC system_header. * include/bits/fstream.tcc: Same. * include/bits/sstream.tcc: Same. * include/bits/ostream.tcc: Same. @@ -631,7 +656,7 @@ * src/locale.cc (moneypunct_byname): Remove definitions. * include/std/std_streambuf.h (streambuf::operator=): Return. - + 2002-02-15 Benjamin Kosnik <bkoz@redhat.com> Tune for size. @@ -655,7 +680,7 @@ Add iomanip instantiations for wide streams. * include/std/std_iomanip.h: Same. * include/bits/locale_facets.tcc: Same. - + * include/std/std_streambuf.h: Correct _GLIBCPP_FULLY_COMPLIANT_HEADERS guard. * include/std/std_sstream.h: Same. @@ -672,7 +697,7 @@ * include/bits/basic_ios.h (basic_ios::clear): Don't inline. * include/bits/basic_ios.tcc (basic_ios::clear): Move definition here. - + 2002-02-14 Benjamin Kosnik <bkoz@redhat.com> * config/linker-map.gnu: Change tag from GCC_3.1 to GLIBCPP_3.1. @@ -708,7 +733,7 @@ 2002-02-11 Benjamin Kosnik <bkoz@redhat.com> - * include/bits/stl_algo (__stl_threshold): Declare external. + * include/bits/stl_algo (__stl_threshold): Declare external. (__stl_chunk_size): Same. * include/bits/stl_bvector.h (__WORD_BIT): Same. * include/bits/stl_tree.h (_S_rb_tree_red): Same. @@ -718,12 +743,12 @@ (__WORD_BIT): Same. (_S_rb_tree_red): Same. (_S_rb_tree_black): Same. - + * config/io/basic_file_libio.h (__basic_file): Add declarations. * include/bits/basic_file.h: Remove. * config/io/c_io_stdio.h: Remove _GLIBCPP_BASIC_FILE_ENCAPSULATION Declare generic types, specialization. - * config/io/basic_file_stdio.cc: Definitions. + * config/io/basic_file_stdio.cc: Definitions. * config/io/c_io_libio.h: Remove _GLIBCPP_BASIC_FILE_INHERITANCE. Declare generic types. * include/Makefile.am (bits_headers): Remove basic_file.h. @@ -731,14 +756,14 @@ (stamp-target): Same. * include/bits/stl_alloc.h: Tweaks. - * include/bits/localefwd.h: Same. + * include/bits/localefwd.h: Same. 2002-02-11 Aaron W LaFramboise <AWLaFramboise@aol.com> * include/bits/locale_facets.tcc (collate::do_hash): Fix. * testsuite/22_locale/collate_members_char.cc (test03): New test. * testsuite/22_locale/collate_members_wchar_t.cc (test03): Same. - + 2002-02-10 Phil Edwards <pme@gcc.gnu.org> * include/bits/stl_algo.h (transform (both signatures), generate_n): @@ -763,7 +788,7 @@ * include/bits/fstream.tcc (filebuf::underflow): Remove __codecvt_type typedef. (filebuf::_M_convert_to_external): Same. - + 2002-02-08 Phil Edwards <pme@gcc.gnu.org> * docs/doxygen/TODO: Update. @@ -793,7 +818,7 @@ codecvt bits for wide streams. (filebuf::_M_really_overflow): Use it. (filebuf::underflow): Use codecvt. - * config/locale/codecvt_specializations_ieee_1003.1-200x.h: + * config/locale/codecvt_specializations_ieee_1003.1-200x.h: (codecvt<__enc_traits>::do_out): Deal with partial. (codecvt<__enc_traits>::do_encoding): Return something useful. * src/codecvt.cc (codecvt<wchar_t>::do_encoding): Return sizeof @@ -806,7 +831,7 @@ 2002-02-07 Benjamin Kosnik <bkoz@redhat.com> Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de> - + * include/bits/basic_ios.tcc (basic_ios::narrow): Add default value. (basic_ios::widen): Same. @@ -903,7 +928,7 @@ * include/std/std_streambuf.h: Tweak. * include/bits/streambuf.tcc: Same. * include/bits/sstream.tcc: Same. - * include/bits/fstream.tcc: Same. + * include/bits/fstream.tcc: Same. 2002-01-31 Loren Rittle <ljrittle@acm.org> @@ -940,7 +965,7 @@ * docs/html/17_intro/RELEASE-NOTES: Update. * docs/html/17_intro/TODO: Update. * README (file): Update. - + 2002-01-30 Loren Rittle <ljrittle@acm.org> * config/locale/c_locale_generic.cc: Check errno for ERANGE @@ -1068,20 +1093,20 @@ 2002-01-24 Benjamin Kosnik <bkoz@redhat.com> - * testsuite/27_io/ostream_inserter_char.cc (test07): New. - + * testsuite/27_io/ostream_inserter_char.cc (test07): New. + 2002-01-24 Benjamin Kosnik <bkoz@redhat.com> * include/bits/basic_ios.h (basic_ios::_M_check_facet): Make const, tweak. - (basic_ios::fill(char_type)): Use fill(). + (basic_ios::fill(char_type)): Use fill(). * include/bits/basic_ios.tcc (basic_ios::widen): Use _M_check_facet. (basic_ios::narrow): Same. (basic_ios::_M_cache_facets): Explicitly set cached facets to zero if they are invalid. (basic_ios::init): Comment. * testsuite/27_io/ios_init.cc (test02): New. - + 2002-01-24 Phil Edwards <pme@gcc.gnu.org> * include/bits/stl_tempbuf.h (_Temporary_buffer): Add doxygen hook. @@ -1134,7 +1159,7 @@ * aclocal.m4: Regenerate. * configure: Regenerate. * config.h.in: Regenerate. - + 2002-01-23 Loren Rittle <ljrittle@acm.org> * testsuite/thread/pthread1.cc: New test. @@ -1162,7 +1187,7 @@ * include/bits/locale_facets.tcc (__convert_to_v): Change template parameter to _Tv. (__convert_from_v): Same. - + 2002-01-23 Benjamin Kosnik <bkoz@redhat.com> * include/bits/locale_facets.h (num_get::_M_extract_int): Change @@ -1183,7 +1208,7 @@ * docs/html/22_locale/messages.html: Remove angle brackets. * docs/html/17_intro/TODO: Add. - + 2002-01-22 Paolo Carlini <pcarlini@unitus.it> * testsuite/27_io/ios_manip_basefield.cc: Enable test02. @@ -1202,13 +1227,13 @@ (num_put::_M_convert_float): Use. (num_put::_M_convert_int): Same. (money_put::do_put): Same. - + * src/locale-inst.cc: Add instantiations for __convert_from_v. * config/locale/time_members_gnu.cc: Cleanup setlocale usage. - * config/locale/time_members_generic.cc: + * config/locale/time_members_generic.cc: * config/locale/messages_members_gnu.cc: Same. * config/locale/messages_members_gnu.h: Same. - + * testsuite/22_locale/codecvt_members_wchar_t_char.cc (test02): New. * testsuite/22_locale/codecvt_members_char_char.cc (test02): New. * testsuite/22_locale/collate_members_wchar_t.cc (test02): New. @@ -1236,7 +1261,7 @@ * testsuite/22_locale/time_get_members_char.cc: Fixups for global locale issues. * testsuite/22_locale/time_get_members_char.cc: Same. - + 2002-01-22 Benjamin Kosnik <bkoz@redhat.com> libstdc++/5280 @@ -1254,7 +1279,7 @@ (num_get::do_get(unsigned long long)): Same. * config/locale/c_locale_gnu.cc (__convert_to_v): Specialize. * config/locale/c_locale_generic.cc: Same. - + 2002-01-22 Loren Rittle <ljrittle@acm.org> * include/Makefile.am (c_base_builddir): Remove redundant slash. @@ -1318,7 +1343,7 @@ limiting is only attempted if _GLIBCPP_MEM_LIMIT is defined. 2002-01-17 Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de> - + * testsuite/22_locale/ctor_copy_dtor.cc: Remove check. 2002-01-17 David Edelsohn <edelsohn@gnu.org> @@ -1340,7 +1365,7 @@ SECTION_LDFLAGS and OPT_LDFLAGS. Fix ac_sectionLDflags type. * aclocal.m4: Regenerate. * configure: Regenerate. - + 2002-01-16 Benjamin Kosnik <bkoz@redhat.com> * include/Makefile.am (c_base_headers_rename): New. @@ -1357,23 +1382,23 @@ cstdio ctime cwctype]: Move to.. * include/c_std/std_*: Here. - Alexandre Oliva <aoliva@redhat.com> + Alexandre Oliva <aoliva@redhat.com> * include/Makefile.am (.PRECIOUS): Add rule. * include/Makefile.in: Regenerate. - + 2002-01-16 Benjamin Kosnik <bkoz@redhat.com> Peter Schmid <schmid@snake.iap.physik.tu-darmstadt.de> - + * include/bits/stl_iterator.h (reverse_iterator::_M_current): Deuglify, should be current. (back_insert_iterator::_M_container): Deuglify, should be container. - (front_insert_iterator::_M_container): Same. + (front_insert_iterator::_M_container): Same. (insert_iterator::_M_container): Same. * testsuite/24_iterators/reverse_iterator.cc: Add check. - * testsuite/24_iterators/back_insert_iterator.cc: Add check. + * testsuite/24_iterators/back_insert_iterator.cc: Add check. * testsuite/24_iterators/front_insert_iterator.cc: Same. * testsuite/24_iterators/insert_iterator.cc: Same. - + 2002-01-16 Benjamin Kosnik <bkoz@redhat.com> * include/bits/locale_facets.h (ctype<char>::classic_table): Make @@ -1391,14 +1416,14 @@ * config/os/bsd/netbsd/bits/ctype_noninline.h: Same. * config/os/bsd/freebsd/bits/ctype_noninline.h: Same. * config/os/aix/bits/ctype_noninline.h: Same. - - Testcase by Dietmar Kühl via Peter Schmid + + Testcase by Dietmar Kühl via Peter Schmid * testsuite/22_locale/ctype_members_char.cc (char>): Add test for classic_table(). 2002-01-16 Benjamin Kosnik <bkoz@redhat.com> - * libmath/signbitl.c: Copyright years as list, not range. + * libmath/signbitl.c: Copyright years as list, not range. * libmath/Makefile.am: Same. * libmath/Makefie.in: Regenerate. * libmath/signbit.c: Same. @@ -1446,7 +1471,7 @@ * testsuite/22_locale/num_put_members_wchar_t.cc (test02): Same. * testsuite/22_locale/num_put_members_char.cc (test01): Tweak. - * testsuite/22_locale/ctype_members_char.cc: Tweak. + * testsuite/22_locale/ctype_members_char.cc: Tweak. 2002-01-15 Benjamin Kosnik <bkoz@redhat.com> @@ -1457,7 +1482,7 @@ * testsuite/22_locale/num_get_members_char.cc (test02): Add long double, void, bool types. * testsuite/22_locale/num_get_members_wchar_t.cc (test02): Add. - + 2002-01-15 Benjamin Kosnik <bkoz@redhat.com> Alexandre Oliva <aoliva@redhat.com> @@ -1505,20 +1530,20 @@ * include/bits/basic_string.h (insert(__pos, __s, __n)): Adjust comparison wrt overflow. - + 2002-01-12 Benjamin Kosnik <bkoz@redhat.com> * include/Makefile.am (std_headers_rename): New variable. (install-data-local): Use it. * include/Makefile.in: Regenerate. - + 2002-01-12 Benjamin Kosnik <bkoz@redhat.com> * include/bits/locale_facets.tcc (money_put::do_put(string): Correct output iterator value. * testsuite/22_locale/money_put_members_char.cc (test03): Add. * testsuite/22_locale/money_put_members_wchar_t.cc: Same. - + 2002-01-11 Phil Edwards <pme@gcc.gnu.org> * include/Makefile.am, include/Makefile.in (stamp-std): Fix typo from @@ -1576,7 +1601,7 @@ * testsuite/22_locale/money_get_members_char.cc (test02): Add iterator checks. * testsuite/22_locale/money_get_members_wchar_t.cc: Same. - + 2002-01-10 David Seymour <seymour_dj@yahoo.com> libstdc++/5331 @@ -1616,7 +1641,7 @@ * include/Makefile.am (c_base_srcdir): Remove duplicate '/'. * include/Makefile.in: Regenerate. - + 2002-01-09 Bo Thorsen <bo@suse.co.uk> * config/cpu/x86-64/bits/cpu_limits.h (__glibcpp_long_bits): Add @@ -1634,9 +1659,9 @@ 2002-01-08 John Fardo <jfardo@laurelnetworks.com> Brad Garcia <garsh@attbi.com> - + * testsuite/27_io/filebuf_members.cc: Add test. - + 2002-01-07 Benjamin Kosnik <bkoz@redhat.com> Craig Rodrigues <rodrigc@mediaone.net> @@ -1666,12 +1691,12 @@ (c_base_headers): Adjust names, add ciso646. (bits_headers): Remove std_xxx.h headers. * include/Makefile.in: Regenerate. - + * include/ext/iterator: Adjust includes. * include/ext/ropeimpl.h: Same. * include/ext/stl_hash_fun.h: Same. * include/ext/algorithm: Same. - + * include/backward/bvector.h: Adjust includes. * include/backward/vector.h: Same. * include/backward/strstream: Same. @@ -1700,7 +1725,7 @@ std_queue.h, std_valarray.h, std_functional.h, std_limits.h, std_set.h, std_vector.h, std_iomanip.h, std_list.h, std_sstream.h: Same. - + * include/c_std/bits/std_cassert.h: Move to... * include/c_std/cassert: Here. * include/c_std/std_cctype.h, std_cerrno.h, std_cfloat.h, @@ -1715,7 +1740,7 @@ * include/c_std/cstring: Same. * include/c_std/cstdio: Same. * include/c_std/bits: Remove directory. - + * include/c/bits/std_cassert.h: Move to... * include/c/cassert: Here. * include/c/std_cctype.h, std_cerrno.h, std_cfloat.h, @@ -1724,7 +1749,7 @@ std_cstdlib.h, std_cstring.h, std_ctime.h, std_cwchar.h, std_cwctype.h: Same. * include/c/bits: Remove directory. - + * include/std/cwctype: Remove. * include/std/cwchar: Remove. * include/std/ctime: Remove. diff --git a/libstdc++-v3/docs/doxygen/Intro.3 b/libstdc++-v3/docs/doxygen/Intro.3 index 3e963aa..fc44025 100644 --- a/libstdc++-v3/docs/doxygen/Intro.3 +++ b/libstdc++-v3/docs/doxygen/Intro.3 @@ -1,6 +1,6 @@ .\" t .\" This man page is released under the FDL as part of libstdc++-v3. -.TH Intro 3 "27 September 2001" "GNU libstdc++-v3" "Standard C++ Library" +.TH Intro 3 "27 March 2002" "GNU libstdc++-v3" "Standard C++ Library" .SH NAME Intro \- Introduction to the GNU libstdc++-v3 man pages .SH DESCRIPTION @@ -48,7 +48,7 @@ SGIextensions A list of the extensions from the SGI STL subset. Sequences Linear containers. .TE .P -The HTML documentation goes into more depth. +The HTML documentation typically goes into much more depth. .SH FILES Lots! .SS Standard Headers diff --git a/libstdc++-v3/docs/doxygen/TODO b/libstdc++-v3/docs/doxygen/TODO index 375cd5f..6629933 100644 --- a/libstdc++-v3/docs/doxygen/TODO +++ b/libstdc++-v3/docs/doxygen/TODO @@ -48,10 +48,10 @@ do not have the C code (to which the doxygen comments would be attached), this would need to be done in entirely separate files, a la doxygroups.cc. B) Huge chunks of containers and strings are described in common "Tables" -in the standard. These are being pseudo-duplicated in tables.html. We can +in the standard. These are pseudo-duplicated in tables.html. We can use doxygen hooks like @pre and @see to reference the tables. Then the -individual classes would do like the standard does, and only document -members for which additional info is available. +individual classes do like the standard does, and only document members for +which additional info is available. STYLE: diff --git a/libstdc++-v3/docs/doxygen/doxygroups.cc b/libstdc++-v3/docs/doxygen/doxygroups.cc index 8af04b1..c6139f3 100644 --- a/libstdc++-v3/docs/doxygen/doxygroups.cc +++ b/libstdc++-v3/docs/doxygen/doxygroups.cc @@ -1,5 +1,8 @@ /* + Copyright (C) 2001, 2002 Free Software Foundation, Inc. + See license.html for license. + This just provides documentation for stuff that doesn't need to be in the source headers themselves. It is a ".cc" file for the sole cheesy reason that it triggers many different text editors into doing Nice Things when @@ -67,9 +70,8 @@ storing your objects. The objects are destroyed when the container is itself destroyed. Note that if you are storing pointers in a container, @c delete is @e not automatically called on the pointers before destroying them. -All containers must meet certain requirements. They would be listed here -except I'm not certain how much of 14882 can be reproduced without a -copyright violation. Reproducing Tables 65 through 69 is a lot of typing... +All containers must meet certain requirements, summarized in +<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>. */ // // // // // // // // // // // // // // // // // // // // // // // // diff --git a/libstdc++-v3/docs/doxygen/mainpage.html b/libstdc++-v3/docs/doxygen/mainpage.html index 88ea279..431344b 100644 --- a/libstdc++-v3/docs/doxygen/mainpage.html +++ b/libstdc++-v3/docs/doxygen/mainpage.html @@ -16,16 +16,16 @@ directly; it all gets run through Doxygen and re-output.) So lots of tags were all being mangled. - Funk 'dat. Now we let Doxygen do whateer it feels like doing for the + Funk 'dat. Now we let Doxygen do whatever it feels like doing for the index page, and then we just flat copy this over top of it. Voila! - Tags actually work like they're supposed to. + Tags actually work like they're supposed to in HTML. --> <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 © 1998 by Information Technology Industry Council. </p> </body> diff --git a/libstdc++-v3/docs/doxygen/run_doxygen b/libstdc++-v3/docs/doxygen/run_doxygen index e93c947..7b3b7f5 100644 --- a/libstdc++-v3/docs/doxygen/run_doxygen +++ b/libstdc++-v3/docs/doxygen/run_doxygen @@ -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 diff --git a/libstdc++-v3/docs/doxygen/tables.html b/libstdc++-v3/docs/doxygen/tables.html index d38e461..2382d25 100644 --- a/libstdc++-v3/docs/doxygen/tables.html +++ b/libstdc++-v3/docs/doxygen/tables.html @@ -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., "tables.html#67". 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> </td> +<td>compile time</td> +</tr> + +<tr> +<td>X::const_reference</td> +<td>const lvalue of T</td> +<td> </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> </td> +<td>post: u.size() == 0</td> +<td>constant</td> +</tr> + +<tr> +<td>X();</td> +<td> </td> +<td>X().size == 0</td> +<td>constant</td> +</tr> + +<tr> +<td>X(a);</td> +<td> </td> +<td>a == X(a)</td> +<td>linear</td> +</tr> + +<tr> +<td>X u(a);<br />X u = a;</td> +<td> </td> +<td>post: u == a. Equivalent to: X u; u = a;</td> +<td>linear</td> +</tr> + +<tr> +<td>(&a)->~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> </td> +<td>constant</td> +</tr> + +<tr> +<td>a.end()</td> +<td>iterator; const_iterator for constant a</td> +<td> </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() && + 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&</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> </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> </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> </td> +<td>constant</td> +</tr> + +<tr> +<td>a < b</td> +<td>convertible to bool</td> +<!--<td>lexographical_compare(a.begin,a.end(),b.begin(),b.end())</td>--> +<td>pre: < is defined for T and is a total ordering relation</td> +<td>linear</td> +</tr> + +<tr> +<td>a > b</td> +<td>convertible to bool</td> +<!--<td>b < a</td>--> +<td> </td> +<td>linear</td> +</tr> + +<tr> +<td>a <= b</td> +<td>convertible to bool</td> +<!--<td>!(a > b)</td>--> +<td> </td> +<td>linear</td> +</tr> + +<tr> +<td>a >= b</td> +<td>convertible to bool</td> +<!--<td>!(a < b)</td>--> +<td> </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<iterator></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<const_iterator></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> </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> </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>=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<key_type></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> </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> </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> </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> </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<iterator,bool></td> +<td>"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."</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<iterator,iterator>; + pair<const_iterator, const_iterator> 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> diff --git a/libstdc++-v3/docs/doxygen/user.cfg.in b/libstdc++-v3/docs/doxygen/user.cfg.in index 475dd53..bb9809a 100644 --- a/libstdc++-v3/docs/doxygen/user.cfg.in +++ b/libstdc++-v3/docs/doxygen/user.cfg.in @@ -222,9 +222,7 @@ GENERATE_BUGLIST = YES # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. -ALIASES = "maint=@if maint" \ - "endmaint=@endif" \ - "doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more." +ALIASES = "doctodo=@todo\nDoc me! See docs/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more." # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index a251bef..35832c3 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -159,9 +159,9 @@ namespace std } /** - * @maint + * @if maint * This is an overload used by find() for the Input Iterator case. - * @endmaint + * @endif */ template<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 diff --git a/libstdc++-v3/include/bits/stl_alloc.h b/libstdc++-v3/include/bits/stl_alloc.h index 4ff816b..e193297 100644 --- a/libstdc++-v3/include/bits/stl_alloc.h +++ b/libstdc++-v3/include/bits/stl_alloc.h @@ -50,7 +50,7 @@ /** * @defgroup Allocators Memory Allocators - * @maint + * @if maint * stl_alloc.h implements some node allocators. These are NOT the same as * allocators in the C++ standard, nor in the original H-P STL. They do not * encapsulate different pointer types; we assume that there is only one @@ -72,7 +72,7 @@ * * "SGI" allocators may be wrapped in __allocator to convert the interface * into a "standard" one. - * @endmaint + * @endif * * The canonical description of these classes is in docs/html/ext/howto.html * or online at http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html#3 @@ -88,11 +88,11 @@ namespace std { /** - * @maint + * @if maint * A new-based allocator, as required by the standard. Allocation and * deallocation forward to global new and delete. "SGI" style, minus * reallocate(). - * @endmaint + * @endif * (See @link Allocators allocators info @endlink for more.) */ class __new_alloc @@ -109,13 +109,13 @@ namespace std /** - * @maint + * @if maint * A malloc-based allocator. Typically slower than the * __default_alloc_template (below). Typically thread-safe and more * storage efficient. The template argument is unused and is only present * to permit multiple instantiations (but see __default_alloc_template * for caveats). "SGI" style, plus __set_malloc_handler for OOM conditions. - * @endmaint + * @endif * (See @link Allocators allocators info @endlink for more.) */ template <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.) */ //@{ diff --git a/libstdc++-v3/include/bits/stl_construct.h b/libstdc++-v3/include/bits/stl_construct.h index 51bd8a0..6859138 100644 --- a/libstdc++-v3/include/bits/stl_construct.h +++ b/libstdc++-v3/include/bits/stl_construct.h @@ -1,6 +1,6 @@ // nonstandard construct and destroy functions -*- C++ -*- -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -67,10 +67,10 @@ namespace std { /** - * @maint + * @if maint * Constructs an object in existing memory by invoking an allocated * object's constructor with an initializer. - * @endmaint + * @endif */ template <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: diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h index b2d58d8..5cd62b7 100644 --- a/libstdc++-v3/include/bits/stl_deque.h +++ b/libstdc++-v3/include/bits/stl_deque.h @@ -1,6 +1,6 @@ // deque implementation -*- C++ -*- -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -73,14 +73,14 @@ namespace std { /** - * @maint + * @if maint * @brief This function controls the size of memory nodes. * @param size The size of an element. * @return The number (not bytesize) of elements per node. * * This function started off as a compiler kludge from SGI, but seems to * be a useful wrapper around a repeated constant expression. - * @endmaint + * @endif */ inline size_t __deque_buf_size(size_t __size) @@ -94,9 +94,9 @@ __deque_buf_size(size_t __size) * marking its valid range. Access to elements is done as offsets of either * of those two, relying on operator overloading in this class. * - * @maint + * @if maint * All the functions are op overloads except for _M_set_node. - * @endmaint + * @endif */ template <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: diff --git a/libstdc++-v3/include/bits/stl_iterator_base_types.h b/libstdc++-v3/include/bits/stl_iterator_base_types.h index e5b3fa4..5dff8fc 100644 --- a/libstdc++-v3/include/bits/stl_iterator_base_types.h +++ b/libstdc++-v3/include/bits/stl_iterator_base_types.h @@ -146,10 +146,10 @@ namespace std }; /** - * @maint + * @if maint * This function is not a part of the C++ standard but is syntactic * sugar for internal library use only. - * @endmaint + * @endif */ template<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: diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index 9920579..3d470b1 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -1,6 +1,6 @@ // List implementation -*- C++ -*- -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -273,7 +273,19 @@ namespace std void clear(); }; - + /** + * @ingroup Containers + * @ingroup Sequences + * + * Meets the requirements of a <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> { diff --git a/libstdc++-v3/include/bits/stl_relops.h b/libstdc++-v3/include/bits/stl_relops.h index cc1ef78..ce3dc0b9 100644 --- a/libstdc++-v3/include/bits/stl_relops.h +++ b/libstdc++-v3/include/bits/stl_relops.h @@ -57,7 +57,7 @@ * This is an internal header file, included by other library headers. * You should not attempt to use it directly. * - * @maint + * @if maint * Inclusion of this file has been removed from * all of the other STL headers for safety reasons, except std_utility.h. * For more information, see the thread of about twenty messages starting @@ -65,7 +65,7 @@ * FAQ at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4 . * * Short summary: the rel_ops operators should be avoided for the present. - * @endmaint + * @endif */ #ifndef _CPP_BITS_STL_RELOPS_H diff --git a/libstdc++-v3/include/bits/stl_tempbuf.h b/libstdc++-v3/include/bits/stl_tempbuf.h index 088807f..7b88f93 100644 --- a/libstdc++-v3/include/bits/stl_tempbuf.h +++ b/libstdc++-v3/include/bits/stl_tempbuf.h @@ -65,11 +65,11 @@ namespace std { /** - * @maint + * @if maint * This class is used in two places: stl_algo.h and ext/memory, where it * is wrapped as the temporary_buffer class. See temporary_buffer docs for * more notes. - * @endmaint + * @endif */ template <class _ForwardIterator, class _Tp> class _Temporary_buffer diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index 75260a3..81bb975 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -1,6 +1,6 @@ // Vector implementation -*- C++ -*- -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -148,6 +148,15 @@ struct _Vector_base * @brief A standard container which offers fixed time access to individual * elements in any order. * + * @ingroup Containers + * @ingroup Sequences + * + * Meets the requirements of a <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. diff --git a/libstdc++-v3/include/std/std_memory.h b/libstdc++-v3/include/std/std_memory.h index a35cd0d..b7feb37 100644 --- a/libstdc++-v3/include/std/std_memory.h +++ b/libstdc++-v3/include/std/std_memory.h @@ -62,10 +62,10 @@ namespace std { /** - * @maint + * @if maint * This is a helper function. The unused second parameter exists to * permit the real get_temporary_buffer to use template parameter deduction. - * @endmaint + * @endif */ template <class _Tp> pair<_Tp*, ptrdiff_t> @@ -202,7 +202,3 @@ public: #endif /* _CPP_MEMORY */ - -// Local Variables: -// mode:C++ -// End: |