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>
Charles Leggett <CGLeggett@lbl.gov>
......@@ -717,7 +773,7 @@
* 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.
......
## 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=
......
# 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 \
......
......@@ -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
......
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:
......@@ -10,8 +10,17 @@
// // // // // // // // // // // // // // // // // // // // // // // //
/** @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.
*/
// // // // // // // // // // // // // // // // // // // // // // // //
......
......@@ -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>
......
......@@ -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
......
......@@ -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>.
......
......@@ -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>
......@@ -393,6 +394,44 @@
<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>
<!-- ####################################################### -->
......
......@@ -328,8 +328,9 @@
<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.
......
// 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
......@@ -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
* 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);
......
......@@ -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:
......@@ -31,17 +31,18 @@
// 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>
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
......@@ -31,6 +31,15 @@
// 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
......
// 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
......@@ -53,6 +53,12 @@
* 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
......
......@@ -53,6 +53,12 @@
* 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
......
// 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
......@@ -53,9 +53,10 @@
*
*/
/** @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
......
// 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
......@@ -53,9 +53,10 @@
*
*/
/** @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
......
// 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
......@@ -53,9 +53,10 @@
* 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
......
......@@ -53,6 +53,12 @@
* 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() {}
};
......
......@@ -53,6 +53,12 @@
* 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
......
......@@ -53,6 +53,12 @@
* 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
......
......@@ -40,9 +40,10 @@
* 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
......
// 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
......
// 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
......@@ -41,9 +41,10 @@
*
*/
/** @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
......
// '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
......@@ -53,9 +53,10 @@
*
*/
/** @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
......
......@@ -53,9 +53,10 @@
*
*/
/** @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
......
// 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
......@@ -40,9 +40,10 @@
* 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.
......
......@@ -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
......
// <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
......
// 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
......
// <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
......
// 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
......
// <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
......
// 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
......
// 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
......
// 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
......
// 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
......
// 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
......
// <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
......
// 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
......
// <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
......
// 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
......
// <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
......
......@@ -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
......
// <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
......
......@@ -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
......
// <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
......
// <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
......
// 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
......
// <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
......
// 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
......@@ -31,11 +31,9 @@
// 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
......
// 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
......
// 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
......
// <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
......
// 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
......
// <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
......
......@@ -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
......
......@@ -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.
*/
......
# 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
......
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