documentation.html: Validate.

2007-11-20  Benjamin Kosnik  <bkoz@redhat.com>

	* docs/html/documentation.html: Validate. Add links to index,
	correct broken links.
	* docs/html/17_intro/C++STYLE: Add bits.
	* docs/html/17_intro/configury.html: Correct, update.
	* docs/html/17_intro/api.html: Correct HTML.

	* include/bits/stl_algobase.h: Adjust comment.

From-SVN: r130331
This commit is contained in:
Benjamin Kosnik 2007-11-21 16:37:26 +00:00 committed by Benjamin Kosnik
parent 5f45b299ed
commit c60cd1dcf7
6 changed files with 107 additions and 56 deletions

View File

@ -1,3 +1,13 @@
2007-11-20 Benjamin Kosnik <bkoz@redhat.com>
* docs/html/documentation.html: Validate. Add links to index,
correct broken links.
* docs/html/17_intro/C++STYLE: Add bits.
* docs/html/17_intro/configury.html: Correct, update.
* docs/html/17_intro/api.html: Correct HTML.
* include/bits/stl_algobase.h: Adjust comment.
2007-11-20 Richard Sandiford <rsandifo@nildram.co.uk> 2007-11-20 Richard Sandiford <rsandifo@nildram.co.uk>
* testsuite/ext/throw_allocator/variadic_construct.cc: Add * testsuite/ext/throw_allocator/variadic_construct.cc: Add

View File

@ -1,12 +1,21 @@
C++ Standard Library Style Guidelines DRAFT 2001-01-15 C++ Standard Library Coding Style Guidelines
------------------------------------- -------------------------------------
This library is written to appropriate C++ coding standards. As such, This library is written to appropriate C++ coding standards. As such,
it is intended to precede the recommendations of the GNU Coding it is intended to precede the recommendations of the GNU Coding
Standard, which can be referenced here: Standard, which can be referenced in full here:
http://www.gnu.org/prep/standards_toc.html http://www.gnu.org/prep/standards/standards.html#Formatting
The rest of this is also interesting reading, but skip the "Design
Advice" part.
The GCC coding conventions are here, are are also useful:
http://gcc.gnu.org/codingconventions.html
In addition, because it doesn't seem to be stated explicitly anywhere
else, there is an 80 column source limit.
ChangeLog entries for member functions should use the ChangeLog entries for member functions should use the
classname::member function name syntax as follows: classname::member function name syntax as follows:
@ -220,6 +229,9 @@ Notable areas of divergence from what may be previous local practice
give useful error messages, and programmers can intelligently give useful error messages, and programmers can intelligently
speculate what went wrong without even using a debugger. speculate what went wrong without even using a debugger.
17. The doxygen style guide to comments is a separate document,
see index.
The library currently has a mixture of GNU-C and modern C++ coding The library currently has a mixture of GNU-C and modern C++ coding
styles. The GNU C usages will be combed out gradually. styles. The GNU C usages will be combed out gradually.
@ -264,7 +276,6 @@ namespace std
class gribble class gribble
{ {
public: public:
// ctor, op=, dtor
gribble() throw(); gribble() throw();
gribble(const gribble&); gribble(const gribble&);
@ -278,11 +289,11 @@ namespace std
virtual virtual
~gribble() throw (); ~gribble() throw ();
// argument // Start with a capitol letter, end with a period.
inline void inline void
public_member(const char* __arg) const; public_member(const char* __arg) const;
// in-class function definitions should be restricted to one-liners. // In-class function definitions should be restricted to one-liners.
int int
one_line() { return 0 } one_line() { return 0 }
@ -293,7 +304,7 @@ namespace std
inline int inline int
three_lines(); // inline, but defined below. three_lines(); // inline, but defined below.
// note indentation // Note indentation.
template<typename _Formal_argument> template<typename _Formal_argument>
void void
public_template() const throw(); public_template() const throw();
@ -320,7 +331,7 @@ namespace std
_S_initialize_library(); _S_initialize_library();
}; };
// More-or-less-standard language features described by lack, not presence: // More-or-less-standard language features described by lack, not presence.
# ifndef _G_NO_LONGLONG # ifndef _G_NO_LONGLONG
extern long long _G_global_with_a_good_long_name; // avoid globals! extern long long _G_global_with_a_good_long_name; // avoid globals!
# endif # endif
@ -384,3 +395,5 @@ namespace std
} }
} // namespace std } // namespace std

View File

@ -52,7 +52,7 @@ details were not pried away from the estate.
<p> At least some older implementations don't have <code>std::ios_base</code>, so you should use <code>std::ios::badbit</code>, <code>std::ios::failbit</code> and <code>std::ios::eofbit</code> and <code>std::ios::goodbit</code>. <p> At least some older implementations don't have <code>std::ios_base</code>, so you should use <code>std::ios::badbit</code>, <code>std::ios::failbit</code> and <code>std::ios::eofbit</code> and <code>std::ios::goodbit</code>.
</p> </p>
<h5>No <code>cout</code> in <code>ostream.h</code>, no <code>cin</code> in <code>istream.h</code</h5> <h5>No <code>cout</code> in <code>ostream.h</code>, no <code>cin</code> in <code>istream.h</code></h5>
<p> <p>
In earlier versions of the standard, In earlier versions of the standard,

View File

@ -34,30 +34,46 @@ No problem is insoluble in all conceivable circumstances.<br />
Last Question</a>, by Isaac Asimov Last Question</a>, by Isaac Asimov
</blockquote> </blockquote>
<ul> <ul>
<li><a href="#deps">what comes from where</a></li> <li><a href="#prereq">Prerequisites for configure and make hacking</a></li>
<li><a href="#breakout">storing information in non-AC files, like <li><a href="#deps">Overview: what comes from where</a></li>
<li><a href="#breakout">Storing information in non-AC files, like
configure.host</a></li> configure.host</a></li>
<li><a href="#general">general config notes</a></li> <li><a href="#general">Coding and commenting conventions</a></li>
<li><a href="#aclayout">acinclude.m4 layout</a></li> <li><a href="#aclayout">The acinclude.m4 layout</a></li>
<li><a href="#enable"><code>--enable</code> howto</a></li> <li><a href="#enable"><code>GLIBCXX_ENABLE, the --enable</code> howto</a></li>
</ul> </ul>
<hr /> <hr />
<h3><a name="deps">what comes from where</a></h3> <h3><a name="prereq">Prerequisites for configure and make hacking</a></h3>
<p> As
noted <a href="http://gcc.gnu.org/install/prerequisites.html">previously</a>,
certain other tools are necessary for hacking on files that control
configure (<code>configure.ac</code>, <code>acinclude.m4</code>) and
make (<code>Makefile.am</code>). These additional tools
(<code>automake</code>, and <code>autoconf</code>) are further
described in detail in their respective manuals. All the libraries in GCC try to stay in sync with each other in terms of versions of the auto-tools used, so please try to play nicely with the neighbors.
</p>
<hr />
<h3><a name="deps">Overview: what comes from where</a></h3>
<p class="centered"><img src="confdeps.png" <p class="centered"><img src="confdeps.png"
alt="Dependency graph in PNG graphics format. (Get a better browser!)" /></p> alt="Dependency graph in PNG graphics format. (Get a better browser!)" /></p>
<p>Regenerate using a command sequence like <p>Regenerate all generated files by using the command sequence
<code>"aclocal-1.7 &amp;&amp; autoconf-2.59 &amp;&amp; autoheader-2.59 <code>"autoreconf"</code> at the top level of the libstdc++ source
&amp;&amp; automake-1.7"</code> as needed. And/or configure with directory. The following will also work, but is much more complex:
--enable-maintainer-mode. The version numbers will vary depending on <code>"aclocal-1.7 &amp;&amp; autoconf-2.59 &amp;&amp;
autoheader-2.59 &amp;&amp; automake-1.7"</code> The version numbers
may be absent entirely or otherwise vary depending on
<a href="http://gcc.gnu.org/install/prerequisites.html">the current <a href="http://gcc.gnu.org/install/prerequisites.html">the current
requirements</a> and your vendor's choice of installation names. requirements</a> and your vendor's choice of installation names.
</p> </p>
<hr /> <hr />
<h3><a name="breakout">storing information in non-AC files, like <h3><a name="breakout">Storing information in non-AC files, like
configure.host</a></h3> configure.host</a></h3>
<p>Until that glorious day when we can use AC_TRY_LINK with a cross-compiler, <p>Until that glorious day when we can use AC_TRY_LINK with a cross-compiler,
we have to hardcode the results of what the tests would have shown if we have to hardcode the results of what the tests would have shown if
@ -82,7 +98,7 @@ Last Question</a>, by Isaac Asimov
<hr /> <hr />
<h3><a name="general">general config notes</a></h3> <h3><a name="general">Coding and commenting conventions</a></h3>
<p>Lots of stuff got thrown out because the new autotools kindly generate <p>Lots of stuff got thrown out because the new autotools kindly generate
the same (or better) shell code for us. the same (or better) shell code for us.
</p> </p>
@ -108,7 +124,7 @@ Last Question</a>, by Isaac Asimov
</p> </p>
<hr /> <hr />
<h3><a name="aclayout">acinclude.m4 layout</a></h3> <h3><a name="aclayout">The acinclude.m4 layout</a></h3>
<p>The nice thing about acinclude.m4/aclocal.m4 is that macros aren't actually <p>The nice thing about acinclude.m4/aclocal.m4 is that macros aren't actually
performed/called/expanded/whatever here, just loaded. So we can arrange performed/called/expanded/whatever here, just loaded. So we can arrange
the contents however we like. As of this writing, acinclude.m4 is arranged the contents however we like. As of this writing, acinclude.m4 is arranged
@ -186,7 +202,7 @@ Last Question</a>, by Isaac Asimov
<hr /> <hr />
<h3><a name="enable"><code>--enable</code> howto</a></h3> <h3><a name="enable">GLIBCXX_ENABLE, the <code>--enable</code> howto</a></h3>
<p>All the GLIBCXX_ENABLE_FOO macros use a common helper, GLIBCXX_ENABLE. <p>All the GLIBCXX_ENABLE_FOO macros use a common helper, GLIBCXX_ENABLE.
(You don't have to use it, but it's easy.) The helper does two things (You don't have to use it, but it's easy.) The helper does two things
for us: for us:

View File

@ -57,51 +57,53 @@ href="http://gcc.gnu.org/svn.html">web</a>.
</ul> </ul>
</li> </li>
<li><a href="17_intro/license.html">License</a></li> <li><a href="17_intro/license.html">License</a></li>
<li><a href="http://gcc.gnu.org/bugzilla/buglist.cgi?cmdtype=runnamed&namedcmd=libstdc%2B%2B">Known Bugs</a></li> <li><a href="http://gcc.gnu.org/bugzilla/buglist.cgi?cmdtype=runnamed&amp;namedcmd=libstdc%2B%2B">Known Bugs</a></li>
</ul> </ul>
</li> </li>
<li> Configuring, Building, Testing, Installing <li> Configuring, Building, Testing, Installing
<ul> <ul>
<li><a href="install.html">Getting started: configure, build, install</a> <li><a href="install.html">Getting started: configure, build, install</a>
</li> </li>
<li><a href="configopts.html">Configure options</a></li> <li><a href="configopts.html">Configure options</a></li>
<li><a href="test.html">Testing details</a></li> <li><a href="test.html">Testing details</a></li>
</li>
</ul> </ul>
</li> </li>
<li> Using the Library <li> Using the Library
<ul> <ul>
<li>Header Files</li> <li>Header Files
<ul> <ul>
<li><a href="17_intro/howto.html#2.1">Available headers</a></li> <li><a href="17_intro/howto.html#2.1">Available headers</a></li>
<li><a href="17_intro/howto.html#2.2">Headers and <code>namespace std</code></a></li> <li><a href="17_intro/howto.html#2.2">Headers and <code>namespace std</code></a></li>
<li>Pre-compiled headers</li> <li>Pre-compiled headers</li>
</ul> </ul>
</li>
<li>Namespaces</li> <li>Namespaces
<ul> <ul>
<li><a href="17_intro/howto.html#2.5">Namespace <code>std::</code></a></li> <li><a href="17_intro/howto.html#2.5">Namespace <code>std::</code></a></li>
<li><a href="17_intro/howto.html#2.6">Using namespace composition</a></li> <li><a href="17_intro/howto.html#2.6">Using namespace composition</a></li>
</ul> </ul>
</li>
<li><a href="17_intro/howto.html#6">Macros</a></li> <li><a href="17_intro/howto.html#6">Macros</a></li>
<li>Concurrency</li> <li>Concurrency
<ul> <ul>
<li>Atomic Operations</li> <li>Atomic Operations</li>
<li><a href="17_intro/howto.html#3">Thread safety overview</a></li> <li><a href="17_intro/howto.html#3">Thread safety overview</a></li>
<li><a href="faq/index.html#5_6">Is it thread safe?</li> <li><a href="faq/index.html#5_6">Is it thread safe?</a></li>
<li><a href="23_containers/howto.html#3">Containers</a></li> <li><a href="23_containers/howto.html#3">Containers</a></li>
<li><a href="27_io/howto.html#9">IO</a></li> <li><a href="27_io/howto.html#9">IO</a></li>
</ul> </ul>
</li>
<li>Exception safety</li> <li>Exception safety</li>
<li><a href="debug.html">Debugging support</a> <li><a href="debug.html">Debugging support</a></li>
</ul> </ul>
</li> </li>
@ -130,15 +132,18 @@ href="http://gcc.gnu.org/svn.html">web</a>.
<ul> <ul>
<li><a href="20_util/howto.html#3">Functors</a></li> <li><a href="20_util/howto.html#3">Functors</a></li>
<li><a href="20_util/howto.html#4">Pairs</a></li> <li><a href="20_util/howto.html#4">Pairs</a></li>
<li>Memory</li>
<ul> <li>Memory
<li><a href="20_util/allocator.html">allocator</a></li> <ul>
<li>auto_ptr</li> <li><a href="20_util/allocator.html">allocator</a></li>
<ul> <li>auto_ptr
<ul>
<li><a href="20_util/howto.html#1"><code>auto_ptr</code> is not omnipotent</a></li> <li><a href="20_util/howto.html#1"><code>auto_ptr</code> is not omnipotent</a></li>
<li><a href="20_util/howto.html#2"><code>auto_ptr</code> inside container classes</a></li> <li><a href="20_util/howto.html#2"><code>auto_ptr</code> inside container classes</a></li>
</ul> </ul>
</li>
</ul> </ul>
</li>
</ul> </ul>
</li> </li>
@ -215,62 +220,70 @@ href="http://gcc.gnu.org/svn.html">web</a>.
<li>Extensions <li>Extensions
<ul> <ul>
<li><a href="ext/howto.html#4">Compile-time checks</a></li> <li><a href="ext/howto.html#4">Compile-time checks</a></li>
<li><a href="debug_mode.html">Debug mode</a></li> <li><a href="ext/debug_mode.html">Debug mode</a></li>
<li><a href="parallel_mode.html">Parallel mode</a></li> <li><a href="ext/parallel_mode.html">Parallel mode</a></li>
<li> Allocators</li> <li> Allocators
<ul> <ul>
<li><a href="ext/mt_allocator.html"><code>__mt_alloc</code> </a></li> <li><a href="ext/mt_allocator.html"><code>__mt_alloc</code> </a></li>
<li><a href="ext/ballocator_doc.html">Bitmap Allocator</a></li> <li><a href="ext/ballocator_doc.html">Bitmap Allocator</a></li>
</ul> </ul>
</li>
<li> Containers </li> <li> Containers
<ul> <ul>
<li><a href="ext/pb_ds/index.html">Policy Based Data Structures</a></li> <li><a href="ext/pb_ds/index.html">Policy Based Data Structures</a></li>
<li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li> <li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li>
</ul> </ul>
</li>
<li> Algorithms</li> <li> Algorithms
<ul> <ul>
<li><a href="ext/sgiexts.html">HP/SGI STL Extensions</a></li> <li><a href="ext/sgiexts.html">HP/SGI STL Extensions</a></li>
</ul> </ul>
</li>
<li> Input/Output</li> <li> Input/Output
<ul> <ul>
<li><a href="27_io/howto.html#11">Derived filebuf classes</a></li> <li><a href="27_io/howto.html#11">Derived filebuf classes</a></li>
</ul> </ul>
</li>
<li><a href="ext/../18_support/howto.html#6">Demangling</a></li> <li><a href="ext/../18_support/howto.html#6">Demangling</a></li>
</ul> </ul>
</li> </li>
<li>Appendix <li>Appendix
<ul> <ul>
<li>A. <a name="5">Contributing and Maintenance</a></li>
<li>A. <a name="5">Contributing and Maintenance</a>
<ul> <ul>
<li><a href="17_intro/contribute.html">Contributor checklist</a></li> <li><a href="17_intro/contribute.html">Contributor checklist</a></li>
<li><a href="http://gcc.gnu.org/svnwrite.html">Getting write access <li><a href="http://gcc.gnu.org/svnwrite.html">Getting write access
(look for &quot;Write after approval&quot;)</a></li> (look for &quot;Write after approval&quot;)</a></li>
<li><a href="17_intro/BADNAMES">BADNAMES</a> <li><a href="17_intro/BADNAMES">Identifier blacklist</a>
- names to avoid because of potential collisions</li> - names to avoid because of potential collisions</li>
<li><a href="17_intro/C++STYLE">Coding style, by example</a></li> <li><a href="17_intro/C++STYLE">Coding style, by example</a></li>
<li> Doxygen markup style guide. In the source docs/doxygen directory, see guide.html. Here's the a link to the current <a href="http://gcc.gnu.org/viewcvs/*checkout*/trunk/libstdc%2B%2B-v3/docs/doxygen/guide.html?content-type=text%2Fplain">page</a>.
</li> <li> Comment coding style, a doxygen markup style guide. In the source docs/doxygen directory, see <a href="http://gcc.gnu.org/viewcvs/*checkout*/trunk/libstdc%2B%2B-v3/docs/doxygen/guide.html">guide.html</a>.</li>
<li><a href="17_intro/DESIGN">DESIGN</a> <li><a href="17_intro/DESIGN">Design Notes</a>
- overview of the implementation plan</li> - notes on the implementation plan</li>
<li><a href="17_intro/configury.html">Editing configure and make files</a></li>
<li>Header policy, namespace map, API conventions</li> <li>Header policy, namespace map, API conventions</li>
</ul> </ul>
</li>
<li>B. Porting</li> <li>B. Porting
<ul> <ul>
<li><a href="17_intro/porting.html">Porting to new hardware or operating systems.</a></li> <li><a href="17_intro/porting.html">Porting to new hardware or operating systems.</a></li>
<li><a href="17_intro/abi.html">ABI Policy and Guidelines</a></li> <li><a href="17_intro/abi.html">ABI Policy and Guidelines</a></li>
<li><a href="17_intro/api.html">API Evolution and Deprecation History</a></li> <li><a href="17_intro/api.html">API Evolution and Deprecation History</a></li>
</ul> </ul>
</li>
<li>C. <a href="http://www.gnu.org/software/libc/manual/html_node/Free-Manuals.html#Free-Manuals">Free Software Needs Free Documentation </a></li>
<li>C. <a href="http://www.gnu.org/software/libc/manual/html_node/Free-Manuals.html#Free-Manuals">Free Software Needs Free Documentation </a>
</ul> </ul>
</li> </li>
</ul> </ul>
<!-- endlist --> <!-- endlist -->
@ -314,7 +327,7 @@ href="http://gcc.gnu.org/svn.html">web</a>.
<hr /> <hr />
<br /> <br />
<h2><a name="7"><a href="faq/index.html">Frequently Asked Questions</a></a></h2 <h2><a name="7" href="faq/index.html">Frequently Asked Questions</a></h2
<hr /> <hr />
<br /> <br />

View File

@ -1,4 +1,4 @@
// Bits and pieces used in algorithms -*- C++ -*- // Core algorithmic facilities -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
@ -1084,7 +1084,6 @@ _GLIBCXX_END_NESTED_NAMESPACE
// of getting the base algorithms. So, make sure that parallel bits // of getting the base algorithms. So, make sure that parallel bits
// come in too if requested. // come in too if requested.
#ifdef _GLIBCXX_PARALLEL #ifdef _GLIBCXX_PARALLEL
//# include <parallel/algorithm>
# include <parallel/algobase.h> # include <parallel/algobase.h>
#endif #endif