Commit ffe94f83 by Phil Edwards

Makefile.am (doxygen, [...]): Tweak targets.

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
parent b05c4e59
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> 2002-01-28 Paolo Carlini <pcarlini@unitus.it>
Charles Leggett <CGLeggett@lbl.gov> Charles Leggett <CGLeggett@lbl.gov>
...@@ -717,7 +773,7 @@ ...@@ -717,7 +773,7 @@
* include/std/cassert: Remove. * include/std/cassert: Remove.
* include/bits/fpos.h: Adjust includes, removing <bits/std_xxx.h> * 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/valarray_array.h: Same.
* include/bits/stl_uninitialized.h: Same. * include/bits/stl_uninitialized.h: Same.
* include/bits/stl_alloc.h: Same. * include/bits/stl_alloc.h: Same.
......
## Makefile for the toplevel directory of the GNU C++ Standard library. ## 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. ## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in. ## Process this file with automake to produce Makefile.in.
...@@ -43,20 +44,26 @@ check-script-install: $(top_builddir)/mkcheck ...@@ -43,20 +44,26 @@ check-script-install: $(top_builddir)/mkcheck
cd testsuite; \ cd testsuite; \
@glibcpp_builddir@/mkcheck 1) @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: doxygen:
-(srcdir=`cd ${top_srcdir}; pwd`; \ -(srcdir=`cd ${top_srcdir}; pwd`; \
outdir=`pwd`; \ builddir=`pwd`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \ /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=user $${srcdir} $${outdir}) --mode=user $${srcdir} $${builddir})
doxygen-maint: doxygen-maint:
-(srcdir=`cd ${top_srcdir}; pwd`; \ -(srcdir=`cd ${top_srcdir}; pwd`; \
outdir=`pwd`; \ builddir=`pwd`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \ /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. # Multilib support.
MAKEOVERRIDES= MAKEOVERRIDES=
......
# 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 # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
...@@ -308,7 +308,7 @@ maintainer-clean-recursive: ...@@ -308,7 +308,7 @@ maintainer-clean-recursive:
dot_seen=no; \ dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \ rev="$$subdir $$rev"; \
test "$$subdir" != "." || dot_seen=yes; \ test "$$subdir" = "." && dot_seen=yes; \
done; \ done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \ test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
...@@ -497,20 +497,26 @@ check-script-install: $(top_builddir)/mkcheck ...@@ -497,20 +497,26 @@ check-script-install: $(top_builddir)/mkcheck
cd testsuite; \ cd testsuite; \
@glibcpp_builddir@/mkcheck 1) @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: doxygen:
-(srcdir=`cd ${top_srcdir}; pwd`; \ -(srcdir=`cd ${top_srcdir}; pwd`; \
outdir=`pwd`; \ builddir=`pwd`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \ /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
--mode=user $${srcdir} $${outdir}) --mode=user $${srcdir} $${builddir})
doxygen-maint: doxygen-maint:
-(srcdir=`cd ${top_srcdir}; pwd`; \ -(srcdir=`cd ${top_srcdir}; pwd`; \
outdir=`pwd`; \ builddir=`pwd`; \
/bin/sh ${srcdir}/docs/doxygen/run_doxygen \ /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. # Multilib Makefile bits.
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
......
...@@ -22,11 +22,12 @@ All the man pages are automatically generated by Doxygen. For more ...@@ -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. information on this tool, see the HTML counterpart to these man pages.
.P .P
Some man pages do not correspond to individual classes or functions. Rather Some man pages do not correspond to individual classes or functions. Rather
they describe categories of the Standard Library. (For a more thourough they describe categories of the Standard Library. (For a more thorough
introduction to the various categories, consult a textbook such as Josuttis' introduction to the various categories, consult a text such as Josuttis'
or Austern's.) These category pages are: or Austern's.) These category pages are:
.P .P
.\" These are separated by ONE TAB. Nothing else. I don't like it either. .\" These are separated by ONE TAB. Nothing else. I don't like it either.
.\" Keep them alphabatized.
.TS .TS
lB l. lB l.
Allocators Classes encapsulating memory allocation schemes. Allocators Classes encapsulating memory allocation schemes.
...@@ -38,6 +39,7 @@ Containers An introduction to container classes. ...@@ -38,6 +39,7 @@ Containers An introduction to container classes.
Func_ptr_functors Functors for use with pointers to functions. Func_ptr_functors Functors for use with pointers to functions.
Intro This page. Intro This page.
Intro_functors An introduction to function objects, or functors. Intro_functors An introduction to function objects, or functors.
Iterator_types Programatically distinguishing iterators/pointers.
Logical_functors Functors wrapping the Boolean operations. Logical_functors Functors wrapping the Boolean operations.
Member_ptr_functor Functors for use with pointers to members. Member_ptr_functor Functors for use with pointers to members.
Namespace_Std A listing of the contents of std::. Namespace_Std A listing of the contents of std::.
...@@ -89,12 +91,13 @@ lB lB lB lB. ...@@ -89,12 +91,13 @@ lB lB lB lB.
These headers will only be found automatically if you include the leading These headers will only be found automatically if you include the leading
.B ext/ .B ext/
in the name. Otherwise you need to read FAQ 5.4. 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 .TS
lB. lB.
<ext/hash_map> <ext/algorithm> <ext/hash_set> <ext/numeric> <ext/slist>
<ext/hash_set> <ext/functional> <ext/iterator> <ext/rb_tree>
<ext/rope> <ext/hash_map> <ext/memory> <ext/rope>
<ext/slist>
.TE .TE
.SS Libraries .SS Libraries
.TP .TP
......
The approach I've been using for a given header is to recursively do each 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 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. documented in the course of doing other headers.
"Untouched" means I've deliberately skipped it for various reasons, or "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.) ...@@ -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.) c17 FINISHED (Nothing in Clause 17 "exists" in terms of code.)
c18 <limits>, Note A c18 <limits>, Note A
c19 Note A c19 Note A
c20 rel_ops (should they be doc'd?), Note A c20 Note A
c21 Untouched, Note B c21 Untouched, Note B
c22 Untouched c22 Untouched
c23 See doxygroups.cc and Note B. c23 See doxygroups.cc and Note B.
stl_alloc.h, stl_uninitialized.h remain from the common files.
c24 Untouched 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 c26 <complex>, <valarray>, stl_numeric.h[26.4], Note A
c27 Untouched c27 Untouched
backward/ Not scanned by doxygen. Should it be? 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 __gnu_cxx Tricky.
but do not appear in output, since the __gnu_cxx namespace is
itself undocumented. Should it be? Eeeeeeehhh...
[1.3.5] "implementation-defined behavior: behavior ... that depends [1.3.5] "implementation-defined behavior: behavior ... that depends
on the implementation *and that each implementation shall on the implementation *and that each implementation shall
...@@ -43,10 +41,21 @@ __gnu_cxx Extensions such as verbose_terminate_handler are documented ...@@ -43,10 +41,21 @@ __gnu_cxx Extensions such as verbose_terminate_handler are documented
NOTES: NOTES:
A) So far I have not tried to document any of the <c*> headers. So entities 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" B) Huge chunks of containers and strings are described in common "Tables"
in the standard. How to reproduce this information? 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: vim:ts=4:et:
...@@ -10,8 +10,17 @@ ...@@ -10,8 +10,17 @@
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
/** @namespace std /** @namespace std
* @brief Everything defined by the ISO C++ Standard is within namespace * @brief Everything defined by the ISO C++ Standard is within namespace std.
* 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.
*/ */
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<p>The libstdc++-v3 configuration files needed to generate doxygen output <p>The libstdc++-v3 configuration files needed to generate doxygen output
are located: are located:
<ul><li><code>docs/doxygen/user.cfg.in</code> <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> </ul>
</p> </p>
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
# Runs doxygen and massages the output files. # 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> # Originally hacked together by Phil Edwards <pme@gcc.gnu.org>
# We can check now that the version of doxygen is >= this variable. # We can check now that the version of doxygen is >= this variable.
DOXYVER=1.2.10 DOXYVER=1.2.12
doxygen= doxygen=
find_doxygen() { find_doxygen() {
...@@ -39,11 +39,12 @@ find_doxygen() { ...@@ -39,11 +39,12 @@ find_doxygen() {
print_usage() { print_usage() {
cat 1>&2 <<EOF 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: 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). exposes non-public members, etc).
user Generate user-level library documentation. man Generate user-level man pages.
more options when i think of them more options when i think of them
...@@ -74,6 +75,7 @@ parse_options() { ...@@ -74,6 +75,7 @@ parse_options() {
if test $srcdir = unset; then if test $srcdir = unset; then
srcdir=$o srcdir=$o
elif test $outdir = unset; then elif test $outdir = unset; then
builddir=${o}
outdir=${o}/docs/doxygen outdir=${o}/docs/doxygen
else else
echo run_doxygen error: Too many arguments 1>&2 echo run_doxygen error: Too many arguments 1>&2
...@@ -89,6 +91,9 @@ parse_options() { ...@@ -89,6 +91,9 @@ parse_options() {
mode=unset mode=unset
srcdir=unset srcdir=unset
outdir=unset outdir=unset
do_html=no
do_man=no
enabled_sections=
parse_options $* parse_options $*
find_doxygen find_doxygen
...@@ -100,34 +105,64 @@ if test $srcdir = unset || test $outdir = unset || test $mode = unset; then ...@@ -100,34 +105,64 @@ if test $srcdir = unset || test $outdir = unset || test $mode = unset; then
fi fi
case x"$mode" in 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 echo run_doxygen error: $mode is an invalid mode 1>&2
exit 1 ;; exit 1 ;;
esac esac
rm -rf $outdir #rm -rf $outdir
mkdir -p $outdir mkdir -p $outdir
chmod u+w $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 set -e
cd $srcdir cd $builddir
sed -e "s=@outdir@=${outdir}=" \ sed -e "s=@outdir@=${outdir}=" \
-e "s=@srcdir@=${srcdir}=" \ -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 :: NOTE that this may take some time...
echo $doxygen ${outdir}/${mode}.cfg echo $doxygen ${outdir}/${mode}.cfg
$doxygen ${outdir}/${mode}.cfg $doxygen ${outdir}/${mode}.cfg
echo :: Finished, exit code was $? 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 # 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 # 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 # 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 # generated #include lines need to be changed from the internal names to the
# standard ones (e.g., "#include <stl_tempbuf.h>" -> "#include <memory>"). # 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... 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? # File names with embedded spaces (EVIL!) need to be....? renamed or removed?
find . -name "* *" -print0 | xargs -0 rm # requires GNU tools find . -name "* *" -print0 | xargs -0 rm # requires GNU tools
...@@ -142,10 +177,16 @@ mv s20_3_6_binder.3 Binder_functors.3 ...@@ -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_7_adaptors.3 Func_ptr_functors.3
mv s20_3_8_memadaptors.3 Member_ptr_functors.3 mv s20_3_8_memadaptors.3 Member_ptr_functors.3
mv std.3 Namespace_Std.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 find . -name "[a-z]*" -a ! -name "std_*" -print | xargs rm
rm -f *.h.3 *config* *.cc.3 *.tcc.3 rm -f *.h.3 *config* *.cc.3 *.tcc.3
rm -f *_t.3 # workaround doxygen template parsing bug for now
#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 # 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, # enough to rewrite all this, feel free. This only gets run once a century,
...@@ -179,15 +220,12 @@ done ...@@ -179,15 +220,12 @@ done
cp ${srcdir}/docs/doxygen/Intro.3 . cp ${srcdir}/docs/doxygen/Intro.3 .
echo ::
echo :: Man pages in ${outdir}/man
} }
# all done # all done
echo :: echo ::
echo :: Doxygen output begins with
echo :: ${outdir}/html_${mode}/index.html
echo ::
echo :: Man pages in ${outdir}/man
echo ::
exit 0 exit 0
......
...@@ -99,8 +99,9 @@ ...@@ -99,8 +99,9 @@
object file. The checks are also cleaner and easier to read and object file. The checks are also cleaner and easier to read and
understand. understand.
</p> </p>
<p>Right now they are off by default. More will be added once <p>For GCC 3.0 and 3.1 they are off by default. They can be enabled at
GCC 3.0 is released and we have time to revisit this topic. configure time with
<a href="../configopts.html"><code>--enable-concept-checks</code></a>.
</p> </p>
<p>Return <a href="#top">to top of page</a> or <p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>. <a href="../faq/index.html">to the FAQ</a>.
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<li><a href="#3">Containers and multithreading</a> <li><a href="#3">Containers and multithreading</a>
<li><a href="#4">&quot;Hinting&quot; during insertion</a> <li><a href="#4">&quot;Hinting&quot; during insertion</a>
<li><a href="#5">Bitmasks and string arguments</a> <li><a href="#5">Bitmasks and string arguments</a>
<li><a href="#6"><code>std::list::size()</code> is O(n)!</a>
</ul> </ul>
<hr> <hr>
...@@ -392,7 +393,45 @@ ...@@ -392,7 +393,45 @@
<p>Return <a href="#top">to top of page</a> or <p>Return <a href="#top">to top of page</a> or
<a href="../faq/index.html">to the FAQ</a>. <a href="../faq/index.html">to the FAQ</a>.
</p> </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>
<!-- ####################################################### --> <!-- ####################################################### -->
......
...@@ -328,8 +328,9 @@ ...@@ -328,8 +328,9 @@
<h2><a name="6">Deriving a stream buffer</a></h2> <h2><a name="6">Deriving a stream buffer</a></h2>
<p>Creating your own stream buffers for I/O can be remarkably easy. <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 If you are interested in doing so, we highly recommend two very
excellent books: <em>Standard C++ IOStreams and Locales</em> by excellent books:
Langer and Kreft, ISBN 0-201-18395-1, and <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> <a href="http://www.josuttis.com/libbook/">The C++ Standard Library</a>
by Nicolai Josuttis, ISBN 0-201-37926-0. Both are published by 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. Addison-Wesley, who isn't paying us a cent for saying that, honest.
......
// std::rel_ops implementation -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,19 +53,19 @@ ...@@ -53,19 +53,19 @@
* *
*/ */
/* +++ 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 /** @file stl_relops.h
* This is an internal header file, included by other library headers. * This is an internal header file, included by other library headers.
* You should not attempt to use it directly. * You should not attempt to use it directly.
*
* @maint
* 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 #ifndef _CPP_BITS_STL_RELOPS_H
...@@ -75,22 +75,57 @@ namespace std ...@@ -75,22 +75,57 @@ namespace std
{ {
namespace rel_ops 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> template <class _Tp>
inline bool operator!=(const _Tp& __x, const _Tp& __y) { inline bool operator!=(const _Tp& __x, const _Tp& __y) {
return !(__x == __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> template <class _Tp>
inline bool operator>(const _Tp& __x, const _Tp& __y) { inline bool operator>(const _Tp& __x, const _Tp& __y) {
return __y < __x; 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> template <class _Tp>
inline bool operator<=(const _Tp& __x, const _Tp& __y) { inline bool operator<=(const _Tp& __x, const _Tp& __y) {
return !(__y < __x); 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> template <class _Tp>
inline bool operator>=(const _Tp& __x, const _Tp& __y) { inline bool operator>=(const _Tp& __x, const _Tp& __y) {
return !(__x < __y); return !(__x < __y);
......
...@@ -67,12 +67,16 @@ namespace std ...@@ -67,12 +67,16 @@ namespace std
/** /**
* @maint * @maint
* This class is used in two places: stl_algo.h and ext/memory, where it * This class is used in two places: stl_algo.h and ext/memory, where it
* is wrapped as the temporary_buffer class. * is wrapped as the temporary_buffer class. See temporary_buffer docs for
* more notes.
* @endmaint * @endmaint
*/ */
template <class _ForwardIterator, class _Tp> template <class _ForwardIterator, class _Tp>
class _Temporary_buffer { class _Temporary_buffer
private: {
// concept requirements
__glibcpp_class_requires(_ForwardIterator, _ForwardIteratorConcept)
ptrdiff_t _M_original_len; ptrdiff_t _M_original_len;
ptrdiff_t _M_len; ptrdiff_t _M_len;
_Tp* _M_buffer; _Tp* _M_buffer;
...@@ -99,9 +103,13 @@ private: ...@@ -99,9 +103,13 @@ private:
} }
public: public:
/// As per Table mumble.
ptrdiff_t size() const { return _M_len; } 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; } ptrdiff_t requested_size() const { return _M_original_len; }
/// As per Table mumble.
_Tp* begin() { return _M_buffer; } _Tp* begin() { return _M_buffer; }
/// As per Table mumble.
_Tp* end() { return _M_buffer + _M_len; } _Tp* end() { return _M_buffer + _M_len; }
_Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) { _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) {
...@@ -139,6 +147,3 @@ private: ...@@ -139,6 +147,3 @@ private:
#endif /* __GLIBCPP_INTERNAL_TEMPBUF_H */ #endif /* __GLIBCPP_INTERNAL_TEMPBUF_H */
// Local Variables:
// mode:C++
// End:
...@@ -31,17 +31,18 @@ ...@@ -31,17 +31,18 @@
// ISO C++ 14882: 19.2 Assertions // 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... // No include guards on this header...
#pragma GCC system_header #pragma GCC system_header
#include <assert.h> #include <assert.h>
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: <ccytpe> // 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 #ifndef _CPP_CCTYPE
#define _CPP_CCTYPE 1 #define _CPP_CCTYPE 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 19.3 Error numbers // 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 #ifndef _CPP_CERRNO
#define _CPP_CERRNO 1 #define _CPP_CERRNO 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 18.2.2 Implementation properties: C library // 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 #ifndef _CPP_CFLOAT
#define _CPP_CFLOAT 1 #define _CPP_CFLOAT 1
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
/** @file ciso646 /** @file ciso646
* This is a Standard C++ Library file. You should @c #include this file * 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, * 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 * and its contents are (mostly) the same as that header, but are all
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 18.2.2 Implementation properties: C library // 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 #ifndef _CPP_CLIMITS
#define _CPP_CLIMITS 1 #define _CPP_CLIMITS 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 18.2.2 Implementation properties: C library // 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 #ifndef _CPP_CLOCALE
#define _CPP_CLOCALE 1 #define _CPP_CLOCALE 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 26.5 C library // 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 #ifndef _CPP_CMATH
#define _CPP_CMATH 1 #define _CPP_CMATH 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 20.4.6 C library // 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 #ifndef _CPP_CSETJMP
#define _CPP_CSETJMP 1 #define _CPP_CSETJMP 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 20.4.6 C library // 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 #ifndef _CPP_CSIGNAL
#define _CPP_CSIGNAL 1 #define _CPP_CSIGNAL 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 20.4.6 C library // 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 #ifndef _CPP_CSTDARG
#define _CPP_CSTDARG 1 #define _CPP_CSTDARG 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 18.1 Types // 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 #ifndef _CPP_CSTDDEF
#define _CPP_CSTDDEF 1 #define _CPP_CSTDDEF 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 27.8.2 C Library files // 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 #ifndef _CPP_CSTDIO
#define _CPP_CSTDIO 1 #define _CPP_CSTDIO 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 20.4.6 C library // 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 #ifndef _CPP_CSTDLIB
#define _CPP_CSTDLIB 1 #define _CPP_CSTDLIB 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 20.4.6 C library // 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 #ifndef _CPP_CSTRING
#define _CPP_CSTRING 1 #define _CPP_CSTRING 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 20.5 Date and time // 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 #ifndef _CPP_CTIME
#define _CPP_CTIME 1 #define _CPP_CTIME 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: 21.4 // 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 #ifndef _CPP_CWCHAR
#define _CPP_CWCHAR 1 #define _CPP_CWCHAR 1
......
...@@ -31,6 +31,15 @@ ...@@ -31,6 +31,15 @@
// ISO C++ 14882: <cwctype> // 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 #ifndef _CPP_CWCTYPE
#define _CPP_CWCTYPE 1 #define _CPP_CWCTYPE 1
......
// Algorithm extensions -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,6 +53,12 @@ ...@@ -53,6 +53,12 @@
* purpose. It is provided "as is" without express or implied warranty. * 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 #ifndef _EXT_ALGORITHM
#define _EXT_ALGORITHM #define _EXT_ALGORITHM
......
...@@ -53,6 +53,12 @@ ...@@ -53,6 +53,12 @@
* purpose. It is provided "as is" without express or implied warranty. * 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 #ifndef _EXT_FUNCTIONAL
#define _EXT_FUNCTIONAL #define _EXT_FUNCTIONAL
......
// Hashing map implementation -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,10 @@ ...@@ -53,9 +53,10 @@
* *
*/ */
/** @file hash_map /** @file ext/hash_map
* This header file is an extension to the Standard C++ Library. You should * This file is a GNU extension to the Standard C++ Library (possibly
* use the "ext/" path prefix in your @c #include statements. * 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 #ifndef __SGI_STL_INTERNAL_HASH_MAP_H
......
// Hashing set implementation -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,10 @@ ...@@ -53,9 +53,10 @@
* *
*/ */
/** @file hash_set /** @file ext/hash_set
* This header file is an extension to the Standard C++ Library. You should * This file is a GNU extension to the Standard C++ Library (possibly
* use the "ext/" path prefix in your @c #include statements. * 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 #ifndef __SGI_STL_INTERNAL_HASH_SET_H
......
// HP/SGI iterator extensions -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,10 @@ ...@@ -53,9 +53,10 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/* @file dont_know_what_to_call_this_yet /** @file ext/iterator
* This header file is an extension to the Standard C++ Library. You should * This file is a GNU extension to the Standard C++ Library (possibly
* use the "ext/" path prefix in your @c #include statements. * 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 #ifndef _EXT_ITERATOR
......
...@@ -53,6 +53,12 @@ ...@@ -53,6 +53,12 @@
* purpose. It is provided "as is" without express or implied warranty. * 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 #ifndef _EXT_MEMORY
#define _EXT_MEMORY #define _EXT_MEMORY
...@@ -67,7 +73,6 @@ namespace __gnu_cxx ...@@ -67,7 +73,6 @@ namespace __gnu_cxx
using std::__iterator_category; using std::__iterator_category;
using std::_Temporary_buffer; using std::_Temporary_buffer;
// uninitialized_copy_n (not part of the C++ standard)
template<typename _InputIter, typename _Size, typename _ForwardIter> template<typename _InputIter, typename _Size, typename _ForwardIter>
pair<_InputIter, _ForwardIter> pair<_InputIter, _ForwardIter>
...@@ -114,6 +119,7 @@ namespace __gnu_cxx ...@@ -114,6 +119,7 @@ namespace __gnu_cxx
* @param last An input iterator. * @param last An input iterator.
* @param result An output iterator. * @param result An output iterator.
* @return result + (first - last) * @return result + (first - last)
* @ingroup SGIextensions
* *
* Like copy(), but does not require an initialized output range. * Like copy(), but does not require an initialized output range.
*/ */
...@@ -127,7 +133,23 @@ namespace __gnu_cxx ...@@ -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 * @ingroup SGIextensions
*/ */
template <class _ForwardIterator, template <class _ForwardIterator,
...@@ -135,8 +157,10 @@ namespace __gnu_cxx ...@@ -135,8 +157,10 @@ namespace __gnu_cxx
= typename std::iterator_traits<_ForwardIterator>::value_type > = typename std::iterator_traits<_ForwardIterator>::value_type >
struct temporary_buffer : public _Temporary_buffer<_ForwardIterator, _Tp> 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 __first, _ForwardIterator __last)
: _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) {} : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) {}
/// Destroys objects and frees storage.
~temporary_buffer() {} ~temporary_buffer() {}
}; };
......
...@@ -53,6 +53,12 @@ ...@@ -53,6 +53,12 @@
* purpose. It is provided "as is" without express or implied warranty. * 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 #ifndef _EXT_NUMERIC
#define _EXT_NUMERIC #define _EXT_NUMERIC
......
...@@ -53,6 +53,12 @@ ...@@ -53,6 +53,12 @@
* purpose. It is provided "as is" without express or implied warranty. * 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 #ifndef _EXT_RB_TREE
#define _EXT_RB_TREE #define _EXT_RB_TREE
......
...@@ -40,9 +40,10 @@ ...@@ -40,9 +40,10 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file rope /** @file ext/rope
* This header file is an extension to the Standard C++ Library. You should * This file is a GNU extension to the Standard C++ Library (possibly
* use the "ext/" path prefix in your @c #include statements. * 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 #ifndef __SGI_STL_ROPE
......
// SGI's rope class implementation -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
......
// Singly-linked list implementation -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -41,9 +41,10 @@ ...@@ -41,9 +41,10 @@
* *
*/ */
/** @file slist /** @file ext/slist
* This header file is an extension to the Standard C++ Library. You should * This file is a GNU extension to the Standard C++ Library (possibly
* use the "ext/" path prefix in your @c #include statements. * 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 #ifndef __SGI_STL_INTERNAL_SLIST_H
......
// 'struct hash' from SGI -*- C++ -*- // '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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,10 @@ ...@@ -53,9 +53,10 @@
* *
*/ */
/** @file stl_hash_fun.h /** @file ext/stl_hash_fun.h
* This is an internal header file, included by other library headers. * This file is a GNU extension to the Standard C++ Library (possibly
* You should not attempt to use it directly. * 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 #ifndef _CPP_BITS_STL_HASH_FUN_H
......
...@@ -53,9 +53,10 @@ ...@@ -53,9 +53,10 @@
* *
*/ */
/** @file stl_hashtable.h /** @file ext/stl_hashtable.h
* This is an internal header file, included by other library headers. * This file is a GNU extension to the Standard C++ Library (possibly
* You should not attempt to use it directly. * 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 #ifndef __SGI_STL_INTERNAL_HASHTABLE_H
......
// SGI's rope implementation -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -40,9 +40,10 @@ ...@@ -40,9 +40,10 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file stl_rope.h /** @file ext/stl_rope.h
* This is an internal header file, included by other library headers. * This file is a GNU extension to the Standard C++ Library (possibly
* You should not attempt to use it directly. * 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. // rope<_CharT,_Alloc> is a sequence of _CharT.
......
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_algorithm.h /** @file algorithm
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_ALGORITHM #ifndef _CPP_ALGORITHM
......
// <bitset> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -40,9 +40,9 @@ ...@@ -40,9 +40,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_bitset.h /** @file bitset
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef __GLIBCPP_BITSET #ifndef __GLIBCPP_BITSET
......
// The template and inlines for the -*- C++ -*- complex number classes. // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -34,9 +35,9 @@ ...@@ -34,9 +35,9 @@
// Improved by Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> // Improved by Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
// //
/** @file std_complex.h /** @file complex
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_COMPLEX #ifndef _CPP_COMPLEX
......
// <deque> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_deque.h /** @file deque
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_DEQUE #ifndef _CPP_DEQUE
......
// File based streams -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +32,9 @@ ...@@ -31,9 +32,9 @@
// ISO C++ 14882: 27.8 File-based streams // ISO C++ 14882: 27.8 File-based streams
// //
/** @file std_fstream.h /** @file fstream
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_FSTREAM #ifndef _CPP_FSTREAM
......
// <functional> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
* *
*/ */
/** @file std_functional.h /** @file functional
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_FUNCTIONAL #ifndef _CPP_FUNCTIONAL
......
// Standard stream manipulators -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
// ISO C++ 14882: 27.6.3 Standard manipulators // ISO C++ 14882: 27.6.3 Standard manipulators
// //
/** @file std_iomanip.h /** @file iomanip
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_IOMANIP #ifndef _CPP_IOMANIP
......
// Iostreams base classes -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
// ISO C++ 14882: 27.4 Iostreams base classes // ISO C++ 14882: 27.4 Iostreams base classes
// //
/** @file std_ios.h /** @file ios
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_IOS #ifndef _CPP_IOS
......
// Forwarding declarations -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
// ISO C++ 14882: 27.2 Forward declarations // ISO C++ 14882: 27.2 Forward declarations
// //
/** @file std_iosfwd.h /** @file iosfwd
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_IOSFWD #ifndef _CPP_IOSFWD
......
// Standard iostream objects -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
// ISO C++ 14882: 27.3 Standard iostream objects // ISO C++ 14882: 27.3 Standard iostream objects
// //
/** @file std_iostream.h /** @file iostream
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_IOSTREAM #ifndef _CPP_IOSTREAM
......
// Input streams -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
// ISO C++ 14882: 27.6.1 Input streams // ISO C++ 14882: 27.6.1 Input streams
// //
/** @file std_istream.h /** @file istream
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_ISTREAM #ifndef _CPP_ISTREAM
......
// <iterator> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_iterator.h /** @file iterator
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_ITERATOR #ifndef _CPP_ITERATOR
......
// The template and inlines for the -*- C++ -*- numeric_limits classes. // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -35,9 +35,9 @@ ...@@ -35,9 +35,9 @@
// 18.2.1 // 18.2.1
// //
/** @file std_limits.h /** @file limits
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_NUMERIC_LIMITS #ifndef _CPP_NUMERIC_LIMITS
......
// <list> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_list.h /** @file list
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_LIST #ifndef _CPP_LIST
......
// Locale support -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
// ISO C++ 14882: 22.1 Locales // ISO C++ 14882: 22.1 Locales
// //
/** @file std_locale.h /** @file locale
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_LOCALE #ifndef _CPP_LOCALE
......
// <map> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_map.h /** @file map
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_MAP #ifndef _CPP_MAP
......
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
* *
*/ */
/** @file std_memory.h /** @file memory
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_MEMORY #ifndef _CPP_MEMORY
......
// <numeric> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_numeric.h /** @file numeric
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_NUMERIC #ifndef _CPP_NUMERIC
......
...@@ -32,9 +32,9 @@ ...@@ -32,9 +32,9 @@
// ISO C++ 14882: 27.6.2 Output streams // ISO C++ 14882: 27.6.2 Output streams
// //
/** @file std_ostream.h /** @file ostream
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_OSTREAM #ifndef _CPP_OSTREAM
......
// <queue> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_queue.h /** @file queue
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_QUEUE #ifndef _CPP_QUEUE
......
// <set> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_set.h /** @file set
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_SET #ifndef _CPP_SET
......
// String based streams -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
// ISO C++ 14882: 27.7 String-based streams // ISO C++ 14882: 27.7 String-based streams
// //
/** @file std_sstream.h /** @file sstream
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_SSTREAM #ifndef _CPP_SSTREAM
......
// <stack> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_stack.h /** @file stack
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_STACK #ifndef _CPP_STACK
......
// Standard exception classes -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,11 +31,9 @@ ...@@ -31,11 +31,9 @@
// ISO C++ 19.1 Exception classes // ISO C++ 19.1 Exception classes
// //
/** @file std_stdexcept.h /** @file stdexcept
* The Standard C++ library provides classes to be used to report certain * This is a Standard C++ Library header. You should @c #include this header
* errors (17.4.4.8) in C++ programs. In the error model reflected in these * in your programs, rather than any of the "st[dl]_*.h" implementation files.
* classes, errors are divided into two broad categories: logic errors and
* runtime errors.
*/ */
#ifndef _CPP_STDEXCEPT #ifndef _CPP_STDEXCEPT
......
// Stream buffer classes -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +32,9 @@ ...@@ -31,9 +32,9 @@
// ISO C++ 14882: 27.5 Stream buffers // ISO C++ 14882: 27.5 Stream buffers
// //
/** @file std_streambuf.h /** @file streambuf
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_STREAMBUF #ifndef _CPP_STREAMBUF
......
// Components for manipulating sequences of characters -*- C++ -*- // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -31,9 +32,9 @@ ...@@ -31,9 +32,9 @@
// ISO C++ 14882: 21 Strings library // ISO C++ 14882: 21 Strings library
// //
/** @file std_string.h /** @file string
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_STRING #ifndef _CPP_STRING
......
// <utility> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_utility.h /** @file utility
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_UTILITY #ifndef _CPP_UTILITY
......
// The template and inlines for the -*- C++ -*- valarray class. // 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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -29,9 +30,9 @@ ...@@ -29,9 +30,9 @@
// Written by Gabriel Dos Reis <Gabriel.Dos-Reis@DPTMaths.ENS-Cachan.Fr> // Written by Gabriel Dos Reis <Gabriel.Dos-Reis@DPTMaths.ENS-Cachan.Fr>
/** @file std_valarray.h /** @file valarray
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_VALARRAY #ifndef _CPP_VALARRAY
......
// <vector> -*- C++ -*- // <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 // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -53,9 +53,9 @@ ...@@ -53,9 +53,9 @@
* purpose. It is provided "as is" without express or implied warranty. * purpose. It is provided "as is" without express or implied warranty.
*/ */
/** @file std_vector.h /** @file vector
* This is an internal header file, included by other library headers. * This is a Standard C++ Library header. You should @c #include this header
* You should not attempt to use it directly. * in your programs, rather than any of the "st[dl]_*.h" implementation files.
*/ */
#ifndef _CPP_VECTOR #ifndef _CPP_VECTOR
......
...@@ -101,10 +101,10 @@ namespace std ...@@ -101,10 +101,10 @@ namespace std
namespace __gnu_cxx namespace __gnu_cxx
{ {
/** A replacement for the standard terminate_handler which prints more /** 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) std::set_terminate (__gnu_cxx::__verbose_terminate_handler)
@endcode
to use. */ to use. */
void __verbose_terminate_handler (); void __verbose_terminate_handler ();
} // namespace __gnu_cxx } // namespace __gnu_cxx
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
/** @file new /** @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 * handling memory allocation errors; see
* http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#4 for more. * http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#4 for more.
*/ */
......
# 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 # 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 # it under the terms of the GNU General Public License as published by
...@@ -79,7 +79,7 @@ proc libstdc++-v3-init { args } { ...@@ -79,7 +79,7 @@ proc libstdc++-v3-init { args } {
} }
set cxx [transform "g++"] set cxx [transform "g++"]
set cxxflags "-ggdb3 -DDEBUG_ASSERT" set cxxflags "-ggdb3 -DDEBUG_ASSERT"
set includes "-I./" set includes "-I./"
} else { } else {
# If we find a testsuite_flags file, we're testing in the build dir. # If we find a testsuite_flags file, we're testing in the build dir.
set flags_file "${blddir}/testsuite_flags" set flags_file "${blddir}/testsuite_flags"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment