1*404b540aSrobert<?xml version="1.0" encoding="ISO-8859-1"?>
2*404b540aSrobert<!DOCTYPE html
3*404b540aSrobert          PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4*404b540aSrobert          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5*404b540aSrobert
6*404b540aSrobert<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7*404b540aSrobert<head>
8*404b540aSrobert <meta name="KEYWORDS"
9*404b540aSrobert  content="libstdc++, homepage, home, C++, library, c++, std, g++, ABI, STL" />
10*404b540aSrobert <title>GNU C++ Standard Library</title>
11*404b540aSrobert<link rel="StyleSheet" href="lib3styles.css" type="text/css" />
12*404b540aSrobert<link rel="Copyright" href="17_intro/license.html" type="text/html" />
13*404b540aSrobert<link rel="Help" href="faq/index.html" type="text/html" title="F.A.Q." />
14*404b540aSrobert</head>
15*404b540aSrobert<body>
16*404b540aSrobert
17*404b540aSrobert
18*404b540aSrobert<p><strong>All of these documents</strong> (in fact, this entire homepage set)
19*404b540aSrobert   are bundled with the library source, under the <code>docs</code>
20*404b540aSrobert   subdirectory, for releases and snapshots.  The sole exception is the
21*404b540aSrobert   automatically-generated source documentation, available separately.
22*404b540aSrobert</p>
23*404b540aSrobert
24*404b540aSrobert<hr />
25*404b540aSrobert<br />
26*404b540aSrobert<h2><a name="1">Introduction</a></h2>
27*404b540aSrobert   <p>This is a short list of text files pertaining to this implementation of
28*404b540aSrobert      ISO 14882.  A brief description may follow the name of the file.
29*404b540aSrobert   </p>
30*404b540aSrobert      <ul>
31*404b540aSrobert         <li><a href="17_intro/COPYING">License</a>
32*404b540aSrobert         - GPL v2 license terms</li>
33*404b540aSrobert         <li><a href="abi.html">ABI Policy and Guidelines</a></li>
34*404b540aSrobert         <li><a href="17_intro/BUGS">BUGS</a></li>
35*404b540aSrobert         <li><a href="17_intro/PROBLEMS">PROBLEMS</a>
36*404b540aSrobert         - target-specific known issues</li>
37*404b540aSrobert         <!-- Linking to "../README" doesn't work; we are at the top level
38*404b540aSrobert              of the web pages.  Punt.  -->
39*404b540aSrobert         <li>README - directory structure</li>
40*404b540aSrobert         <li><a href="17_intro/RELEASE-NOTES">RELEASE-NOTES</a>
41*404b540aSrobert         - latest version info, recent changes and news</li>
42*404b540aSrobert         <li><a href="17_intro/TODO">TODO</a>
43*404b540aSrobert         - tasks yet undone</li>
44*404b540aSrobert         <li><a href="faq/index.html">FAQ (HTML)</a>,
45*404b540aSrobert             <a href="faq/index.txt">FAQ (text)</a></li>
46*404b540aSrobert      </ul>
47*404b540aSrobert
48*404b540aSrobert<hr />
49*404b540aSrobert<br />
50*404b540aSrobert<h2><a name="2">Configuring, Building, Testing, Installing</a></h2>
51*404b540aSrobert<ul>
52*404b540aSrobert   <li><a href="configopts.html">Configure options</a></li>
53*404b540aSrobert   <li><a href="install.html">Getting started: configure, build, install</a>
54*404b540aSrobert   </li>
55*404b540aSrobert   <li><a href="test.html">Testing details</a></li>
56*404b540aSrobert   <li><a href="debug.html">Debugging schemes and strategies</a>
57*404b540aSrobert   </li>
58*404b540aSrobert</ul>
59*404b540aSrobert
60*404b540aSrobert
61*404b540aSrobert<hr />
62*404b540aSrobert<br />
63*404b540aSrobert<h2><a name="4">Source-Level Documentation</a></h2>
64*404b540aSrobert<p>The library sources have been specially formatted so that with the
65*404b540aSrobert   proper invocation of another tool (Doxygen), a set of HTML pages
66*404b540aSrobert   are generated from the sources files themselves.  The resultant
67*404b540aSrobert   documentation is referred to as Source-Level Documentation, and is
68*404b540aSrobert   useful for examining the signatures of public member functions for
69*404b540aSrobert   the library classes, finding out what is in a particular include
70*404b540aSrobert   file, looking at inheritance diagrams, etc.
71*404b540aSrobert</p>
72*404b540aSrobert<p>The source-level documentation for the most recent releases can
73*404b540aSrobert   be viewed online:
74*404b540aSrobert</p>
75*404b540aSrobert<ul>
76*404b540aSrobert <li><a href="libstdc++-html-USERS-3.4/index.html">for the 3.4 release</a></li>
77*404b540aSrobert <li><a href="latest-doxygen/index.html">&quot;the latest collection&quot;</a>
78*404b540aSrobert   (for the main development tree; see the date on the first page)
79*404b540aSrobert </li>
80*404b540aSrobert</ul>
81*404b540aSrobert<p>This generated HTML collection, as above, is also available for download in
82*404b540aSrobert   the libstdc++ snapshots directory at
83*404b540aSrobert   <code>&lt;URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/&gt;</code>.
84*404b540aSrobert   You will almost certainly need to use one of the
85*404b540aSrobert   <a href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
86*404b540aSrobert   the tarball.  After unpacking, simply load libstdc++-html-*/index.html
87*404b540aSrobert   into a browser.
88*404b540aSrobert</p>
89*404b540aSrobert<p>Documentation for older releases is available for download only, not
90*404b540aSrobert   online viewing.
91*404b540aSrobert</p>
92*404b540aSrobert<p>In addition, an initial set of man pages are also available in the
93*404b540aSrobert   same place as the HTML collections.  Start with C++Intro(3).
94*404b540aSrobert</p>
95*404b540aSrobert
96*404b540aSrobert
97*404b540aSrobert<hr />
98*404b540aSrobert<br />
99*404b540aSrobert<h2><a name="3">Chapter-Specific Documentation</a></h2>
100*404b540aSrobert<p>Information, extensions, notes and advice on specific implementation
101*404b540aSrobert   capabilites and/or liabilities broken down into chapter names based on the
102*404b540aSrobert   C++ standard.
103*404b540aSrobert</p>
104*404b540aSrobert<!--
105*404b540aSrobert  The list below is automatically generated.  To make changes in the text,
106*404b540aSrobert  edit the appropriate HOWTO file and run "make" in this directory.  In
107*404b540aSrobert  those files, you may reorder entries as you like, but DO NOT change the
108*404b540aSrobert  "#number"s in anchors, for they are used elsewhere and in bookmarks.
109*404b540aSrobert-->
110*404b540aSrobert<!-- beginlist -->
111*404b540aSrobert  <ul>
112*404b540aSrobert   <li>Library Introduction (Chapter 17)
113*404b540aSrobert   <ul>
114*404b540aSrobert     <li><a href="17_intro/howto.html#2">The Standard C++ header files</a></li>
115*404b540aSrobert     <li><a href="17_intro/howto.html#3">The Standard C++ library and multithreading</a></li>
116*404b540aSrobert     <li><a href="17_intro/howto.html#4"><code>&lt;foo&gt;</code> vs <code>&lt;foo.h&gt;</code></a></li>
117*404b540aSrobert     <li><a href="17_intro/porting-howto.html">Porting HOWTO</a></li>
118*404b540aSrobert     <li><a href="17_intro/howto.html#5">Behavior specific to libstdc++-v3</a></li>
119*404b540aSrobert     <li><a href="17_intro/howto.html#6">Preprocessor macros controlling the library</a></li>
120*404b540aSrobert   </ul>
121*404b540aSrobert   </li>
122*404b540aSrobert
123*404b540aSrobert   <li>Library Support (Chapter 18)
124*404b540aSrobert   <ul>
125*404b540aSrobert     <li><a href="18_support/howto.html#1">Types</a></li>
126*404b540aSrobert     <li><a href="18_support/howto.html#2">Implementation properties</a></li>
127*404b540aSrobert     <li><a href="18_support/howto.html#3">Start and Termination</a></li>
128*404b540aSrobert     <li><a href="18_support/howto.html#4">Verbose <code>terminate</code></a></li>
129*404b540aSrobert     <li><a href="18_support/howto.html#5">Dynamic memory management</a></li>
130*404b540aSrobert     <li><a href="18_support/howto.html#6">RTTI, the ABI, and demangling</a></li>
131*404b540aSrobert   </ul>
132*404b540aSrobert   </li>
133*404b540aSrobert
134*404b540aSrobert   <li>Diagnostics (Chapter 19)
135*404b540aSrobert   <ul>
136*404b540aSrobert     <li><a href="19_diagnostics/howto.html#1">Adding data to exceptions</a></li>
137*404b540aSrobert     <li><a href="19_diagnostics/howto.html#2">Exception class hierarchy diagram</a></li>
138*404b540aSrobert     <li><a href="19_diagnostics/howto.html#3">Concept checkers -- <strong>new and improved!</strong></a></li>
139*404b540aSrobert   </ul>
140*404b540aSrobert   </li>
141*404b540aSrobert
142*404b540aSrobert   <li>General Utilities (Chapter 20)
143*404b540aSrobert   <ul>
144*404b540aSrobert     <li><a href="20_util/howto.html#1"><code>auto_ptr</code> is not omnipotent</a></li>
145*404b540aSrobert     <li><a href="20_util/howto.html#2"><code>auto_ptr</code> inside container classes</a></li>
146*404b540aSrobert     <li><a href="20_util/howto.html#3">Functors</a></li>
147*404b540aSrobert     <li><a href="20_util/howto.html#4">Pairs</a></li>
148*404b540aSrobert     <li><a href="20_util/howto.html#5">Memory allocators</a></li>
149*404b540aSrobert   </ul>
150*404b540aSrobert   </li>
151*404b540aSrobert
152*404b540aSrobert   <li>Strings (Chapter 21)
153*404b540aSrobert   <ul>
154*404b540aSrobert     <li><a href="21_strings/howto.html#1">MFC's CString</a></li>
155*404b540aSrobert     <li><a href="21_strings/howto.html#2">A case-insensitive string class</a></li>
156*404b540aSrobert     <li><a href="21_strings/howto.html#3">Breaking a C++ string into tokens</a></li>
157*404b540aSrobert     <li><a href="21_strings/howto.html#4">Simple transformations</a></li>
158*404b540aSrobert     <li><a href="21_strings/howto.html#5">Making strings of arbitrary character types</a></li>
159*404b540aSrobert     <li><a href="21_strings/howto.html#6">Shrink-to-fit strings</a></li>
160*404b540aSrobert   </ul>
161*404b540aSrobert   </li>
162*404b540aSrobert
163*404b540aSrobert   <li>Localization (Chapter 22)
164*404b540aSrobert   <ul>
165*404b540aSrobert     <li><a href="22_locale/howto.html#1">class locale</a></li>
166*404b540aSrobert     <li><a href="22_locale/howto.html#2">class codecvt</a></li>
167*404b540aSrobert     <li><a href="22_locale/howto.html#3">class ctype</a></li>
168*404b540aSrobert     <li><a href="22_locale/howto.html#4">class messages</a></li>
169*404b540aSrobert     <li><a href="22_locale/howto.html#5">Bjarne Stroustrup on Locales</a></li>
170*404b540aSrobert     <li><a href="22_locale/howto.html#6">Nathan Myers on Locales</a></li>
171*404b540aSrobert     <li><a href="22_locale/howto.html#7">Correct Transformations</a></li>
172*404b540aSrobert   </ul>
173*404b540aSrobert   </li>
174*404b540aSrobert
175*404b540aSrobert   <li>Containers (Chapter 23)
176*404b540aSrobert   <ul>
177*404b540aSrobert     <li><a href="23_containers/howto.html#1">Making code unaware of the container/array difference</a></li>
178*404b540aSrobert     <li><a href="23_containers/howto.html#2">Variable-sized bitmasks</a></li>
179*404b540aSrobert     <li><a href="23_containers/howto.html#3">Containers and multithreading</a></li>
180*404b540aSrobert     <li><a href="23_containers/howto.html#4">&quot;Hinting&quot; during insertion</a></li>
181*404b540aSrobert     <li><a href="23_containers/howto.html#5">Bitmasks and string arguments</a></li>
182*404b540aSrobert     <li><a href="23_containers/howto.html#6"><code>std::list::size()</code> is O(n)!</a></li>
183*404b540aSrobert     <li><a href="23_containers/howto.html#7">Space overhead management for vectors</a></li>
184*404b540aSrobert   </ul>
185*404b540aSrobert   </li>
186*404b540aSrobert
187*404b540aSrobert   <li>Iterators (Chapter 24)
188*404b540aSrobert   <ul>
189*404b540aSrobert     <li><a href="24_iterators/howto.html#1">They ain't pointers!</a></li>
190*404b540aSrobert     <li><a href="24_iterators/howto.html#2">It ends <em>where?</em></a></li>
191*404b540aSrobert   </ul>
192*404b540aSrobert   </li>
193*404b540aSrobert
194*404b540aSrobert   <li>Algorithms (Chapter 25)
195*404b540aSrobert   <ul>
196*404b540aSrobert     <li><a href="25_algorithms/howto.html#1">Prerequisites</a></li>
197*404b540aSrobert     <li><a href="25_algorithms/howto.html#2">Special <code>swap</code>s</a></li>
198*404b540aSrobert   </ul>
199*404b540aSrobert   </li>
200*404b540aSrobert
201*404b540aSrobert   <li>Numerics (Chapter 26)
202*404b540aSrobert   <ul>
203*404b540aSrobert     <li><a href="26_numerics/howto.html#1">Complex Number Processing</a></li>
204*404b540aSrobert     <li><a href="26_numerics/howto.html#2">Array Processing</a></li>
205*404b540aSrobert     <li><a href="26_numerics/howto.html#3">Numerical Functions</a></li>
206*404b540aSrobert     <li><a href="26_numerics/howto.html#4">C99</a></li>
207*404b540aSrobert   </ul>
208*404b540aSrobert   </li>
209*404b540aSrobert
210*404b540aSrobert   <li>Input/Output (Chapter 27)
211*404b540aSrobert   <ul>
212*404b540aSrobert     <li><a href="27_io/howto.html#1">Copying a file</a></li>
213*404b540aSrobert     <li><a href="27_io/howto.html#2">The buffering is screwing up my program!</a></li>
214*404b540aSrobert     <li><a href="27_io/howto.html#3">Binary I/O</a></li>
215*404b540aSrobert     <li><a href="27_io/howto.html#5">What is this &lt;sstream&gt;/stringstreams thing?</a></li>
216*404b540aSrobert     <li><a href="27_io/howto.html#6">Deriving a stream buffer</a></li>
217*404b540aSrobert     <li><a href="27_io/howto.html#7">More on binary I/O</a></li>
218*404b540aSrobert     <li><a href="27_io/howto.html#8">Pathetic performance?  Ditch C.</a></li>
219*404b540aSrobert     <li><a href="27_io/howto.html#9">Threads and I/O</a></li>
220*404b540aSrobert     <li><a href="27_io/howto.html#10">Which header?</a></li>
221*404b540aSrobert     <li><a href="27_io/howto.html#11">Using FILE*s and file descriptors with IOStreams</a></li>
222*404b540aSrobert   </ul>
223*404b540aSrobert   </li>
224*404b540aSrobert
225*404b540aSrobert   <li>Extensions to the Standard Library
226*404b540aSrobert   <ul>
227*404b540aSrobert     <li><a href="ext/pb_ds/index.html">Policy Based Data Structures</a></li>
228*404b540aSrobert     <li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li>
229*404b540aSrobert     <li><a href="ext/howto.html#2">Added members and types</a></li>
230*404b540aSrobert     <li><a href="ext/mt_allocator.html"><code>__mt_alloc</code> </a></li>
231*404b540aSrobert     <li><a href="ext/howto.html#4">Compile-time checks</a></li>
232*404b540aSrobert     <li><a href="ext/howto.html#5">LWG Issues</a></li>
233*404b540aSrobert     <li><a href="ext/../18_support/howto.html#6">Demangling</a></li>
234*404b540aSrobert   </ul>
235*404b540aSrobert   </li>
236*404b540aSrobert
237*404b540aSrobert  </ul>
238*404b540aSrobert<!-- endlist -->
239*404b540aSrobert
240*404b540aSrobert<hr />
241*404b540aSrobert<br />
242*404b540aSrobert<h2><a name="5">Contributor-Specific Information</a></h2>
243*404b540aSrobert<ul>
244*404b540aSrobert   <li><a href="17_intro/contribute.html">Contributor checklist</a></li>
245*404b540aSrobert   <li><a href="http://gcc.gnu.org/cvswrite.html">Getting CVS write access
246*404b540aSrobert       (look for &quot;Write after approval&quot;)</a></li>
247*404b540aSrobert   <li><a href="17_intro/BADNAMES">BADNAMES</a>
248*404b540aSrobert       - names to avoid because of potential collisions</li>
249*404b540aSrobert   <li><a href="17_intro/C++STYLE">C++STYLE</a>
250*404b540aSrobert       - coding style by example</li>
251*404b540aSrobert   <li> In the libstdc++-v3/docs/doxygen directory, see guide.html, a
252*404b540aSrobert       doxygen markup style guide</li>
253*404b540aSrobert   <li><a href="17_intro/CHECKLIST">CHECKLIST</a>
254*404b540aSrobert       - a list of required features and their status.</li>
255*404b540aSrobert   <li><a href="17_intro/DESIGN">DESIGN</a>
256*404b540aSrobert       - overview of the implementation plan</li>
257*404b540aSrobert   <li><a href="17_intro/HEADER_POLICY">HEADER_POLICY</a>
258*404b540aSrobert       - header naming and sub-include structure</li>
259*404b540aSrobert</ul>
260*404b540aSrobert
261*404b540aSrobert<!-- ####################################################### -->
262*404b540aSrobert
263*404b540aSrobert<p>Return <a href="http://gcc.gnu.org/libstdc++/">to the libstdc++ homepage</a>.</p>
264*404b540aSrobert
265*404b540aSrobert<hr />
266*404b540aSrobert<p class="fineprint"><em>
267*404b540aSrobertSee <a href="17_intro/license.html">license.html</a> for copying conditions.
268*404b540aSrobertComments and suggestions are welcome, and may be sent to
269*404b540aSrobert<a href="mailto:libstdc++@gcc.gnu.org">the libstdc++ mailing list</a>.
270*404b540aSrobert</em></p>
271*404b540aSrobert
272*404b540aSrobert</body>
273*404b540aSrobert</html>
274