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>
* 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,
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
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
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
styles. The GNU C usages will be combed out gradually.
@ -264,7 +276,6 @@ namespace std
class gribble
{
public:
// ctor, op=, dtor
gribble() throw();
gribble(const gribble&);
@ -278,11 +289,11 @@ namespace std
virtual
~gribble() throw ();
// argument
// Start with a capitol letter, end with a period.
inline void
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
one_line() { return 0 }
@ -293,7 +304,7 @@ namespace std
inline int
three_lines(); // inline, but defined below.
// note indentation
// Note indentation.
template<typename _Formal_argument>
void
public_template() const throw();
@ -320,7 +331,7 @@ namespace std
_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
extern long long _G_global_with_a_good_long_name; // avoid globals!
# endif
@ -384,3 +395,5 @@ 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>
<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>
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
</blockquote>
<ul>
<li><a href="#deps">what comes from where</a></li>
<li><a href="#breakout">storing information in non-AC files, like
<li><a href="#prereq">Prerequisites for configure and make hacking</a></li>
<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>
<li><a href="#general">general config notes</a></li>
<li><a href="#aclayout">acinclude.m4 layout</a></li>
<li><a href="#enable"><code>--enable</code> howto</a></li>
<li><a href="#general">Coding and commenting conventions</a></li>
<li><a href="#aclayout">The acinclude.m4 layout</a></li>
<li><a href="#enable"><code>GLIBCXX_ENABLE, the --enable</code> howto</a></li>
</ul>
<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"
alt="Dependency graph in PNG graphics format. (Get a better browser!)" /></p>
<p>Regenerate using a command sequence like
<code>"aclocal-1.7 &amp;&amp; autoconf-2.59 &amp;&amp; autoheader-2.59
&amp;&amp; automake-1.7"</code> as needed. And/or configure with
--enable-maintainer-mode. The version numbers will vary depending on
<p>Regenerate all generated files by using the command sequence
<code>"autoreconf"</code> at the top level of the libstdc++ source
directory. The following will also work, but is much more complex:
<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
requirements</a> and your vendor's choice of installation names.
</p>
<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>
<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
@ -82,7 +98,7 @@ Last Question</a>, by Isaac Asimov
<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
the same (or better) shell code for us.
</p>
@ -108,7 +124,7 @@ Last Question</a>, by Isaac Asimov
</p>
<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
performed/called/expanded/whatever here, just loaded. So we can arrange
the contents however we like. As of this writing, acinclude.m4 is arranged
@ -186,7 +202,7 @@ Last Question</a>, by Isaac Asimov
<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.
(You don't have to use it, but it's easy.) The helper does two things
for us:

View File

@ -57,51 +57,53 @@ href="http://gcc.gnu.org/svn.html">web</a>.
</ul>
</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>
</li>
<li> Configuring, Building, Testing, Installing
<li> Configuring, Building, Testing, Installing
<ul>
<li><a href="install.html">Getting started: configure, build, install</a>
</li>
<li><a href="configopts.html">Configure options</a></li>
<li><a href="test.html">Testing details</a></li>
</li>
</ul>
</li>
</li>
<li> Using the Library
<li> Using the Library
<ul>
<li>Header Files</li>
<li>Header Files
<ul>
<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>Pre-compiled headers</li>
</ul>
</li>
<li>Namespaces</li>
<li>Namespaces
<ul>
<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>
</ul>
</li>
<li><a href="17_intro/howto.html#6">Macros</a></li>
<li>Concurrency</li>
<li>Concurrency
<ul>
<li>Atomic Operations</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="27_io/howto.html#9">IO</a></li>
</ul>
</li>
<li>Exception safety</li>
<li><a href="debug.html">Debugging support</a>
<li><a href="debug.html">Debugging support</a></li>
</ul>
</li>
@ -130,15 +132,18 @@ href="http://gcc.gnu.org/svn.html">web</a>.
<ul>
<li><a href="20_util/howto.html#3">Functors</a></li>
<li><a href="20_util/howto.html#4">Pairs</a></li>
<li>Memory</li>
<ul>
<li><a href="20_util/allocator.html">allocator</a></li>
<li>auto_ptr</li>
<ul>
<li>Memory
<ul>
<li><a href="20_util/allocator.html">allocator</a></li>
<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#2"><code>auto_ptr</code> inside container classes</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
@ -215,62 +220,70 @@ href="http://gcc.gnu.org/svn.html">web</a>.
<li>Extensions
<ul>
<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="parallel_mode.html">Parallel mode</a></li>
<li> Allocators</li>
<li><a href="ext/debug_mode.html">Debug mode</a></li>
<li><a href="ext/parallel_mode.html">Parallel mode</a></li>
<li> Allocators
<ul>
<li><a href="ext/mt_allocator.html"><code>__mt_alloc</code> </a></li>
<li><a href="ext/ballocator_doc.html">Bitmap Allocator</a></li>
</ul>
</li>
<li> Containers </li>
<li> Containers
<ul>
<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>
</ul>
</li>
<li> Algorithms</li>
<li> Algorithms
<ul>
<li><a href="ext/sgiexts.html">HP/SGI STL Extensions</a></li>
</ul>
</li>
<li> Input/Output</li>
<li> Input/Output
<ul>
<li><a href="27_io/howto.html#11">Derived filebuf classes</a></li>
</ul>
</li>
<li><a href="ext/../18_support/howto.html#6">Demangling</a></li>
</ul>
</li>
<li>Appendix
<ul>
<li>A. <a name="5">Contributing and Maintenance</a></li>
<li>A. <a name="5">Contributing and Maintenance</a>
<ul>
<li><a href="17_intro/contribute.html">Contributor checklist</a></li>
<li><a href="http://gcc.gnu.org/svnwrite.html">Getting write access
(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>
<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><a href="17_intro/DESIGN">DESIGN</a>
- overview of the implementation plan</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 Notes</a>
- 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>
</ul>
</li>
<li>B. Porting</li>
<li>B. Porting
<ul>
<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/api.html">API Evolution and Deprecation History</a></li>
</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>
</li>
</ul>
<!-- endlist -->
@ -314,7 +327,7 @@ href="http://gcc.gnu.org/svn.html">web</a>.
<hr />
<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 />
<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
// Free Software Foundation, Inc.
@ -1084,7 +1084,6 @@ _GLIBCXX_END_NESTED_NAMESPACE
// of getting the base algorithms. So, make sure that parallel bits
// come in too if requested.
#ifdef _GLIBCXX_PARALLEL
//# include <parallel/algorithm>
# include <parallel/algobase.h>
#endif