]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Makefile.am (doxygen, [...]): Tweak targets.
authorPhil Edwards <pme@gcc.gnu.org>
Mon, 28 Jan 2002 22:13:12 +0000 (22:13 +0000)
committerPhil Edwards <pme@gcc.gnu.org>
Mon, 28 Jan 2002 22:13:12 +0000 (22:13 +0000)
2002-01-28  Phil Edwards  <pme@gcc.gnu.org>

* Makefile.am (doxygen, doxygen-maint, doxygen-man):  Tweak targets.
* Makefile.in:  Regenerate.

* docs/doxygen/run_doxygen:  Update, mostly for man pages.
* docs/doxygen/Intro.3:  Update.
* docs/doxygen/TODO:  Update.
* docs/doxygen/doxygroups.cc:  Add namespace hook for __gnu_cxx.
* docs/doxygen/mainpage.doxy:  Update.
* docs/doxygen/user.cfg.in:  Update for header rename.  Also
regenerate comments and variables with 1.2.12.
* docs/doxygen/maint.cfg.in:  Remove file.

* include/bits/stl_relops.h:  Doxygenate.
* include/bits/stl_tempbuf.h (std::_Temporary_buffer):  Likewise.

* include/c_std/std_cassert.h, include/c_std/std_cctype.h,
include/c_std/std_cerrno.h, include/c_std/std_cfloat.h,
include/c_std/std_ciso646.h, include/c_std/std_climits.h,
include/c_std/std_clocale.h, include/c_std/std_cmath.h,
include/c_std/std_csetjmp.h, include/c_std/std_csignal.h,
include/c_std/std_cstdarg.h, include/c_std/std_cstddef.h,
include/c_std/std_cstdio.h, include/c_std/std_cstdlib.h,
include/c_std/std_cstring.h, include/c_std/std_ctime.h,
include/c_std/std_cwchar.h, include/c_std/std_cwctype.h,
include/ext/algorithm, include/ext/functional, include/ext/hash_map,
include/ext/hash_set, include/ext/iterator, include/ext/memory,
include/ext/numeric, include/ext/rb_tree, include/ext/rope,
include/ext/ropeimpl.h, include/ext/slist, include/ext/stl_hash_fun.h,
include/ext/stl_hashtable.h, include/ext/stl_rope.h,
include/std/std_algorithm.h, include/std/std_bitset.h,
include/std/std_complex.h, include/std/std_deque.h,
include/std/std_fstream.h, include/std/std_functional.h,
include/std/std_iomanip.h, include/std/std_ios.h,
include/std/std_iosfwd.h, include/std/std_iostream.h,
include/std/std_istream.h, include/std/std_iterator.h,
include/std/std_limits.h, include/std/std_list.h,
include/std/std_locale.h, include/std/std_map.h,
include/std/std_memory.h, include/std/std_numeric.h,
include/std/std_ostream.h, include/std/std_queue.h,
include/std/std_set.h, include/std/std_sstream.h,
include/std/std_stack.h, include/std/std_stdexcept.h,
include/std/std_streambuf.h, include/std/std_string.h,
include/std/std_utility.h, include/std/std_valarray.h,
include/std/std_vector.h:  Add/correct @file doxygen hook.

* include/ext/memory:  Doxygenate most of rest of file.
* libsupc++/exception:  Doxygen output formatting.
* libsupc++/new:  Say which header it is.

* testsuite/lib/libstdc++-v3-dg.exp:  Fix spacing.
* docs/html/19_diagnostics/howto.html:  Describe concept-checks switch.
* docs/html/23_containers/howto.html:  Describe O(n) list::size().
* docs/html/27_io/howto.html:  Also link to Langer and Kreft text.

From-SVN: r49300

79 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/Makefile.am
libstdc++-v3/Makefile.in
libstdc++-v3/docs/doxygen/Intro.3
libstdc++-v3/docs/doxygen/TODO
libstdc++-v3/docs/doxygen/doxygroups.cc
libstdc++-v3/docs/doxygen/mainpage.doxy
libstdc++-v3/docs/doxygen/maint.cfg.in [deleted file]
libstdc++-v3/docs/doxygen/run_doxygen
libstdc++-v3/docs/doxygen/user.cfg.in
libstdc++-v3/docs/html/19_diagnostics/howto.html
libstdc++-v3/docs/html/23_containers/howto.html
libstdc++-v3/docs/html/27_io/howto.html
libstdc++-v3/include/bits/stl_relops.h
libstdc++-v3/include/bits/stl_tempbuf.h
libstdc++-v3/include/c_std/std_cassert.h
libstdc++-v3/include/c_std/std_cctype.h
libstdc++-v3/include/c_std/std_cerrno.h
libstdc++-v3/include/c_std/std_cfloat.h
libstdc++-v3/include/c_std/std_ciso646.h
libstdc++-v3/include/c_std/std_climits.h
libstdc++-v3/include/c_std/std_clocale.h
libstdc++-v3/include/c_std/std_cmath.h
libstdc++-v3/include/c_std/std_csetjmp.h
libstdc++-v3/include/c_std/std_csignal.h
libstdc++-v3/include/c_std/std_cstdarg.h
libstdc++-v3/include/c_std/std_cstddef.h
libstdc++-v3/include/c_std/std_cstdio.h
libstdc++-v3/include/c_std/std_cstdlib.h
libstdc++-v3/include/c_std/std_cstring.h
libstdc++-v3/include/c_std/std_ctime.h
libstdc++-v3/include/c_std/std_cwchar.h
libstdc++-v3/include/c_std/std_cwctype.h
libstdc++-v3/include/ext/algorithm
libstdc++-v3/include/ext/functional
libstdc++-v3/include/ext/hash_map
libstdc++-v3/include/ext/hash_set
libstdc++-v3/include/ext/iterator
libstdc++-v3/include/ext/memory
libstdc++-v3/include/ext/numeric
libstdc++-v3/include/ext/rb_tree
libstdc++-v3/include/ext/rope
libstdc++-v3/include/ext/ropeimpl.h
libstdc++-v3/include/ext/slist
libstdc++-v3/include/ext/stl_hash_fun.h
libstdc++-v3/include/ext/stl_hashtable.h
libstdc++-v3/include/ext/stl_rope.h
libstdc++-v3/include/std/std_algorithm.h
libstdc++-v3/include/std/std_bitset.h
libstdc++-v3/include/std/std_complex.h
libstdc++-v3/include/std/std_deque.h
libstdc++-v3/include/std/std_fstream.h
libstdc++-v3/include/std/std_functional.h
libstdc++-v3/include/std/std_iomanip.h
libstdc++-v3/include/std/std_ios.h
libstdc++-v3/include/std/std_iosfwd.h
libstdc++-v3/include/std/std_iostream.h
libstdc++-v3/include/std/std_istream.h
libstdc++-v3/include/std/std_iterator.h
libstdc++-v3/include/std/std_limits.h
libstdc++-v3/include/std/std_list.h
libstdc++-v3/include/std/std_locale.h
libstdc++-v3/include/std/std_map.h
libstdc++-v3/include/std/std_memory.h
libstdc++-v3/include/std/std_numeric.h
libstdc++-v3/include/std/std_ostream.h
libstdc++-v3/include/std/std_queue.h
libstdc++-v3/include/std/std_set.h
libstdc++-v3/include/std/std_sstream.h
libstdc++-v3/include/std/std_stack.h
libstdc++-v3/include/std/std_stdexcept.h
libstdc++-v3/include/std/std_streambuf.h
libstdc++-v3/include/std/std_string.h
libstdc++-v3/include/std/std_utility.h
libstdc++-v3/include/std/std_valarray.h
libstdc++-v3/include/std/std_vector.h
libstdc++-v3/libsupc++/exception
libstdc++-v3/libsupc++/new
libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp

index e171c6f79c9eb8366acd2a0a3045690494e88bbd..06d11a2987b1072013ed682f28dbb2edab383f42 100644 (file)
@@ -1,3 +1,59 @@
+2002-01-28  Phil Edwards  <pme@gcc.gnu.org>
+
+       * Makefile.am (doxygen, doxygen-maint, doxygen-man):  Tweak targets.
+       * Makefile.in:  Regenerate.
+
+       * docs/doxygen/run_doxygen:  Update, mostly for man pages.
+       * docs/doxygen/Intro.3:  Update.
+       * docs/doxygen/TODO:  Update.
+       * docs/doxygen/doxygroups.cc:  Add namespace hook for __gnu_cxx.
+       * docs/doxygen/mainpage.doxy:  Update.
+       * docs/doxygen/user.cfg.in:  Update for header rename.  Also
+       regenerate comments and variables with 1.2.12.
+       * docs/doxygen/maint.cfg.in:  Remove file.
+
+       * include/bits/stl_relops.h:  Doxygenate.
+       * include/bits/stl_tempbuf.h (std::_Temporary_buffer):  Likewise.
+
+       * include/c_std/std_cassert.h, include/c_std/std_cctype.h,
+       include/c_std/std_cerrno.h, include/c_std/std_cfloat.h,
+       include/c_std/std_ciso646.h, include/c_std/std_climits.h,
+       include/c_std/std_clocale.h, include/c_std/std_cmath.h,
+       include/c_std/std_csetjmp.h, include/c_std/std_csignal.h,
+       include/c_std/std_cstdarg.h, include/c_std/std_cstddef.h,
+       include/c_std/std_cstdio.h, include/c_std/std_cstdlib.h,
+       include/c_std/std_cstring.h, include/c_std/std_ctime.h,
+       include/c_std/std_cwchar.h, include/c_std/std_cwctype.h,
+       include/ext/algorithm, include/ext/functional, include/ext/hash_map,
+       include/ext/hash_set, include/ext/iterator, include/ext/memory,
+       include/ext/numeric, include/ext/rb_tree, include/ext/rope,
+       include/ext/ropeimpl.h, include/ext/slist, include/ext/stl_hash_fun.h,
+       include/ext/stl_hashtable.h, include/ext/stl_rope.h,
+       include/std/std_algorithm.h, include/std/std_bitset.h,
+       include/std/std_complex.h, include/std/std_deque.h,
+       include/std/std_fstream.h, include/std/std_functional.h,
+       include/std/std_iomanip.h, include/std/std_ios.h,
+       include/std/std_iosfwd.h, include/std/std_iostream.h,
+       include/std/std_istream.h, include/std/std_iterator.h,
+       include/std/std_limits.h, include/std/std_list.h,
+       include/std/std_locale.h, include/std/std_map.h,
+       include/std/std_memory.h, include/std/std_numeric.h,
+       include/std/std_ostream.h, include/std/std_queue.h,
+       include/std/std_set.h, include/std/std_sstream.h,
+       include/std/std_stack.h, include/std/std_stdexcept.h,
+       include/std/std_streambuf.h, include/std/std_string.h,
+       include/std/std_utility.h, include/std/std_valarray.h,
+       include/std/std_vector.h:  Add/correct @file doxygen hook.
+
+       * include/ext/memory:  Doxygenate most of rest of file.
+       * libsupc++/exception:  Doxygen output formatting.
+       * libsupc++/new:  Say which header it is.
+
+       * testsuite/lib/libstdc++-v3-dg.exp:  Fix spacing.
+       * docs/html/19_diagnostics/howto.html:  Describe concept-checks switch.
+       * docs/html/23_containers/howto.html:  Describe O(n) list::size().
+       * docs/html/27_io/howto.html:  Also link to Langer and Kreft text.
+
 2002-01-28  Paolo Carlini  <pcarlini@unitus.it>
             Charles Leggett <CGLeggett@lbl.gov>
 
        * include/std/cassert: Remove.
 
        * include/bits/fpos.h: Adjust includes, removing <bits/std_xxx.h>
-       files and subsituting <.xxx>
+       files and subsituting <xxx>.
        * include/bits/valarray_array.h: Same.
        * include/bits/stl_uninitialized.h: Same.
        * include/bits/stl_alloc.h: Same.
index 3f058ee4f3e07437408ffb4168bce8b34add3eb4..a4b11a7898d22cbcb31371bb1fecc9c2507def26 100644 (file)
@@ -1,6 +1,7 @@
 ## Makefile for the toplevel directory of the GNU C++ Standard library.
 ##
-## Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
+## Free Software Foundation, Inc.
 ##
 ## This file is part of the libstdc++ version 3 distribution.
 ## Process this file with automake to produce Makefile.in.
@@ -43,20 +44,26 @@ check-script-install: $(top_builddir)/mkcheck
          cd testsuite; \
          @glibcpp_builddir@/mkcheck 1)
 
-# These two rules might seem messy, but are hella worth it.
+# These rules are messy, but are hella worth it.
 doxygen:
        -(srcdir=`cd ${top_srcdir}; pwd`; \
-         outdir=`pwd`; \
+         builddir=`pwd`; \
          /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
-                   --mode=user $${srcdir} $${outdir})
+                   --mode=user $${srcdir} $${builddir})
 
 doxygen-maint:
        -(srcdir=`cd ${top_srcdir}; pwd`; \
-         outdir=`pwd`; \
+         builddir=`pwd`; \
          /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
-                   --mode=maint $${srcdir} $${outdir})
+                   --mode=maint $${srcdir} $${builddir})
 
-.PHONY: doxygen doxygen-maint
+doxygen-man:
+       -(srcdir=`cd ${top_srcdir}; pwd`; \
+         builddir=`pwd`; \
+         /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
+                   --mode=man $${srcdir} $${builddir})
+
+.PHONY: doxygen doxygen-maint doxygen-man
 
 # Multilib support.
 MAKEOVERRIDES=
index 1f2b00c6a6185197e1af68bf2afa7fb047a2a766..3385a30a864fbae4a1075ad5b7068faa926bd635 100644 (file)
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
 
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -308,7 +308,7 @@ maintainer-clean-recursive:
        dot_seen=no; \
        rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
          rev="$$subdir $$rev"; \
-         test "$$subdir" != "." || dot_seen=yes; \
+         test "$$subdir" = "." && dot_seen=yes; \
        done; \
        test "$$dot_seen" = "no" && rev=". $$rev"; \
        target=`echo $@ | sed s/-recursive//`; \
@@ -497,20 +497,26 @@ check-script-install: $(top_builddir)/mkcheck
          cd testsuite; \
          @glibcpp_builddir@/mkcheck 1)
 
-# These two rules might seem messy, but are hella worth it.
+# These rules are messy, but are hella worth it.
 doxygen:
        -(srcdir=`cd ${top_srcdir}; pwd`; \
-         outdir=`pwd`; \
+         builddir=`pwd`; \
          /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
-                   --mode=user $${srcdir} $${outdir})
+                   --mode=user $${srcdir} $${builddir})
 
 doxygen-maint:
        -(srcdir=`cd ${top_srcdir}; pwd`; \
-         outdir=`pwd`; \
+         builddir=`pwd`; \
          /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
-                   --mode=maint $${srcdir} $${outdir})
+                   --mode=maint $${srcdir} $${builddir})
 
-.PHONY: doxygen doxygen-maint
+doxygen-man:
+       -(srcdir=`cd ${top_srcdir}; pwd`; \
+         builddir=`pwd`; \
+         /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
+                   --mode=man $${srcdir} $${builddir})
+
+.PHONY: doxygen doxygen-maint doxygen-man
 
 # Multilib Makefile bits.
 .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
index 1d0820cdb42631fe578625caa1d7cb94a0a19e75..3e963aa9faa0ed8185cb2b6db9c03e824de8b97c 100644 (file)
@@ -22,11 +22,12 @@ All the man pages are automatically generated by Doxygen.  For more
 information on this tool, see the HTML counterpart to these man pages.
 .P
 Some man pages do not correspond to individual classes or functions.  Rather
-they describe categories of the Standard Library.  (For a more thourough
-introduction to the various categories, consult a textbook such as Josuttis'
+they describe categories of the Standard Library.  (For a more thorough
+introduction to the various categories, consult a text such as Josuttis'
 or Austern's.)  These category pages are:
 .P
 .\" These are separated by ONE TAB.  Nothing else.  I don't like it either.
+.\" Keep them alphabatized.
 .TS
 lB l.
 Allocators     Classes encapsulating memory allocation schemes.
@@ -38,6 +39,7 @@ Containers    An introduction to container classes.
 Func_ptr_functors      Functors for use with pointers to functions.
 Intro  This page.
 Intro_functors An introduction to function objects, or functors.
+Iterator_types Programatically distinguishing iterators/pointers.
 Logical_functors       Functors wrapping the Boolean operations.
 Member_ptr_functor     Functors for use with pointers to members.
 Namespace_Std  A listing of the contents of std::.
@@ -89,12 +91,13 @@ lB lB lB lB.
 These headers will only be found automatically if you include the leading
 .B ext/
 in the name.  Otherwise you need to read FAQ 5.4.
+.\" Easy way to generate these columns of headers is to use GNU ls(1):
+.\" ls -w 40 file1 file2... | sed 's=[a-z_][a-z_]*=<ext/&>=g'
 .TS
 lB.
-<ext/hash_map>
-<ext/hash_set>
-<ext/rope>
-<ext/slist>
+<ext/algorithm>   <ext/hash_set>  <ext/numeric>  <ext/slist>
+<ext/functional>  <ext/iterator>  <ext/rb_tree>
+<ext/hash_map>    <ext/memory>    <ext/rope>
 .TE
 .SS Libraries
 .TP
index 672513e624cda7a723165cea608b3c1b59a322f0..718421a1de988b3f2e6e8afd48fa048c70964fc1 100644 (file)
@@ -1,7 +1,7 @@
 
 The approach I've been using for a given header is to recursively do each
 of the "bits" headers which make up the standard header.  So, e.g., while
-there are five headers making up <algorithm>, three of them were already
+there are four headers making up <algorithm>, three of them were already
 documented in the course of doing other headers.
 
 "Untouched" means I've deliberately skipped it for various reasons, or
@@ -14,23 +14,21 @@ haven't gotten to it yet.  It /will/ be done (by somebody, eventually.)
 c17             FINISHED (Nothing in Clause 17 "exists" in terms of code.)
 c18             <limits>, Note A
 c19             Note A
-c20             rel_ops (should they be doc'd?), Note A
+c20             Note A
 c21             Untouched, Note B
 c22             Untouched
 c23             See doxygroups.cc and Note B.
-                stl_alloc.h, stl_uninitialized.h remain from the common files.
 c24             Untouched
-c25             stl_tempbuf.h (small), stl_algo.h (big)
+c25             stl_algo.h (lots of stuff)
 c26             <complex>, <valarray>, stl_numeric.h[26.4], Note A
 c27             Untouched
 
 backward/       Not scanned by doxygen.  Should it be?
 
-ext/            Untouched
+ext/            Some of the SGI algorithm/functional extensions.
+                All of rope/hashing/slist need docs.
 
-__gnu_cxx       Extensions such as verbose_terminate_handler are documented
-                but do not appear in output, since the __gnu_cxx namespace is
-                itself undocumented.  Should it be?  Eeeeeeehhh...
+__gnu_cxx       Tricky.
 
 [1.3.5]         "implementation-defined behavior:  behavior ... that depends
                 on the implementation *and that each implementation shall
@@ -43,10 +41,21 @@ __gnu_cxx       Extensions such as verbose_terminate_handler are documented
 NOTES:
 
 A)  So far I have not tried to document any of the <c*> headers.  So entities
-such as atexit() are undocumented throughout the library.
+such as atexit() are undocumented throughout the library.  Since we usually
+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.  How to reproduce this information?
 
 
+
+STYLE:
+stl_deque.h, stl_pair.h, and stl_algobase.h have good examples of what I've
+been using for class, namespace-scope, and function documentation, respectively.
+These should serve as starting points.  /Please/ maintain the inter-word and
+inter-sentence spacing, as this might be generated and/or scanned in the
+future.
+
+
 vim:ts=4:et:
index 0537fb1504138f6b3b8de515ec041c89b22632df..d2bda88f8ecdc32a58247eacc7debd086a44b4d7 100644 (file)
 
 // // // // // // // // // // // // // // // // // // // // // // // //
 /** @namespace std
- *  @brief Everything defined by the ISO C++ Standard is within namespace
- *  std.
+ *  @brief Everything defined by the ISO C++ Standard is within namespace std.
+*/
+/** @namespace __gnu_cxx
+ *  @brief Non-standard things.
+ *
+ *  This namespace is used for
+ *  -  sequestering internal (implementation-only) names away from the
+ *     global namespace
+ *  -  GNU extensions
+ *
+ *  This is still fluid and changing rapidly.
 */
 
 // // // // // // // // // // // // // // // // // // // // // // // //
index 467f5ff3d8683a5d9c3d751b6687ebcfc604bed1..b3a4d29d6253540323d9e643e054a66fe48249a0 100644 (file)
@@ -33,7 +33,7 @@
 <p>The libstdc++-v3 configuration files needed to generate doxygen output
    are located:
    <ul><li><code>docs/doxygen/user.cfg.in</code>
-       <li><code>docs/doxygen/maint.cfg.in</code>
+       <li><code>docs/doxygen/run_doxygen</code>
    </ul>
 </p>
 
diff --git a/libstdc++-v3/docs/doxygen/maint.cfg.in b/libstdc++-v3/docs/doxygen/maint.cfg.in
deleted file mode 100644 (file)
index 9307a06..0000000
+++ /dev/null
@@ -1,823 +0,0 @@
-# Doxyfile 1.2.6
-
-# This file describes the settings to be used by doxygen for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-### When doxygen is run, the current directory is the top of
-### the libstdc++-v3 source directory.  Keep this in mind while
-### writing relative-path directories.
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project. 
-
-PROJECT_NAME           = "libstdc++-v3 Source"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = 
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-### Currently this is not really run through autoconf; it just looks that way.
-OUTPUT_DIRECTORY       = @outdir@
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, 
-# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian, 
-# Polish, Portuguese and Slovene.
-
-OUTPUT_LANGUAGE        = English
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 
-
-EXTRACT_ALL            = NO
-#EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation. 
-
-EXTRACT_PRIVATE        = YES
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation. 
-
-EXTRACT_STATIC         = YES
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled. 
-
-HIDE_UNDOC_MEMBERS     = YES
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these class will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled. 
-
-HIDE_UNDOC_CLASSES     = YES
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this. 
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed. 
-
-REPEAT_BRIEF           = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description. 
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used. 
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH        = 
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation. 
-
-INTERNAL_DOCS          = NO
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a class diagram (in Html and LaTeX) for classes with base or 
-# super classes. Setting the tag to NO turns the diagrams off. 
-
-CLASS_DIAGRAMS         = YES
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation. 
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible. 
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower case letters. If set to YES upper case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# users are adviced to set this option to NO.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden. 
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this. 
-
-VERBATIM_HEADERS       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put list of the files that are included by a file in the documentation 
-# of that file. 
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments  will behave just like the Qt-style comments (thus requiring an 
-# explict @brief command for a brief description. 
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# reimplements. 
-
-INHERIT_DOCS           = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members. 
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order. 
-
-SORT_MEMBER_DOCS       = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = YES
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments. 
-
-TAB_SIZE               = 4
-
-# The ENABLE_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif. 
-
-ENABLED_SECTIONS       = maint
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = NO
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = NO
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# 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"
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consist of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting. 
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C. 
-# For instance some of the names that are used will be different. The list 
-# of all members will be omitted, etc. 
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation. 
-
-SHOW_USED_FILES        = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used. 
-
-QUIET                  = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used. 
-
-WARNINGS               = NO
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled. 
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. 
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr. 
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces. 
-
-INPUT                  = docs/doxygen \
-                         libsupc++ \
-                         include \
-                         src \
-libsupc++/exception libsupc++/new libsupc++/typeinfo include/ext/hash_map \
-include/ext/hash_set include/ext/rope include/ext/slist include/std/algorithm \
-include/std/bitset include/std/cassert include/std/cctype \
-include/std/cerrno include/std/cfloat include/std/ciso646 include/std/climits \
-include/std/clocale include/std/cmath include/std/complex include/std/csetjmp \
-include/std/csignal include/std/cstdarg include/std/cstddef \
-include/std/cstdio include/std/cstdlib include/std/cstring \
-include/std/ctime include/std/cwchar include/std/cwctype include/std/deque \
-include/std/fstream include/std/functional include/std/iomanip \
-include/std/ios include/std/iosfwd include/std/iostream include/std/istream \
-include/std/iterator include/std/limits include/std/list include/std/locale \
-include/std/map include/std/memory include/std/numeric include/std/ostream \
-include/std/queue include/std/set include/std/sstream include/std/stack \
-include/std/stdexcept include/std/streambuf include/std/string \
-include/std/utility include/std/valarray include/std/vector
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included. 
-
-FILE_PATTERNS          = *.doxy \
-                         *.cc \
-                         *.tcc \
-                         *.h \
-                         c++config
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used. 
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag. 
-
-EXCLUDE                = include/c \
-                         include/c_shadow \
-                         docs/doxygen/stdheader.cc
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. 
-
-EXCLUDE_PATTERNS       = CVS
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command). 
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included. 
-
-EXAMPLE_PATTERNS       = 
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command). 
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output. 
-
-INPUT_FILTER           = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse. 
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces. 
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20]) 
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers. 
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output. 
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path. 
-
-HTML_OUTPUT            = html_maint
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet 
-
-HTML_STYLESHEET        = docs/doxygen/style.css
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used. 
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation. 
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set YES to add extra items for group members 
-# to the contents of the Html help documentation and to the tree view. 
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it. 
-
-DISABLE_INDEX          = YES
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation. 
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript and frames is required (for instance Netscape 4.0+ 
-# or Internet explorer 4.0+). 
-
-GENERATE_TREEVIEW      = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown. 
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output. 
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path. 
-
-LATEX_OUTPUT           = latex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general. 
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used. 
-
-PAPER_TYPE             = letter
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output. 
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing! 
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer. 
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation. 
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML. 
-
-LATEX_BATCHMODE        = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimised for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path. 
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general. 
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using a WORD or other. 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links. 
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assigments. You only have to provide 
-# replacements, missing definitions are set to their default value. 
-
-RTF_STYLESHEET_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages 
-
-GENERATE_MAN           = YES
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path. 
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3) 
-
-MAN_EXTENSION          = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files. 
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES. 
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_PREDEFINED tags. 
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found. 
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor. 
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used. 
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. 
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition. 
-
-EXPAND_AS_DEFINED      = 
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tagfiles. 
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads. 
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed. 
-
-ALLEXTERNALS           = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl'). 
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default) 
-
-HAVE_DOT               = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes. 
-
-COLLABORATION_GRAPH    = YES
-
-# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to 
-# YES then doxygen will generate a graph for each documented file showing 
-# the direct and indirect include dependencies of the file with other 
-# documented files. 
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to 
-# YES then doxygen will generate a graph for each documented header file showing 
-# the documented files that directly or indirectly include this file 
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one. 
-
-GRAPHICAL_HIERARCHY    = YES
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found on the path. 
-
-DOT_PATH               = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images. 
-
-MAX_DOT_GRAPH_WIDTH    = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images. 
-
-MAX_DOT_GRAPH_HEIGHT   = 1024
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs. 
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermedate dot files that are used to generate 
-# the various graphs. 
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored. 
-
-SEARCHENGINE           = NO
-
-# The CGI_NAME tag should be the name of the CGI script that 
-# starts the search engine (doxysearch) with the correct parameters. 
-# A script with this name will be generated by doxygen. 
-
-CGI_NAME               = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the 
-# cgi binaries are located. See the documentation of your http daemon for 
-# details. 
-
-CGI_URL                = 
-
-# The DOC_URL tag should be the absolute URL to the directory where the 
-# documentation is located. If left blank the absolute path to the 
-# documentation, with file:// prepended to it, will be used. 
-
-DOC_URL                = 
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the 
-# documentation is located. If left blank the directory on the local machine 
-# will be used. 
-
-DOC_ABSPATH            = 
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
-# is installed. 
-
-BIN_ABSPATH            = /usr/local/bin/
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
-# documentation generated for other projects. This allows doxysearch to search 
-# the documentation for these projects as well. 
-
-EXT_DOC_PATHS          = 
-
-
-# End of file
-
-
-
index 7ac27447d4c585aa24bf35204e0a9e7ae91e72d2..18866da69f0280e931aa9f08271c76e387c62e9a 100644 (file)
@@ -2,13 +2,13 @@
 
 # Runs doxygen and massages the output files.
 #
-# Synopsis:  run_doxygen --mode=[user|maint]  v3srcdir  v3builddir
+# Synopsis:  run_doxygen --mode=[user|maint|man]  v3srcdir  v3builddir
 #
 # Originally hacked together by Phil Edwards <pme@gcc.gnu.org>
 
 
 # We can check now that the version of doxygen is >= this variable.
-DOXYVER=1.2.10
+DOXYVER=1.2.12
 doxygen=
 
 find_doxygen() {
@@ -39,11 +39,12 @@ find_doxygen() {
 
 print_usage() {
     cat 1>&2 <<EOF
-Usage:  run_doxygen --mode=MODE [<options>] <src-dir> <output-dir>
+Usage:  run_doxygen --mode=MODE [<options>] <v3-src-dir> <v3-build-dir>
       MODE is one of:
-          maint          Generate maintainers' documentation (lots more;
+          user           Generate user-level HTML library documentation.
+          maint          Generate maintainers' HTML documentation (lots more;
                              exposes non-public members, etc).
-          user           Generate user-level library documentation.
+          man            Generate user-level man pages.
 
       more options when i think of them
 
@@ -74,6 +75,7 @@ parse_options() {
         if test $srcdir = unset; then
           srcdir=$o
         elif test $outdir = unset; then
+          builddir=${o}
           outdir=${o}/docs/doxygen
         else
           echo run_doxygen error:  Too many arguments 1>&2
@@ -89,6 +91,9 @@ parse_options() {
 mode=unset
 srcdir=unset
 outdir=unset
+do_html=no
+do_man=no
+enabled_sections=
 
 parse_options $*
 find_doxygen
@@ -100,34 +105,64 @@ if test $srcdir = unset || test $outdir = unset || test $mode = unset; then
 fi
 
 case x"$mode" in
-    xuser | xmaint)  ;;  # ochen khorosho
+    xuser)           do_html=yes
+                     ;;
+    xmaint)          do_html=yes
+                     enabled_sections=maint
+                     ;;
+    xman)            do_man=yes
+                     ;;
     *)
       echo run_doxygen error:  $mode is an invalid mode 1>&2
       exit 1 ;;
 esac
 
-rm -rf $outdir
+#rm -rf $outdir
 mkdir -p $outdir
 chmod u+w $outdir
+
+# work around a stupid doxygen bug
+test $do_man = yes && {
+    mkdir -p $outdir/man/man3/ext
+    chmod -R u+w $outdir/man/man3/ext
+}
+
+set -e
 (
   set -e
-  cd $srcdir
+  cd $builddir
   sed -e "s=@outdir@=${outdir}=" \
       -e "s=@srcdir@=${srcdir}=" \
-      docs/doxygen/${mode}.cfg.in > ${outdir}/${mode}.cfg
+      -e "s=@html_output_dir@=html_${mode}=" \
+      -e "s=@enabled_sections@=${enabled_sections}=" \
+      -e "s=@do_html@=${do_html}=" \
+      -e "s=@do_man@=${do_man}=" \
+      ${srcdir}/docs/doxygen/user.cfg.in > ${outdir}/${mode}.cfg
   echo :: NOTE that this may take some time...
   echo $doxygen ${outdir}/${mode}.cfg
   $doxygen ${outdir}/${mode}.cfg
   echo :: Finished, exit code was $?
 )
+set +e
+
+test $do_html = yes && {
+    echo ::
+    echo :: HTML pages begin with
+    echo :: ${outdir}/html_${mode}/index.html
+}
 
 # Mess with the man pages.  We don't need documentation of the internal
 # headers, since the man pages for those contain nothing useful anyhow.  The
 # man pages for doxygen modules need to be renamed (or deleted).  And the
 # generated #include lines need to be changed from the internal names to the
 # standard ones (e.g., "#include <stl_tempbuf.h>" -> "#include <memory>").
-cd $outdir/man/man3 && {
+test $do_man = yes && {
+echo ::
 echo :: Fixing up the man pages...
+cd $outdir/man/man3
+
+# here's the other end of the "stupid doxygen bug" mentioned above
+rm -rf ext
 
 # File names with embedded spaces (EVIL!) need to be....?  renamed or removed?
 find . -name "* *" -print0 | xargs -0 rm        # requires GNU tools
@@ -142,10 +177,16 @@ mv s20_3_6_binder.3         Binder_functors.3
 mv s20_3_7_adaptors.3       Func_ptr_functors.3
 mv s20_3_8_memadaptors.3    Member_ptr_functors.3
 mv std.3                    Namespace_Std.3
+mv iterator_tags.3          Iterator_types.3
 
-# man pages are for functions/types/other entities, not source files directly
+# man pages are for functions/types/other entities, not source files
+# directly.  who the heck would type "man foo.h" anyhow?
 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
+#find . -name "[a-z]*" -a ! -name "std_*" -print | xargs -i mv {} trash
+#mv *.h.3 *config* *.cc.3 *.tcc.3 *_t.3  trash
 
 # Standardize the displayed header names.  If anyone who knows perl cares
 # enough to rewrite all this, feel free.  This only gets run once a century,
@@ -179,15 +220,12 @@ done
 
 cp ${srcdir}/docs/doxygen/Intro.3 .
 
+echo ::
+echo :: Man pages in ${outdir}/man
 }
 
 # all done
 echo ::
-echo :: Doxygen output begins with
-echo :: ${outdir}/html_${mode}/index.html
-echo ::
-echo :: Man pages in ${outdir}/man
-echo ::
 
 exit 0
 
index e83748c7f3c5f23e9bf45c703e53b3c4b60525de..b6baf6da8e5a6669ec591f44214b6ae9c5772b43 100644 (file)
@@ -1,6 +1,7 @@
-# Doxyfile 1.2.6
+# Doxyfile 1.2.12
 
-# This file describes the settings to be used by doxygen for a project
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
 #
 # All text after a hash (#) is considered a comment and will be ignored
 # The format is:
 #       TAG += value [value, ...]
 # Values that contain spaces should be placed between quotes (" ")
 
-### When doxygen is run, the current directory is the top of
-### the libstdc++-v3 source directory.  Keep this in mind while
-### writing relative-path directories.
+### When doxygen is run, the current directory is the top of the
+### libstdc++-v3 build directory.  Keep this in mind while writing
+### relative-path directories.
+###
+### Currently this is not really run through autoconf; it just looks that way.
+
 
 #---------------------------------------------------------------------------
 # General configuration options
 #---------------------------------------------------------------------------
 
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project. 
+# by quotes) that should identify the project.
 
 PROJECT_NAME           = "libstdc++-v3 Source"
 
@@ -32,34 +36,33 @@ PROJECT_NUMBER         =
 # base path where the generated documentation will be put. 
 # If a relative path is entered, it will be relative to the location 
 # where doxygen was started. If left blank the current directory will be used.
-### Currently this is not really run through autoconf; it just looks that way.
+
 OUTPUT_DIRECTORY       = @outdir@
 
 # The OUTPUT_LANGUAGE tag is used to specify the language in which all 
 # documentation generated by doxygen is written. Doxygen will use this 
 # information to generate all constant output in the proper language. 
 # The default language is English, other supported languages are: 
-# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese
-# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian
-# Polish, Portuguese and Slovene.
+# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French
+# German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish
+# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
 
 OUTPUT_LANGUAGE        = English
 
 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
 # documentation are documented, even if no documentation was available. 
 # Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
 
 EXTRACT_ALL            = NO
-#EXTRACT_ALL            = YES
 
 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation. 
+# will be included in the documentation.
 
 EXTRACT_PRIVATE        = YES
 
 # If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation. 
+# will be included in the documentation.
 
 EXTRACT_STATIC         = YES
 
@@ -67,40 +70,40 @@ EXTRACT_STATIC         = YES
 # undocumented members of documented classes, files or namespaces. 
 # If set to NO (the default) these members will be included in the 
 # various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled. 
+# This option has no effect if EXTRACT_ALL is enabled.
 
 HIDE_UNDOC_MEMBERS     = YES
 
 # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
 # undocumented classes that are normally visible in the class hierarchy. 
 # If set to NO (the default) these class will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled. 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
 
 HIDE_UNDOC_CLASSES     = YES
 
 # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
 # include brief member descriptions after the members that are listed in 
 # the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this. 
+# Set to NO to disable this.
 
 BRIEF_MEMBER_DESC      = YES
 
 # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
 # the brief description of a member or function before the detailed description. 
 # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed. 
+# brief descriptions will be completely suppressed.
 
 REPEAT_BRIEF           = YES
 
 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
 # Doxygen will generate a detailed section even if there is only a brief 
-# description. 
+# description.
 
-ALWAYS_DETAILED_SEC    = NO
+ALWAYS_DETAILED_SEC    = YES
 
 # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
 # path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used. 
+# to NO the shortest path that makes the file name unique will be used.
 
 FULL_PATH_NAMES        = NO
 
@@ -114,29 +117,13 @@ STRIP_FROM_PATH        =
 # The INTERNAL_DOCS tag determines if documentation 
 # that is typed after a \internal command is included. If the tag is set 
 # to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation. 
+# Set it to YES to include the internal documentation.
 
 INTERNAL_DOCS          = NO
 
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a class diagram (in Html and LaTeX) for classes with base or 
-# super classes. Setting the tag to NO turns the diagrams off. 
-
-CLASS_DIAGRAMS         = YES
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation. 
-
-INLINE_SOURCES         = NO
-
 # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
 # doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible. 
+# fragments. Normal C and C++ comments will always remain visible.
 
 STRIP_CODE_COMMENTS    = YES
 
@@ -148,21 +135,27 @@ STRIP_CODE_COMMENTS    = YES
 
 CASE_SENSE_NAMES       = NO
 
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
 # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
 # will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden. 
+# documentation. If set to YES the scope will be hidden.
 
 HIDE_SCOPE_NAMES       = NO
 
 # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
 # will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this. 
+# which an include is specified. Set to NO to disable this.
 
 VERBATIM_HEADERS       = NO
 
 # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
 # will put list of the files that are included by a file in the documentation 
-# of that file. 
+# of that file.
 
 SHOW_INCLUDE_FILES     = YES
 
@@ -170,25 +163,25 @@ SHOW_INCLUDE_FILES     = YES
 # will interpret the first line (until the first dot) of a JavaDoc-style 
 # comment as the brief description. If set to NO, the JavaDoc 
 # comments  will behave just like the Qt-style comments (thus requiring an 
-# explict @brief command for a brief description. 
+# explict @brief command for a brief description.
 
 JAVADOC_AUTOBRIEF      = NO
 
 # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
 # member inherits the documentation from any documented member that it 
-# reimplements. 
+# reimplements.
 
 INHERIT_DOCS           = YES
 
 # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members. 
+# is inserted in the documentation for inline members.
 
 INLINE_INFO            = YES
 
 # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
 # will sort the (detailed) documentation of file and class members 
 # alphabetically by member name. If set to NO the members will appear in 
-# declaration order. 
+# declaration order.
 
 SORT_MEMBER_DOCS       = YES
 
@@ -200,15 +193,10 @@ SORT_MEMBER_DOCS       = YES
 DISTRIBUTE_GROUP_DOC   = YES
 
 # The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
 
 TAB_SIZE               = 4
 
-# The ENABLE_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif. 
-
-ENABLED_SECTIONS       = 
-
 # The GENERATE_TODOLIST tag can be used to enable (YES) or 
 # disable (NO) the todo list. This list is created by putting \todo 
 # commands in the documentation.
@@ -232,10 +220,15 @@ GENERATE_BUGLIST       = YES
 # For example adding "sideeffect=\par Side Effects:\n" will allow you to 
 # put the command \sideeffect (or @sideeffect) in the documentation, which 
 # will result in a user defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines. 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = "maint=@if maint" \
+                         "endmaint=@endif"
 
-ALIASES                = "maint=\if maint" \
-                         "endmaint=\endif"
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = @enabled_sections@
 
 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
 # the initial value of a variable or define consist of for it to appear in 
@@ -243,20 +236,20 @@ ALIASES                = "maint=\if maint" \
 # here it will be hidden. Use a value of 0 to hide initializers completely. 
 # The appearance of the initializer of individual variables and defines in the 
 # documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting. 
+# command in the documentation regardless of this setting.
 
 MAX_INITIALIZER_LINES  = 30
 
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
 # only. Doxygen will then generate output that is more tailored for C. 
 # For instance some of the names that are used will be different. The list 
-# of all members will be omitted, etc. 
+# of all members will be omitted, etc.
 
 OPTIMIZE_OUTPUT_FOR_C  = NO
 
 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
 # at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation. 
+# list will mention the files that were used to generate the documentation.
 
 SHOW_USED_FILES        = YES
 
@@ -265,32 +258,32 @@ SHOW_USED_FILES        = YES
 #---------------------------------------------------------------------------
 
 # The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used. 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
 
 QUIET                  = YES
 
 # The WARNINGS tag can be used to turn on/off the warning messages that are 
 # generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used. 
+# NO is used.
 
 WARNINGS               = NO
 
 # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
 # for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled. 
+# automatically be disabled.
 
 WARN_IF_UNDOCUMENTED   = YES
 
 # The WARN_FORMAT tag determines the format of the warning messages that 
 # doxygen can produce. The string should contain the $file, $line, and $text 
 # tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. 
+# warning originated and the warning text.
 
 WARN_FORMAT            = "$file:$line: $text"
 
 # The WARN_LOGFILE tag can be used to specify a file to which warning 
 # and error messages should be written. If left blank the output is written 
-# to stderr. 
+# to stderr.
 
 WARN_LOGFILE           = 
 
@@ -298,78 +291,72 @@ WARN_LOGFILE           =
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 
-# The INPUT tag can be used to specify the files and/or directories that contain
+# The INPUT tag can be used to specify the files and/or directories that contain 
 # documented source files. You may enter file names like "myfile.cpp" or 
 # directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces. 
-
-INPUT                  = docs/doxygen \
-                         libsupc++ \
-                         include \
-                         src \
-libsupc++/exception libsupc++/new libsupc++/typeinfo include/ext/hash_map \
-include/ext/hash_set include/ext/rope include/ext/slist include/std/algorithm \
-include/std/bitset include/std/cassert include/std/cctype \
-include/std/cerrno include/std/cfloat include/std/ciso646 include/std/climits \
-include/std/clocale include/std/cmath include/std/complex include/std/csetjmp \
-include/std/csignal include/std/cstdarg include/std/cstddef \
-include/std/cstdio include/std/cstdlib include/std/cstring \
-include/std/ctime include/std/cwchar include/std/cwctype include/std/deque \
-include/std/fstream include/std/functional include/std/iomanip \
-include/std/ios include/std/iosfwd include/std/iostream include/std/istream \
-include/std/iterator include/std/limits include/std/list include/std/locale \
-include/std/map include/std/memory include/std/numeric include/std/ostream \
-include/std/queue include/std/set include/std/sstream include/std/stack \
-include/std/stdexcept include/std/streambuf include/std/string \
-include/std/utility include/std/valarray include/std/vector
+# with spaces.
+
+INPUT                  = @srcdir@/docs/doxygen/mainpage.doxy \
+                         @srcdir@/docs/doxygen/doxygroups.cc \
+                         @srcdir@/src \
+                         @srcdir@/libsupc++/exception \
+                         @srcdir@/libsupc++/new \
+                         @srcdir@/libsupc++/typeinfo \
+                         include
+
+
 
 # If the value of the INPUT tag contains directories, you can use the 
 # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
 # and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included. 
+# blank file matching one of the following patterns are included: 
+# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl
 
-FILE_PATTERNS          = *.doxy \
-                         *.cc \
-                         *.tcc \
-                         *.h \
-                         c++config
+FILE_PATTERNS          = *
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories 
 # should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used. 
+# If left blank NO is used.
 
 RECURSIVE              = YES
 
 # The EXCLUDE tag can be used to specify files and/or directories that should 
 # excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag. 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
 
-EXCLUDE                = include/c \
-                         include/c_shadow \
-                         docs/doxygen/stdheader.cc
+EXCLUDE                = Makefile
 
 # If the value of the INPUT tag contains directories, you can use the 
 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. 
+# certain files from those directories.
 
-EXCLUDE_PATTERNS       = CVS
+EXCLUDE_PATTERNS       = CVS \
+                         stamp-*
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or 
 # directories that contain example code fragments that are included (see 
-# the \include command). 
+# the \include command).
 
 EXAMPLE_PATH           = 
 
 # If the value of the EXAMPLE_PATH tag contains directories, you can use the 
 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
 # and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included. 
+# blank all files are included.
 
 EXAMPLE_PATTERNS       = 
 
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
 # The IMAGE_PATH tag can be used to specify one or more files or 
 # directories that contain image that are included in the documentation (see 
-# the \image command). 
+# the \image command).
 
 IMAGE_PATH             = 
 
@@ -378,36 +365,62 @@ IMAGE_PATH             =
 # by executing (via popen()) the command <filter> <input-file>, where <filter> 
 # is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
 # input file. Doxygen will then use the output that the filter program writes 
-# to standard output. 
+# to standard output.
 
 INPUT_FILTER           = 
 
 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
 # INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse. 
+# files to browse.
 
 FILTER_SOURCE_FILES    = NO
 
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
 #---------------------------------------------------------------------------
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
 
 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
 # of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces. 
+# contains a lot of classes, structs, unions or interfaces.
 
 ALPHABETICAL_INDEX     = YES
 
 # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
 # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20]) 
+# in which this list will be split (can be a number in the range [1..20])
 
 COLS_IN_ALPHA_INDEX    = 5
 
 # In case all classes in a project start with a common prefix, all 
 # classes will be put under the same header in the alphabetical index. 
 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers. 
+# should be ignored while generating the index headers.
 
 IGNORE_PREFIX          = 
 
@@ -416,15 +429,15 @@ IGNORE_PREFIX          =
 #---------------------------------------------------------------------------
 
 # If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output. 
+# generate HTML output.
 
-GENERATE_HTML          = YES
+GENERATE_HTML          = @do_html@
 
 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path. 
+# put in front of it. If left blank `html' will be used as the default path.
 
-HTML_OUTPUT            = html_user
+HTML_OUTPUT            = @html_output_dir@
 
 # The HTML_HEADER tag can be used to specify a personal HTML header for 
 # each generated HTML page. If it is left blank doxygen will generate a 
@@ -441,20 +454,20 @@ HTML_FOOTER            =
 # The HTML_STYLESHEET tag can be used to specify a user defined cascading 
 # style sheet that is used by each HTML page. It can be used to 
 # fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet 
+# will generate a default style sheet
 
-HTML_STYLESHEET        = docs/doxygen/style.css
+HTML_STYLESHEET        = @srcdir@/docs/doxygen/style.css
 
 # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
 # files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used. 
+# NO a bullet list will be used.
 
 HTML_ALIGN_MEMBERS     = YES
 
 # If the GENERATE_HTMLHELP tag is set to YES, additional index files 
 # will be generated that can be used as input for tools like the 
 # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation. 
+# of the generated HTML documentation.
 
 GENERATE_HTMLHELP      = NO
 
@@ -470,33 +483,35 @@ GENERATE_CHI           = NO
 
 BINARY_TOC             = NO
 
-# The TOC_EXPAND flag can be set YES to add extra items for group members 
-# to the contents of the Html help documentation and to the tree view. 
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view.
 
 TOC_EXPAND             = NO
 
 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
 # top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it. 
+# the value YES disables it.
 
 DISABLE_INDEX          = YES
 
 # This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation. 
+# that doxygen will group on one line in the generated HTML documentation.
 
 ENUM_VALUES_PER_LINE   = 4
 
 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
 # generated containing a tree-like index structure (just like the one that 
 # is generated for HTML Help). For this to work a browser that supports 
-# JavaScript and frames is required (for instance Netscape 4.0+ 
-# or Internet explorer 4.0+). 
+# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
+# or Internet explorer 4.0+). Note that for large projects the tree generation 
+# can take a very long time. In such cases it is better to disable this feature. 
+# Windows users are probably better off using the HTML help feature.
 
 GENERATE_TREEVIEW      = NO
 
 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
 # used to set the initial width (in pixels) of the frame in which the tree 
-# is shown. 
+# is shown.
 
 TREEVIEW_WIDTH         = 250
 
@@ -505,57 +520,57 @@ TREEVIEW_WIDTH         = 250
 #---------------------------------------------------------------------------
 
 # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output. 
+# generate Latex output.
 
 GENERATE_LATEX         = NO
 
 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path. 
+# put in front of it. If left blank `latex' will be used as the default path.
 
 LATEX_OUTPUT           = latex
 
 # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
 # LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general. 
+# save some trees in general.
 
 COMPACT_LATEX          = NO
 
 # The PAPER_TYPE tag can be used to set the paper type that is used 
 # by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used. 
+# executive. If left blank a4wide will be used.
 
 PAPER_TYPE             = letter
 
 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output. 
+# packages that should be included in the LaTeX output.
 
 EXTRA_PACKAGES         = 
 
 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
 # the generated latex document. The header should contain everything until 
 # the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing! 
+# standard header. Notice: only use this tag if you know what you are doing!
 
 LATEX_HEADER           = 
 
 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
 # is prepared for conversion to pdf (using ps2pdf). The pdf file will 
 # contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer. 
+# This makes the output suitable for online browsing using a pdf viewer.
 
 PDF_HYPERLINKS         = NO
 
 # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
 # plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation. 
+# higher quality PDF documentation.
 
 USE_PDFLATEX           = NO
 
 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
 # command to the generated LaTeX files. This will instruct LaTeX to keep 
 # running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML. 
+# This option is also used when generating formulas in HTML.
 
 LATEX_BATCHMODE        = NO
 
@@ -571,89 +586,114 @@ GENERATE_RTF           = NO
 
 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path. 
+# put in front of it. If left blank `rtf' will be used as the default path.
 
 RTF_OUTPUT             = rtf
 
 # If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
 # RTF documents. This may be useful for small projects and may help to 
-# save some trees in general. 
+# save some trees in general.
 
 COMPACT_RTF            = NO
 
 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
 # will contain hyperlink fields. The RTF file will 
 # contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using a WORD or other. 
+# This makes the output suitable for online browsing using WORD or other 
 # programs which support those fields. 
-# Note: wordpad (write) and others do not support links. 
+# Note: wordpad (write) and others do not support links.
 
 RTF_HYPERLINKS         = NO
 
 # Load stylesheet definitions from file. Syntax is similar to doxygen's 
 # config file, i.e. a series of assigments. You only have to provide 
-# replacements, missing definitions are set to their default value. 
+# replacements, missing definitions are set to their default value.
 
 RTF_STYLESHEET_FILE    = 
 
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
 #---------------------------------------------------------------------------
 # configuration options related to the man page output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages 
+# generate man pages
 
-GENERATE_MAN           = YES
+GENERATE_MAN           = @do_man@
 
 # The MAN_OUTPUT tag is used to specify where the man pages will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path. 
+# put in front of it. If left blank `man' will be used as the default path.
 
 MAN_OUTPUT             = man
 
 # The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3) 
+# the generated man pages (default is the subroutine's section .3)
 
 MAN_EXTENSION          = .3
 
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_XML           = NO
+
 #---------------------------------------------------------------------------
 # Configuration options related to the preprocessor   
 #---------------------------------------------------------------------------
 
 # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
 # evaluate all C-preprocessor directives found in the sources and include 
-# files. 
+# files.
 
 ENABLE_PREPROCESSING   = YES
 
 # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
 # names in the source code. If set to NO (the default) only conditional 
 # compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES. 
+# way by setting EXPAND_ONLY_PREDEF to YES.
 
 MACRO_EXPANSION        = NO
 
 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
 # then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_PREDEFINED tags. 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
 
 EXPAND_ONLY_PREDEF     = NO
 
 # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found. 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
 
 SEARCH_INCLUDES        = YES
 
 # The INCLUDE_PATH tag can be used to specify one or more directories that 
 # contain include files that are not input files but should be processed by 
-# the preprocessor. 
+# the preprocessor.
 
 INCLUDE_PATH           = 
 
 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
 # patterns (like *.h and *.hpp) to filter out the header-files in the 
 # directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used. 
+# be used.
 
 INCLUDE_FILE_PATTERNS  = 
 
@@ -661,38 +701,45 @@ INCLUDE_FILE_PATTERNS  =
 # are defined before the preprocessor is started (similar to the -D option of 
 # gcc). The argument of the tag is a list of macros of the form: name 
 # or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. 
+# omitted =1 is assumed.
 
 PREDEFINED             = 
 
 # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
 # this tag can be used to specify a list of macro names that should be expanded. 
 # The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
 
 EXPAND_AS_DEFINED      = 
 
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line and do not end with a semicolon. Such function macros are typically 
+# used for boiler-plate code, and will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
 #---------------------------------------------------------------------------
 # Configuration::addtions related to external references   
 #---------------------------------------------------------------------------
 
-# The TAGFILES tag can be used to specify one or more tagfiles. 
+# The TAGFILES tag can be used to specify one or more tagfiles.
 
 TAGFILES               = 
 
 # When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads. 
+# a tag file that is based on the input files it reads.
 
 GENERATE_TAGFILE       = 
 
 # If the ALLEXTERNALS tag is set to YES all external classes will be listed 
 # in the class index. If set to NO only the inherited external classes 
-# will be listed. 
+# will be listed.
 
 ALLEXTERNALS           = YES
 
 # The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl'). 
+# interpreter (i.e. the result of `which perl').
 
 PERL_PATH              = /usr/bin/perl
 
@@ -700,10 +747,18 @@ PERL_PATH              = /usr/bin/perl
 # Configuration options related to the dot tool   
 #---------------------------------------------------------------------------
 
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yield more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
 # available from the path. This tool is part of Graphviz, a graph visualization 
 # toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default) 
+# have no effect if this option is set to NO (the default)
 
 HAVE_DOT               = YES
 
@@ -717,38 +772,56 @@ CLASS_GRAPH            = YES
 # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
 # will generate a graph for each documented class showing the direct and 
 # indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes. 
+# class references variables) of the class with other documented classes.
 
 COLLABORATION_GRAPH    = YES
 
-# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to 
-# YES then doxygen will generate a graph for each documented file showing 
-# the direct and indirect include dependencies of the file with other 
-# documented files. 
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
 
 INCLUDE_GRAPH          = YES
 
-# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to 
-# YES then doxygen will generate a graph for each documented header file showing 
-# the documented files that directly or indirectly include this file 
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
 
 INCLUDED_BY_GRAPH      = YES
 
 # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one. 
+# will graphical hierarchy of all classes instead of a textual one.
 
 GRAPHICAL_HIERARCHY    = YES
 
 # The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found on the path. 
+# found. If left blank, it is assumed the dot tool can be found on the path.
 
 DOT_PATH               = 
 
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
 # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
 # (in pixels) of the graphs generated by dot. If a graph becomes larger than 
 # this value, doxygen will try to truncate the graph, so that it fits within 
 # the specified constraint. Beware that most browsers cannot cope with very 
-# large images. 
+# large images.
 
 MAX_DOT_GRAPH_WIDTH    = 1024
 
@@ -756,19 +829,19 @@ MAX_DOT_GRAPH_WIDTH    = 1024
 # (in pixels) of the graphs generated by dot. If a graph becomes larger than 
 # this value, doxygen will try to truncate the graph, so that it fits within 
 # the specified constraint. Beware that most browsers cannot cope with very 
-# large images. 
+# large images.
 
 MAX_DOT_GRAPH_HEIGHT   = 1024
 
 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
 # generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs. 
+# arrows in the dot generated graphs.
 
 GENERATE_LEGEND        = YES
 
 # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
 # remove the intermedate dot files that are used to generate 
-# the various graphs. 
+# the various graphs.
 
 DOT_CLEANUP            = YES
 
@@ -777,47 +850,44 @@ DOT_CLEANUP            = YES
 #---------------------------------------------------------------------------
 
 # The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored. 
+# used. If set to NO the values of all tags below this one will be ignored.
 
 SEARCHENGINE           = NO
 
 # The CGI_NAME tag should be the name of the CGI script that 
 # starts the search engine (doxysearch) with the correct parameters. 
-# A script with this name will be generated by doxygen. 
+# A script with this name will be generated by doxygen.
 
 CGI_NAME               = search.cgi
 
 # The CGI_URL tag should be the absolute URL to the directory where the 
 # cgi binaries are located. See the documentation of your http daemon for 
-# details. 
+# details.
 
 CGI_URL                = 
 
 # The DOC_URL tag should be the absolute URL to the directory where the 
 # documentation is located. If left blank the absolute path to the 
-# documentation, with file:// prepended to it, will be used. 
+# documentation, with file:// prepended to it, will be used.
 
 DOC_URL                = 
 
 # The DOC_ABSPATH tag should be the absolute path to the directory where the 
 # documentation is located. If left blank the directory on the local machine 
-# will be used. 
+# will be used.
 
 DOC_ABSPATH            = 
 
 # The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
-# is installed. 
+# is installed.
 
 BIN_ABSPATH            = /usr/local/bin/
 
 # The EXT_DOC_PATHS tag can be used to specify one or more paths to 
 # documentation generated for other projects. This allows doxysearch to search 
-# the documentation for these projects as well. 
+# the documentation for these projects as well.
 
 EXT_DOC_PATHS          = 
 
-
-# End of file
-
-
+### End of file.
 
index e85d57d3d3444414a8a245fc7decc5efea1053d5..0d63e7fa6bfab554ed1a2f186d2070aa1f739525 100644 (file)
@@ -99,8 +99,9 @@
       object file.  The checks are also cleaner and easier to read and
       understand.
    </p>
-   <p>Right now they are off by default.  More will be added once
-      GCC 3.0 is released and we have time to revisit this topic.
+   <p>For GCC 3.0 and 3.1 they are off by default.  They can be enabled at
+      configure time with
+      <a href="../configopts.html"><code>--enable-concept-checks</code></a>.
    </p>
    <p>Return <a href="#top">to top of page</a> or
       <a href="../faq/index.html">to the FAQ</a>.
index 7684bcab5ae2281b3c87a5796189cb13842f7d7e..101b636dd2261de419eac3bec27d98f66012e37f 100644 (file)
@@ -26,6 +26,7 @@
    <li><a href="#3">Containers and multithreading</a>
    <li><a href="#4">&quot;Hinting&quot; during insertion</a>
    <li><a href="#5">Bitmasks and string arguments</a>
+   <li><a href="#6"><code>std::list::size()</code> is O(n)!</a>
 </ul>
 
 <hr>
    <p>Return <a href="#top">to top of page</a> or
       <a href="../faq/index.html">to the FAQ</a>.
    </p>
+
+<hr>
+<h2><a name="6"><code>std::list::size()</code> is O(n)!</a></h2>
+   <p>Yes it is, and that's okay.  This is a decision that we preserved when
+      we imported SGI's STL implementation.  The following is quoted from
+      <a href="http://www.sgi.com/tech/stl/FAQ.html">their FAQ</a>:
+      <blockquote>
+      <p>The size() member function, for list and slist, takes time
+      proportional to the number of elements in the list.  This was a
+      deliberate tradeoff.  The only way to get a constant-time size() for
+      linked lists would be to maintain an extra member variable containing
+      the list's size.  This would require taking extra time to update that
+      variable (it would make splice() a linear time operation, for example),
+      and it would also make the list larger.  Many list algorithms don't
+      require that extra word (algorithms that do require it might do better
+      with vectors than with lists), and, when it is necessary to maintain
+      an explicit size count, it's something that users can do themselves.
+      </p>
+      <p>This choice is permitted by the C++ standard. The standard says that
+      size() &quot;should&quot; be constant time, and &quot;should&quot;
+      does not mean the same thing as &quot;shall&quot;.  This is the
+      officially recommended ISO wording for saying that an implementation
+      is supposed to do something unless there is a good reason not to.
+      </p>
+      <p>One implication of linear time size(): you should never write
+         <pre>
+         if (L.size() == 0)
+             ...</pre>
+         Instead, you should write
+         <pre>
+         if (L.empty())
+             ...</pre>
+      </p>
+      </blockquote>
+   </p>
+   <p>Return <a href="#top">to top of page</a> or
+      <a href="../faq/index.html">to the FAQ</a>.
+   </p>
+
 
 <!-- ####################################################### -->
 
index 23489525aa4127a512c44aa36d6e014f4114fb28..6e07310dff1a5370572915204658933bb9879637 100644 (file)
 <h2><a name="6">Deriving a stream buffer</a></h2>
    <p>Creating your own stream buffers for I/O can be remarkably easy.
       If you are interested in doing so, we highly recommend two very
-      excellent books:  <em>Standard C++ IOStreams and Locales</em> by
-      Langer and Kreft, ISBN 0-201-18395-1, and
+      excellent books:
+      <a href="http://home.camelot.de/langer/iostreams.htm">Standard C++
+      IOStreams and Locales</a> by Langer and Kreft, ISBN 0-201-18395-1, and
       <a href="http://www.josuttis.com/libbook/">The C++ Standard Library</a>
       by Nicolai Josuttis, ISBN 0-201-37926-0.  Both are published by
       Addison-Wesley, who isn't paying us a cent for saying that, honest.
index d4d3d222022fee04361789db2d059efa888e6663..cc1ef782647b208b0d02f5261d9617105b1231b6 100644 (file)
@@ -1,6 +1,6 @@
 // std::rel_ops 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
  *
  */
 
-/* +++ libstdc++-v3 note:  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
- * with <URL:http://gcc.gnu.org/ml/libstdc++/2001-01/msg00223.html>, or the
- * FAQ at <URL:http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4>.
- *
- * Short summary:  the rel_ops operators cannot be made to play nice.
- * Don't use them.
-*/
-
 /** @file stl_relops.h
  *  This is an internal header file, included by other library headers.
  *  You should not attempt to use it directly.
+ *
+ *  @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
+ *  with http://gcc.gnu.org/ml/libstdc++/2001-01/msg00223.html , or the
+ *  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
  */
 
 #ifndef _CPP_BITS_STL_RELOPS_H
@@ -75,22 +75,57 @@ namespace std
 {
   namespace rel_ops
   {
-
+      /** @namespace std::rel_ops
+       *  @brief  The generated relational operators are sequestered here.
+       */
+
+/**
+ *  @brief Defines @c != for arbitrary types, in terms of @c ==.
+ *  @param  x  A thing.
+ *  @param  y  Another thing.
+ *  @return   x != y
+ *
+ *  This function uses @c == to determine its result.
+*/
 template <class _Tp>
 inline bool operator!=(const _Tp& __x, const _Tp& __y) {
   return !(__x == __y);
 }
 
+/**
+ *  @brief Defines @c > for arbitrary types, in terms of @c <.
+ *  @param  x  A thing.
+ *  @param  y  Another thing.
+ *  @return   x > y
+ *
+ *  This function uses @c < to determine its result.
+*/
 template <class _Tp>
 inline bool operator>(const _Tp& __x, const _Tp& __y) {
   return __y < __x;
 }
 
+/**
+ *  @brief Defines @c <= for arbitrary types, in terms of @c <.
+ *  @param  x  A thing.
+ *  @param  y  Another thing.
+ *  @return   x <= y
+ *
+ *  This function uses @c < to determine its result.
+*/
 template <class _Tp>
 inline bool operator<=(const _Tp& __x, const _Tp& __y) {
   return !(__y < __x);
 }
 
+/**
+ *  @brief Defines @c >= for arbitrary types, in terms of @c <.
+ *  @param  x  A thing.
+ *  @param  y  Another thing.
+ *  @return   x >= y
+ *
+ *  This function uses @c < to determine its result.
+*/
 template <class _Tp>
 inline bool operator>=(const _Tp& __x, const _Tp& __y) {
   return !(__x < __y);
index 0bf4718df2e73fb3f97881ea4c704f785977cda7..088807fb82d93d3f0ff595ce6d0679637443c21a 100644 (file)
@@ -67,12 +67,16 @@ namespace std
 /**
  *  @maint
  *  This class is used in two places:  stl_algo.h and ext/memory, where it
- *  is wrapped as the temporary_buffer class.
+ *  is wrapped as the temporary_buffer class.  See temporary_buffer docs for
+ *  more notes.
  *  @endmaint
 */
 template <class _ForwardIterator, class _Tp>
-class _Temporary_buffer {
-private:
+  class _Temporary_buffer
+{
+  // concept requirements
+  __glibcpp_class_requires(_ForwardIterator, _ForwardIteratorConcept)
+
   ptrdiff_t  _M_original_len;
   ptrdiff_t  _M_len;
   _Tp*       _M_buffer;
@@ -99,9 +103,13 @@ private:
   }
 
 public:
+  /// As per Table mumble.
   ptrdiff_t size() const { return _M_len; }
+  /// Returns the size requested by the constructor; may be >size().
   ptrdiff_t requested_size() const { return _M_original_len; }
+  /// As per Table mumble.
   _Tp* begin() { return _M_buffer; }
+  /// As per Table mumble.
   _Tp* end() { return _M_buffer + _M_len; }
 
   _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) {
@@ -139,6 +147,3 @@ private:
 
 #endif /* __GLIBCPP_INTERNAL_TEMPBUF_H */
 
-// Local Variables:
-// mode:C++
-// End:
index b0e1f13f10aff88eb772dbe39991d2f087a0eaa9..ddce186a9c3b43bf509a1019d5a46fca132fcb96 100644 (file)
 // ISO C++ 14882: 19.2  Assertions
 //
 
+/** @file cassert
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c assert.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 // No include guards on this header...
 
 #pragma GCC system_header
 #include <assert.h>
 
 
-
-
-
-
-
-
-
-
index 189f4f5384e7d129ed68c73495d98a44ffac7561..6c4de7b1e80e7c68a6dc83637daf74859f45032d 100644 (file)
 // ISO C++ 14882: <ccytpe>
 //
 
+/** @file cctype
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c ctype.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CCTYPE
 #define _CPP_CCTYPE 1
 
index 7f1cdf66565564b377e9efad72418192fe5c5d26..3b31cf202dfd580cf965f134a5f2fb1fc946efec 100644 (file)
 // ISO C++ 14882: 19.3  Error numbers
 //
 
+/** @file cerrno
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c errno.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CERRNO
 #define _CPP_CERRNO 1
 
index 80f5ea5c4ab1609fd4748b652e9d9981a66205c4..938bb0e0403da587817547ccd106c1ae68a7b2da 100644 (file)
 // ISO C++ 14882: 18.2.2  Implementation properties: C library
 //
 
+/** @file cfloat
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c float.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CFLOAT
 #define _CPP_CFLOAT 1
 
index c9f49fb6fc391355cc65ec18cf74e3a21e96f3f7..175d5cab09741d91fda5e1caa23e310858a2a5a0 100644 (file)
@@ -29,7 +29,7 @@
 
 /** @file ciso646
  *  This is a Standard C++ Library file.  You should @c #include this file
- *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
+ *  in your programs, rather than any of the "*.h" implementation files.
  *
  *  This is the C++ version of the Standard C Library header @c iso646.h,
  *  and its contents are (mostly) the same as that header, but are all
index 48f6acf4d86af9b52daac7177f4d9bdda9e7e53d..8d0c64ef2edd4ae164c13623255b588171783108 100644 (file)
 // ISO C++ 14882: 18.2.2  Implementation properties: C library
 //
 
+/** @file climits
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c limits.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CLIMITS
 #define _CPP_CLIMITS   1
 
index 02eb8fcc90cf7311209f6c904d411db8f5b86f3e..7ad4809a43a090e05c68438ce6ffe8a92874784d 100644 (file)
 // ISO C++ 14882: 18.2.2  Implementation properties: C library
 //
 
+/** @file clocale
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c locale.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CLOCALE
 #define _CPP_CLOCALE 1
 
index 79644cec8fe1f40c84d57e5457aef043d7f9214f..d6c52cfec796e96034e66848c2c6c6166ba72944 100644 (file)
 // ISO C++ 14882: 26.5  C library
 //
 
+/** @file cmath
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c math.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CMATH
 #define _CPP_CMATH 1
 
index 5db98e7b97eae12006fde5c00edb510ba8c9d9f1..9ced365b627387626dbcc856465b7ba54261d2be 100644 (file)
 // ISO C++ 14882: 20.4.6  C library
 //
 
+/** @file csetjmp
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c setjmp.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSETJMP
 #define _CPP_CSETJMP 1
 
index 818e7bbbc9cf6c1538472b7f81c7d98f09168fb1..1b7e7230110e6b0df72a367409d732784278572b 100644 (file)
 // ISO C++ 14882: 20.4.6  C library
 //
 
+/** @file csignal
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c signal.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSIGNAL
 #define _CPP_CSIGNAL 1
 
index 58faa3b9876d594d67d06cc982ba8d7501ceec0e..627fe52f4393cdaa00cf1796b8cc9497034efc8b 100644 (file)
 // ISO C++ 14882: 20.4.6  C library
 //
 
+/** @file cstdarg
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stdarg.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDARG
 #define _CPP_CSTDARG 1
 
index deb2db4448c4b85ee76b07bddd7673c5fb1f8800..05c8e354ae8d9a630f4fb9d494cc35f24b481058 100644 (file)
 // ISO C++ 14882: 18.1  Types
 //
 
+/** @file cstddef
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stddef.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDDEF
 #define _CPP_CSTDDEF 1
 
index a6c78d221d511f406d9df13f757a12844845adeb..9ef2a588838846c5d2a99461041fce5b509c2f4e 100644 (file)
 // ISO C++ 14882: 27.8.2  C Library files
 //
 
+/** @file cstdio
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stdio.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDIO
 #define _CPP_CSTDIO 1
 
index 73176dbedbb412f64b4142a16bd43f5fc27e7f1c..4ff4904e58842743eacedef44894b0d94c3f120a 100644 (file)
 // ISO C++ 14882: 20.4.6  C library
 //
 
+/** @file cstdlib
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c stdlib.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTDLIB
 #define _CPP_CSTDLIB 1
 
index 9708c89899066b7ebb7d810d8769e2c45998d58f..c078326f5cdd3c9a178c34016bbd2fc07d03d139 100644 (file)
 // ISO C++ 14882: 20.4.6  C library
 //
 
+/** @file cstring
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c string.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CSTRING
 #define _CPP_CSTRING 1
 
index c5c108b686fb197e40231bd06f431f97ddb30629..2ebf8aa57ee09b796f9ff0d15341bb5dd86f718d 100644 (file)
 // ISO C++ 14882: 20.5  Date and time
 //
 
+/** @file ctime
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c time.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CTIME
 #define _CPP_CTIME 1
 
index 8e69d518509032eccc6e78bf8ec274b12f74e1b2..0970e5d86c3f60e38c5f925bf9a795d353dc8afc 100644 (file)
 // ISO C++ 14882: 21.4
 //
 
+/** @file cwchar
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c wchar.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CWCHAR
 #define _CPP_CWCHAR 1
 
index 39ae076766315d4bd397b213c3a7bb124aca51e0..6d090b97ab2ea74d11232f816d01774afd43a302 100644 (file)
 // ISO C++ 14882: <cwctype>
 //
 
+/** @file cwctype
+ *  This is a Standard C++ Library file.  You should @c #include this file
+ *  in your programs, rather than any of the "*.h" implementation files.
+ *
+ *  This is the C++ version of the Standard C Library header @c wctype.h,
+ *  and its contents are (mostly) the same as that header, but are all
+ *  contained in the namespace @c std.
+ */
+
 #ifndef _CPP_CWCTYPE
 #define _CPP_CWCTYPE 1
 
index 5b7fbff3a17a29c96c9d21e26eb1ed7b78a335e4..bf72765df931a6982ece1d389cac86afb2f94d5f 100644 (file)
@@ -1,6 +1,6 @@
 // Algorithm extensions -*- 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
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
+/** @file ext/algorithm
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
+ */
+
 #ifndef _EXT_ALGORITHM
 #define _EXT_ALGORITHM
 
index cee35583d363118dc650519979023a7b597f6de7..c482aa1b67d14cceef9f3a2af353eeb9d5782072 100644 (file)
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
+/** @file ext/functional
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
+ */
+
 #ifndef _EXT_FUNCTIONAL
 #define _EXT_FUNCTIONAL
 
index 813fad771ea9a6ba42644fd6122e420a9c011d18..08ed87bf390c53b7a06530fc9ff74c730f17c1f6 100644 (file)
@@ -1,6 +1,6 @@
 // Hashing map 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
  *
  */
 
-/** @file hash_map
- *  This header file is an extension to the Standard C++ Library.  You should
- *  use the "ext/" path prefix in your @c #include statements.
+/** @file ext/hash_map
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 #ifndef __SGI_STL_INTERNAL_HASH_MAP_H
index b2a43789cdd80e5b85d471b7debb1fc9e3ff644a..eaeed7c99644cbf104812cbfcc1e9e3c763607ef 100644 (file)
@@ -1,6 +1,6 @@
 // Hashing set 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
  *
  */
 
-/** @file hash_set
- *  This header file is an extension to the Standard C++ Library.  You should
- *  use the "ext/" path prefix in your @c #include statements.
+/** @file ext/hash_set
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 #ifndef __SGI_STL_INTERNAL_HASH_SET_H
index c7acdda44c9cc0d4c6ec0af794226fbc0feeb8df..3892eb673a8b4c8b69ef8b13d6d67140051333f4 100644 (file)
@@ -1,6 +1,6 @@
 // HP/SGI iterator extensions -*- 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
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/*  @file dont_know_what_to_call_this_yet
- *  This header file is an extension to the Standard C++ Library.  You should
- *  use the "ext/" path prefix in your @c #include statements.
+/** @file ext/iterator
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 #ifndef _EXT_ITERATOR
index 3318611f04816c3e1ef2cac8a2f8ad97cb99cc4e..5626b70e6af5b030296b211a19f12dc82426ff2c 100644 (file)
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
+/** @file ext/memory
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
+ */
+
 #ifndef _EXT_MEMORY
 #define _EXT_MEMORY
 
@@ -67,7 +73,6 @@ namespace __gnu_cxx
   using std::__iterator_category;
   using std::_Temporary_buffer;
   
-  // uninitialized_copy_n (not part of the C++ standard)
 
   template<typename _InputIter, typename _Size, typename _ForwardIter>
     pair<_InputIter, _ForwardIter>
@@ -114,6 +119,7 @@ namespace __gnu_cxx
    *  @param  last   An input iterator.
    *  @param  result An output iterator.
    *  @return   result + (first - last)
+   *  @ingroup SGIextensions
    *
    *  Like copy(), but does not require an initialized output range.
   */
@@ -127,7 +133,23 @@ namespace __gnu_cxx
 
 
   /**
-   *  Must come back and figure out these notes.
+   *  This class provides similar behavior and semantics of the standard
+   *  functions get_temporary_buffer() and return_temporary_buffer(), but
+   *  encapsulated in a type vaguely resembling a standard container.
+   *
+   *  By default, a temporary_buffer<Iter> stores space for objects of
+   *  whatever type the Iter iterator points to.  It is constructed from a
+   *  typical [first,last) range, and provides the begin(), end(), size()
+   *  functions, as well as requested_size().  For non-trivial types, copies
+   *  of *first will be used to initialize the storage.
+   *
+   *  @c malloc is used to obtain underlying storage.
+   *
+   *  Like get_temporary_buffer(), not all the requested memory may be
+   *  available.  Ideally, the created buffer will be large enough to hold a
+   *  copy of [first,last), but if size() is less than requested_size(),
+   *  then this didn't happen.
+   *
    *  @ingroup SGIextensions
   */
   template <class _ForwardIterator, 
@@ -135,8 +157,10 @@ namespace __gnu_cxx
              = typename std::iterator_traits<_ForwardIterator>::value_type >
   struct temporary_buffer : public _Temporary_buffer<_ForwardIterator, _Tp>
   {
+    /// Requests storage large enough to hold a copy of [first,last).
     temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
       : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) {}
+    /// Destroys objects and frees storage.
     ~temporary_buffer() {}
   };
 
index 5b33a893b80b6a6a8833b2282cf871dde1e49f72..601cb82bd55279be80b72c583cb9662eff65167f 100644 (file)
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
+/** @file ext/numeric
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
+ */
+
 #ifndef _EXT_NUMERIC
 #define _EXT_NUMERIC
 
index 103900e7d4de93d7ee3c9a118831acb799b8c94e..f4b24b6fa591efe573c404249ccf2caa7d0dc4a3 100644 (file)
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
+/** @file ext/rb_tree
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
+ */
+
 #ifndef _EXT_RB_TREE
 #define _EXT_RB_TREE
 
index c52db59d5a182bd572225df51d301703b250ecc1..1441df15a627ab372de177d6354ce703753469fc 100644 (file)
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file rope
- *  This header file is an extension to the Standard C++ Library.  You should
- *  use the "ext/" path prefix in your @c #include statements.
+/** @file ext/rope
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 #ifndef __SGI_STL_ROPE
index 19618efc00c7588de39a67465bec381702171df5..f3f09f5c468c2866fc19fdeac60008c46ab99d0a 100644 (file)
@@ -1,6 +1,6 @@
 // SGI's rope class 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
index 0863a8cf9ccb29ab20213410ffdc0c22b174d81d..df2e97ba81bbd5943eb9b0bad94efe72fde95011 100644 (file)
@@ -1,6 +1,6 @@
 // Singly-linked 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
  *
  */
 
-/** @file slist
- *  This header file is an extension to the Standard C++ Library.  You should
- *  use the "ext/" path prefix in your @c #include statements.
+/** @file ext/slist
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 #ifndef __SGI_STL_INTERNAL_SLIST_H
index c251ed31b9a99d0293107d79047683a39725b6e8..562fe7a12daf3aa286f47de1453a329fc7364846 100644 (file)
@@ -1,6 +1,6 @@
 // 'struct hash' from SGI -*- 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
  *
  */
 
-/** @file stl_hash_fun.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file ext/stl_hash_fun.h
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 #ifndef _CPP_BITS_STL_HASH_FUN_H
index 2d5c110cb1457463f4dac0d47a8bd201891ee403..def44fa344ba926c325299d19b197e6bf84f427f 100644 (file)
  *
  */
 
-/** @file stl_hashtable.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file ext/stl_hashtable.h
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 #ifndef __SGI_STL_INTERNAL_HASHTABLE_H
index 04fa15c661ee4e8b65fc94bd80ef551172790df4..188fc40d3376d55e2ca07194179513980f1bd314 100644 (file)
@@ -1,6 +1,6 @@
 // SGI's rope 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
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file stl_rope.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file ext/stl_rope.h
+ *  This file is a GNU extension to the Standard C++ Library (possibly
+ *  containing extensions from the HP/SGI STL subset).  You should only
+ *  include this header if you are using GCC 3 or later.
  */
 
 // rope<_CharT,_Alloc> is a sequence of _CharT.
index ff5d257d6e6ce6c68f0202ac738ab4a7773b91a1..bcc0c8a70cda3876b1ad1b231b993ea25f841081 100644 (file)
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_algorithm.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file algorithm
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_ALGORITHM
index d9119e17b36e6307b558597b2f6ddb559d4317fc..6abd106213f049a7318c68c4f408326eceedad4b 100644 (file)
@@ -1,6 +1,6 @@
 // <bitset> -*- 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
@@ -40,9 +40,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */ 
 
-/** @file std_bitset.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file bitset
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef __GLIBCPP_BITSET
index 18dd8675823767cfefef5b2e03869f7a54e6ea59..bcfcedde8e9a7c4833237ec14a420e0602accceb 100644 (file)
@@ -1,6 +1,7 @@
 // The template and inlines for the -*- C++ -*- complex number classes.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 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
@@ -34,9 +35,9 @@
 // Improved by Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
 //
 
-/** @file std_complex.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file complex
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_COMPLEX
index 394eef3b8457859d522297e579fd066acb4f5f60..0fca0d1a3d49d637688736087253b2fed6f07626 100644 (file)
@@ -1,6 +1,6 @@
 // <deque> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_deque.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file deque
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_DEQUE
index a04ddf098dd1cdc81b7e2a05b445b2f26a9486e2..ade2af9f7ac958cccc4ffe7a7237e71e07145f6b 100644 (file)
@@ -1,6 +1,7 @@
 // File based streams -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 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
@@ -31,9 +32,9 @@
 // ISO C++ 14882: 27.8  File-based streams
 //
 
-/** @file std_fstream.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file fstream
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_FSTREAM
index 16702caead1021b8858466efe592e7653ca70a6b..40080d95579d3aec35036242c8423c89a7e6cad6 100644 (file)
@@ -1,6 +1,6 @@
 // <functional> -*- 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
@@ -41,9 +41,9 @@
  *
  */
 
-/** @file std_functional.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file functional
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_FUNCTIONAL
index ab279d20ab609d35477db2d0e5d8ee723d138d80..39ecac2c77f738c0b18346755c19a655a05e4dfb 100644 (file)
@@ -1,6 +1,6 @@
 // Standard stream manipulators -*- C++ -*-
 
-// Copyright (C) 1997-1999, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -31,9 +31,9 @@
 // ISO C++ 14882: 27.6.3  Standard manipulators
 //
 
-/** @file std_iomanip.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file iomanip
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_IOMANIP
index 1e61c366d4e58075ec68bbc4776f6b452cfe8437..a7764c89cdd03f26393c69cde58dc6fc367ec4cc 100644 (file)
@@ -1,6 +1,6 @@
 // Iostreams base classes -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -31,9 +31,9 @@
 // ISO C++ 14882: 27.4  Iostreams base classes
 //
 
-/** @file std_ios.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file ios
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_IOS
index 93c30b3fbf41450f02e202b14a369ff4ec8f9cf8..797f4936dc8a789ed3e8e0120116721b78f81451 100644 (file)
@@ -1,6 +1,6 @@
 // Forwarding declarations -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -31,9 +31,9 @@
 // ISO C++ 14882: 27.2  Forward declarations
 //
 
-/** @file std_iosfwd.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file iosfwd
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_IOSFWD
index 47b83798f5d1c48f88b2da00ccec3af15b699b16..5b3da9c0d8bc9aacdd0805819026cc90956cdb90 100644 (file)
@@ -1,6 +1,6 @@
 // Standard iostream objects -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -31,9 +31,9 @@
 // ISO C++ 14882: 27.3  Standard iostream objects
 //
 
-/** @file std_iostream.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file iostream
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_IOSTREAM
index 7b5185289b235a45392f721bfd9b3799c477943d..d2228fa6f267c7efdcf938cdaa4d381a657b68a7 100644 (file)
@@ -1,6 +1,6 @@
 // Input streams -*- C++ -*-
 
-// Copyright (C) 1997-1999, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -31,9 +31,9 @@
 // ISO C++ 14882: 27.6.1  Input streams
 //
 
-/** @file std_istream.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file istream
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_ISTREAM
index f0eee1164badafd6821d55ee91fecc43607be50d..7b1709409b150fc0ca5577b0249fb554ea6853f9 100644 (file)
@@ -1,6 +1,6 @@
 // <iterator> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_iterator.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file iterator
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_ITERATOR
index fd7aeaf775e81e41060bc4ad0d7a276e9d8988d2..91125ef949547e85a4014eab1938eb032bc7809b 100644 (file)
@@ -1,6 +1,6 @@
 // The template and inlines for the -*- C++ -*- numeric_limits classes.
 
-// Copyright (C) 1999-2001 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 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
@@ -35,9 +35,9 @@
 // 18.2.1
 //
 
-/** @file std_limits.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file limits
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_NUMERIC_LIMITS
index 683e0a7e66dbbcdc0d7d1184017294f549cb3959..f32553be1f447f61b538b53ba1dcfc4b9828865d 100644 (file)
@@ -1,6 +1,6 @@
 // <list> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_list.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file list
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_LIST
index 82089d015397c75eef08204ce96173effa03da2b..9c46b96bc2f18bec62f49c4a86dd8bd76414fac8 100644 (file)
@@ -1,6 +1,6 @@
 // Locale support -*- C++ -*-
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -31,9 +31,9 @@
 // ISO C++ 14882: 22.1  Locales
 //
 
-/** @file std_locale.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file locale
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_LOCALE
index 0dd38bfafd383ada5eea289337928a29ca7aacab..c04cbd542a6744eacc5f69ddf938efe9022b7927 100644 (file)
@@ -1,6 +1,6 @@
 // <map> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_map.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file map
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_MAP
index 6ca31c214f6fc375066e714a66ab8b7ff005475b..a35cd0d4d4130f6655ce0371954f657f4742b7dd 100644 (file)
@@ -41,9 +41,9 @@
  *
  */
 
-/** @file std_memory.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file memory
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_MEMORY
index e7a6adc3ad463275275f8c44f2f4054358db0ce0..936eaa78945ed826cc34dc9dc3ea2a0ed4d41aac 100644 (file)
@@ -1,6 +1,6 @@
 // <numeric> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_numeric.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file numeric
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_NUMERIC
index 3bb5e042e5ac6df7191481f8817750d976029b64..676080c1f20bdf40b6c86a0d43ee2c286be4d40f 100644 (file)
@@ -32,9 +32,9 @@
 // ISO C++ 14882: 27.6.2  Output streams
 //
 
-/** @file std_ostream.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file ostream
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_OSTREAM
index ecf7f4c135d9e54df1ef9dabc0746b8594ab660f..6be35516d659dd6f96c8459a5fde13734469d5dd 100644 (file)
@@ -1,6 +1,6 @@
 // <queue> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_queue.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file queue
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_QUEUE
index dab8e71af5b760e4ded94308bdcf0171d6c1e399..249f396f1af814e4a466d98609880f7aad31b7f4 100644 (file)
@@ -1,6 +1,6 @@
 // <set> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_set.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file set
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_SET
index fb909862a1e5c2073c54d5b70fad9c1c71e008e3..b32e63df0445ef64504102a265712795d2ed542a 100644 (file)
@@ -1,6 +1,6 @@
 // String based streams -*- C++ -*-
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -31,9 +31,9 @@
 // ISO C++ 14882: 27.7  String-based streams
 //
 
-/** @file std_sstream.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file sstream
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_SSTREAM
index 166f428bf85566313dbef8e27d8151ff5ccfea44..e517c42b6ab6a2f7d04eae9c3f05d41aa98fbc74 100644 (file)
@@ -1,6 +1,6 @@
 // <stack> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_stack.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file stack
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_STACK
index 66bac5011be1da336b4616ec69e746efd0e3229f..07a15e466ce5c82acfa82f6aa3602d41b04e1bde 100644 (file)
@@ -1,6 +1,6 @@
 // Standard exception classes  -*- 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
 // ISO C++ 19.1  Exception classes
 //
 
-/** @file std_stdexcept.h
- *  The Standard C++ library provides classes to be used to report certain
- *  errors (17.4.4.8) in C++ programs.  In the error model reflected in these
- *  classes, errors are divided into two broad categories: logic errors and
- *  runtime errors.
+/** @file stdexcept
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_STDEXCEPT
index 59f70705361047b52504d9ba16ed621f4aff6c5b..ff58034ec897475fe82fa5494a858c2be6b77718 100644 (file)
@@ -1,6 +1,7 @@
 // Stream buffer classes -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 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
@@ -31,9 +32,9 @@
 // ISO C++ 14882: 27.5  Stream buffers
 //
 
-/** @file std_streambuf.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file streambuf
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_STREAMBUF
index 9cdc533e4a2ab573e39455d46589da6c005ded47..6b82f8ecb0cc50c1451cdb151e436888e00aa025 100644 (file)
@@ -1,6 +1,7 @@
 // Components for manipulating sequences of characters -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 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
@@ -31,9 +32,9 @@
 // ISO C++ 14882: 21  Strings library
 //
 
-/** @file std_string.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file string
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_STRING
index 5917c833818159d07fcd640839a05389a54f0185..b9c6c09ff648e64495acba08f5e4dc40349130f2 100644 (file)
@@ -1,6 +1,6 @@
 // <utility> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_utility.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file utility
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_UTILITY
index a3547080ed3a7201e99019811e99cb1fdeb5085f..3957d7f4b26fdfc5317935563275a485bf89d632 100644 (file)
@@ -1,6 +1,7 @@
 // The template and inlines for the -*- C++ -*- valarray class.
 
-// Copyright (C) 1997-1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 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
@@ -29,9 +30,9 @@
 
 // Written by Gabriel Dos Reis <Gabriel.Dos-Reis@DPTMaths.ENS-Cachan.Fr>
 
-/** @file std_valarray.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file valarray
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_VALARRAY
index 995daec7249f483616f073f61a3226d6f7f7dabf..4120aa9e3be20a57412b6a27f197ca0855569790 100644 (file)
@@ -1,6 +1,6 @@
 // <vector> -*- 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
@@ -53,9 +53,9 @@
  * purpose.  It is provided "as is" without express or implied warranty.
  */
 
-/** @file std_vector.h
- *  This is an internal header file, included by other library headers.
- *  You should not attempt to use it directly.
+/** @file vector
+ *  This is a Standard C++ Library header.  You should @c #include this header
+ *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
  */
 
 #ifndef _CPP_VECTOR
index 4b272d53bec51fb59ba9d2122d7f9c1e91c6cd0c..45b98f26eb3fa9e30d2a91bd24d6d2b8e08c66cb 100644 (file)
@@ -101,10 +101,10 @@ namespace std
 namespace __gnu_cxx
 {
   /** A replacement for the standard terminate_handler which prints more
-      information about the terminating exception (if any) on stderr.
-
+      information about the terminating exception (if any) on stderr.  Call
+      @code
         std::set_terminate (__gnu_cxx::__verbose_terminate_handler)
-
+      @endcode
       to use.  */
   void __verbose_terminate_handler ();
 } // namespace __gnu_cxx
index da1a36f599701b1fc8dde89544d2a2811588c452..3a725a6c9333b46f76e16111acc5bb0a0167650d 100644 (file)
@@ -30,7 +30,7 @@
 // the GNU General Public License.
 
 /** @file new
- *  This header defines several functions to manage dynamic memory and
+ *  The header @c new defines several functions to manage dynamic memory and
  *  handling memory allocation errors; see
  *  http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#4 for more.
  */
index bf1a806c849dad1b896b766cb16b085c8a8e6990..72081b239a13aabe90c361cfcd2803719cbd1f26 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright (C) 2001 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -79,7 +79,7 @@ proc libstdc++-v3-init { args } {
         }
       set cxx [transform "g++"]
       set cxxflags "-ggdb3 -DDEBUG_ASSERT"
-        set includes "-I./"
+      set includes "-I./"
     } else {
         # If we find a testsuite_flags file, we're testing in the build dir.
         set flags_file "${blddir}/testsuite_flags"