362 lines
13 KiB
HTML
362 lines
13 KiB
HTML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE html
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta name="KEYWORDS"
|
|
content="libstdc++, homepage, home, C++, library, c++, std, g++, STL" />
|
|
<title>The GNU C++ Library</title>
|
|
<link rel="StyleSheet" href="lib3styles.css" type="text/css" />
|
|
<link rel="Copyright" href="17_intro/license.html" type="text/html" />
|
|
<link rel="Help" href="faq/index.html" type="text/html" title="F.A.Q." />
|
|
</head>
|
|
<body>
|
|
|
|
<h1>The GNU C++ Library</h1>
|
|
|
|
|
|
<h2><a name="3">Table of Contents</a></h2>
|
|
|
|
<p>
|
|
The GNU Standard C++ Library is an ongoing <a
|
|
href="http://gcc.gnu.org/libstdc++">project</a> to implement the ISO
|
|
14882 Standard C++ library as described in chapters 17 through 27 and
|
|
annex D, extensions as described by TR1, and future C++ library
|
|
standards still in progress. For those who want to see exactly how far
|
|
the project has come, or just want the latest bleeding-edge code, the
|
|
up-to-date source is always publicly available over anonymous SVN,
|
|
and can be browsed over the <a
|
|
href="http://gcc.gnu.org/svn.html">web</a>.
|
|
</p>
|
|
|
|
<p>Stable versions of libstdc++ are included with releases of
|
|
<a href="http://gcc.gnu.org/releases.html">the GCC compilers</a>.
|
|
</p>
|
|
<ul>
|
|
<li>Introduction
|
|
<ul>
|
|
|
|
<li> Status
|
|
<ul>
|
|
<li>Implementation Status
|
|
<ul>
|
|
<li><a href="17_intro/c++1998_status.html">C++1998</a>,
|
|
including <a href="17_intro/howto.html#5">implementation-defined behavior</a> and <a href="ext/howto.html#5">LWG issues</a> </li>
|
|
<li><a href="17_intro/tr1_status.html">C++TR1</a></li>
|
|
<li><a href="17_intro/c++0x_status.html">C++0x</a></li>
|
|
<li>Extensions</li>
|
|
</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>
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
|
|
<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>
|
|
</ul>
|
|
</li>
|
|
|
|
<li> Using the Library
|
|
<ul>
|
|
<li>Header Files
|
|
<ul>
|
|
<li><a href="17_intro/howto.html#2.0">Available headers</a></li>
|
|
<li><a href="17_intro/howto.html#2.1">Mixing headers</a></li>
|
|
<li><a href="17_intro/howto.html#2.2">The C Headers and <code>namespace std</code></a></li>
|
|
<li><a href="17_intro/howto.html#2.3">Precompiled Headers</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Namespaces
|
|
<ul>
|
|
<li><a href="17_intro/howto.html#3.0">Available namespaces</a></li>
|
|
<li><a href="17_intro/howto.html#3.1">Namespace <code>std::</code></a></li>
|
|
<li><a href="17_intro/howto.html#3.2">Using namespace composition</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="17_intro/howto.html#6">Macros</a></li>
|
|
<li>Command line options</li>
|
|
|
|
<li>Concurrency
|
|
<ul>
|
|
<li><a href="faq/index.html#5_6">Is it thread safe?</a></li>
|
|
<li><a href="17_intro/howto.html#7">Thread safety history and evolution</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>
|
|
</ul>
|
|
</li>
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Support
|
|
<ul>
|
|
<li><a href="18_support/howto.html#1">Types</a></li>
|
|
<li><a href="18_support/howto.html#2">Implementation properties of builtin types</a></li>
|
|
<li><a href="18_support/howto.html#3">Start and Termination</a></li>
|
|
<li><a href="18_support/howto.html#4">Verbose <code>terminate</code></a></li>
|
|
<li><a href="18_support/howto.html#5">Dynamic memory management</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Diagnostics
|
|
<ul>
|
|
<li>Exceptions
|
|
|
|
<ul>
|
|
<li>Exception class hierarchy</li>
|
|
<li><a href="19_diagnostics/howto.html#1">Adding data to exceptions</a></li>
|
|
<li>Cancellation</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li><a href="19_diagnostics/howto.html#3">Concept checking</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>General Utilities
|
|
<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
|
|
<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>
|
|
<li>shared_ptr
|
|
<ul>
|
|
<li><a href="20_util/shared_ptr.html">Notes on the <code>shared_ptr</code>
|
|
implementation</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Strings
|
|
<ul>
|
|
<li><a href="21_strings/howto.html#2">A case-insensitive string class</a></li>
|
|
<li><a href="21_strings/howto.html#3">Breaking a C++ string into tokens</a></li>
|
|
<li><a href="21_strings/howto.html#4">Simple transformations</a></li>
|
|
<li><a href="21_strings/howto.html#5">Making strings of arbitrary character types</a></li>
|
|
<li><a href="21_strings/howto.html#6">Shrink-to-fit strings</a></li>
|
|
<li><a href="21_strings/howto.html#1">MFC's CString</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Localization
|
|
<ul>
|
|
<li><a href="22_locale/howto.html#1">class locale</a></li>
|
|
<li><a href="22_locale/howto.html#2">class codecvt</a></li>
|
|
<li><a href="22_locale/howto.html#3">class ctype</a></li>
|
|
<li><a href="22_locale/howto.html#7">Correct Transformations</a></li>
|
|
<li><a href="22_locale/howto.html#4">class messages</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Containers
|
|
<ul>
|
|
<li><a href="23_containers/howto.html#1">Making code unaware of the container/array difference</a></li>
|
|
<li><a href="23_containers/howto.html#4">"Hinting" during insertion</a></li>
|
|
<li><a href="23_containers/howto.html#6"><code>std::list::size()</code> is O(n)!</a></li>
|
|
<li><a href="23_containers/howto.html#7">Space overhead management for vectors</a></li>
|
|
<li><a href="23_containers/howto.html#2">Variable-sized bitmasks</a></li>
|
|
<li><a href="23_containers/howto.html#5">Bitmasks and string arguments</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Iterators
|
|
<ul>
|
|
<li><a href="24_iterators/howto.html#1">They ain't pointers!</a></li>
|
|
<li><a href="24_iterators/howto.html#2">It ends <em>where?</em></a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Algorithms
|
|
<ul>
|
|
<li><a href="25_algorithms/howto.html#1">Prerequisites</a></li>
|
|
<li><a href="25_algorithms/howto.html#2">Specializations for <code>swap</code></a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Numerics
|
|
<ul>
|
|
<li><a href="26_numerics/howto.html#1">Complex Number Processing</a></li>
|
|
<li><a href="26_numerics/howto.html#2">Array Processing</a></li>
|
|
<li><a href="26_numerics/howto.html#3">Numerical Functions</a></li>
|
|
<li><a href="26_numerics/howto.html#4">C99</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Input/Output
|
|
<ul>
|
|
<li><a href="27_io/howto.html#1">Copying a file</a></li>
|
|
<li><a href="27_io/howto.html#2">The buffering is screwing up my program!</a></li>
|
|
<li><a href="27_io/howto.html#3">Binary I/O</a></li>
|
|
<li><a href="27_io/howto.html#5">What is this <sstream>/stringstreams thing?</a></li>
|
|
<li><a href="27_io/howto.html#6">Deriving a stream buffer</a></li>
|
|
<li><a href="27_io/howto.html#7">More on binary I/O</a></li>
|
|
<li><a href="27_io/howto.html#8">Pathetic performance? Ditch C.</a></li>
|
|
<li><a href="27_io/howto.html#9">Threads and I/O</a></li>
|
|
<li><a href="27_io/howto.html#10">Which header?</a></li>
|
|
<li><a href="27_io/howto.html#11">Using FILE*s and file descriptors with IOStreams</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Extensions
|
|
<ul>
|
|
<li><a href="ext/howto.html#4">Compile-time checks</a></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
|
|
<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
|
|
<ul>
|
|
<li><a href="ext/sgiexts.html">HP/SGI STL Extensions</a></li>
|
|
</ul>
|
|
</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>
|
|
<li><a href="ext/concurrence.html">Concurrency: Threads and Atomics</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>Appendix
|
|
<ul>
|
|
|
|
<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 "Write after approval")</a></li>
|
|
<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> 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
|
|
|
|
<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>
|
|
<li><a href="17_intro/backwards_compatibility.html">Backwards Compatibility</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>
|
|
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<!-- endlist -->
|
|
|
|
|
|
<hr />
|
|
<br />
|
|
<h2><a name="4">Source-Level Documentation</a></h2>
|
|
<p>The library sources have been specially formatted so that with the
|
|
proper invocation of another tool (Doxygen), a set of HTML pages
|
|
are generated from the sources files themselves. The resultant
|
|
documentation is referred to as Source-Level Documentation, and is
|
|
useful for examining the signatures of public member functions for
|
|
the library classes, finding out what is in a particular include
|
|
file, looking at inheritance diagrams, etc.
|
|
</p>
|
|
<p>The source-level documentation for the most recent releases can
|
|
be viewed online:
|
|
</p>
|
|
<ul>
|
|
<li><a href="libstdc++-html-USERS-3.4/index.html">for the 3.4 release</a></li>
|
|
<li><a href="libstdc++-html-USERS-4.1/index.html">for the 4.1 release</a></li>
|
|
<li><a href="libstdc++-html-USERS-4.2/index.html">for the 4.2 release</a></li>
|
|
<li><a href="latest-doxygen/index.html">"the latest collection"</a>
|
|
(for the main development tree; see the date on the first page)
|
|
</li>
|
|
</ul>
|
|
<p>This generated HTML collection, as above, is also available for download in
|
|
the libstdc++ snapshots directory at
|
|
<code><URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/></code>.
|
|
You will almost certainly need to use one of the
|
|
<a href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
|
|
the tarball. After unpacking, simply load libstdc++-html-*/index.html
|
|
into a browser.
|
|
</p>
|
|
<p>Documentation for older releases is available for download only, not
|
|
online viewing.
|
|
</p>
|
|
<p>In addition, an initial set of man pages are also available in the
|
|
same place as the HTML collections. Start with C++Intro(3).
|
|
</p>
|
|
|
|
<hr />
|
|
<br />
|
|
<h2><a name="7" href="faq/index.html">Frequently Asked Questions</a></h2>
|
|
|
|
<hr />
|
|
<br />
|
|
<p><strong>All of these documents</strong> (in fact, this entire homepage set)
|
|
are bundled with the library source, under the <code>docs</code>
|
|
subdirectory, for releases and snapshots. The sole exception is the
|
|
automatically-generated source documentation, available separately.
|
|
</p>
|
|
|
|
<!-- ####################################################### -->
|
|
<p>Return <a href="http://gcc.gnu.org/libstdc++/">to the libstdc++ homepage</a>.</p>
|
|
|
|
|
|
<hr />
|
|
<p class="fineprint"><em>
|
|
See <a href="17_intro/license.html">license.html</a> for copying conditions.
|
|
Comments and suggestions are welcome, and may be sent to
|
|
<a href="mailto:libstdc++@gcc.gnu.org">the libstdc++ mailing list</a>.
|
|
</em></p>
|
|
|
|
</body>
|
|
</html>
|