]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/docs/html/documentation.html
boost_shared_ptr.h: Add support for allocators, aliasing, make_shared and rvalue...
[thirdparty/gcc.git] / libstdc++-v3 / docs / html / documentation.html
CommitLineData
ba43f4eb
JW
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE html
3 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5d5e5e4e 7<head>
6364054f 8 <meta name="KEYWORDS"
4dd9d9db
BK
9 content="libstdc++, homepage, home, C++, library, c++, std, g++, STL" />
10 <title>The GNU C++ Library</title>
bc225f98
JW
11<link rel="StyleSheet" href="lib3styles.css" type="text/css" />
12<link rel="Copyright" href="17_intro/license.html" type="text/html" />
13<link rel="Help" href="faq/index.html" type="text/html" title="F.A.Q." />
5d5e5e4e
PE
14</head>
15<body>
b2dad0e3 16
4dd9d9db 17<h1>The GNU C++ Library</h1>
b2dad0e3 18
b2dad0e3 19
4dd9d9db 20<h2><a name="3">Table of Contents</a></h2>
a1fa4e31 21
4dd9d9db
BK
22<p>
23The GNU Standard C++ Library is an ongoing <a
24href="http://gcc.gnu.org/libstdc++">project</a> to implement the ISO
2514882 Standard C++ library as described in chapters 17 through 27 and
26annex D, extensions as described by TR1, and future C++ library
27standards still in progress. For those who want to see exactly how far
28the project has come, or just want the latest bleeding-edge code, the
79e79067 29up-to-date source is always publicly available over anonymous SVN,
4dd9d9db
BK
30and can be browsed over the <a
31href="http://gcc.gnu.org/svn.html">web</a>.
a75e5191 32</p>
462b7396 33
4dd9d9db
BK
34<p>Stable versions of libstdc++ are included with releases of
35 <a href="http://gcc.gnu.org/releases.html">the GCC compilers</a>.
6364054f 36</p>
51122a42 37 <ul>
4dd9d9db 38 <li>Introduction
51122a42 39 <ul>
4dd9d9db
BK
40
41 <li> Status
42<ul>
43 <li>Implementation Status
44 <ul>
45 <li><a href="17_intro/c++1998_status.html">C++1998</a>,
46 including <a href="17_intro/howto.html#5">implementation-defined behavior</a> and <a href="ext/howto.html#5">LWG issues</a> </li>
47 <li><a href="17_intro/tr1_status.html">C++TR1</a></li>
48 <li><a href="17_intro/c++0x_status.html">C++0x</a></li>
49 <li>Extensions</li>
50 </ul>
51 </li>
52 <li><a href="17_intro/license.html">License</a></li>
c60cd1dc 53 <li><a href="http://gcc.gnu.org/bugzilla/buglist.cgi?cmdtype=runnamed&amp;namedcmd=libstdc%2B%2B">Known Bugs</a></li>
4dd9d9db
BK
54
55</ul>
56 </li>
57
58
59
c60cd1dc 60 <li> Configuring, Building, Testing, Installing
4dd9d9db
BK
61<ul>
62 <li><a href="install.html">Getting started: configure, build, install</a>
63 </li>
64 <li><a href="configopts.html">Configure options</a></li>
65 <li><a href="test.html">Testing details</a></li>
4dd9d9db 66</ul>
c60cd1dc 67 </li>
4dd9d9db 68
c60cd1dc 69 <li> Using the Library
4dd9d9db 70 <ul>
c60cd1dc 71 <li>Header Files
4dd9d9db 72 <ul>
79e79067
BK
73 <li><a href="17_intro/howto.html#2.0">Available headers</a></li>
74 <li><a href="17_intro/howto.html#2.1">Mixing headers</a></li>
75 <li><a href="17_intro/howto.html#2.2">The C Headers and <code>namespace std</code></a></li>
76 <li><a href="17_intro/howto.html#2.3">Precompiled Headers</a></li>
4dd9d9db 77 </ul>
c60cd1dc 78 </li>
4dd9d9db 79
c60cd1dc 80 <li>Namespaces
4dd9d9db 81 <ul>
158be8eb 82 <li><a href="17_intro/howto.html#3.0">Available namespaces</a></li>
79e79067
BK
83 <li><a href="17_intro/howto.html#3.1">Namespace <code>std::</code></a></li>
84 <li><a href="17_intro/howto.html#3.2">Using namespace composition</a></li>
4dd9d9db 85 </ul>
c60cd1dc 86 </li>
4dd9d9db 87 <li><a href="17_intro/howto.html#6">Macros</a></li>
79e79067 88 <li>Command line options</li>
4dd9d9db 89
c60cd1dc 90 <li>Concurrency
4dd9d9db 91 <ul>
c60cd1dc 92 <li><a href="faq/index.html#5_6">Is it thread safe?</a></li>
79e79067 93 <li><a href="17_intro/howto.html#7">Thread safety history and evolution</a></li>
4dd9d9db
BK
94 <li><a href="23_containers/howto.html#3">Containers</a></li>
95 <li><a href="27_io/howto.html#9">IO</a></li>
96 </ul>
c60cd1dc 97 </li>
4dd9d9db
BK
98 <li>Exception safety</li>
99
c60cd1dc 100 <li><a href="debug.html">Debugging support</a></li>
4dd9d9db
BK
101 </ul>
102 </li>
103
51122a42 104 </ul>
64a6f971 105 </li>
51122a42 106
4dd9d9db 107 <li>Support
51122a42
PE
108 <ul>
109 <li><a href="18_support/howto.html#1">Types</a></li>
4dd9d9db 110 <li><a href="18_support/howto.html#2">Implementation properties of builtin types</a></li>
51122a42 111 <li><a href="18_support/howto.html#3">Start and Termination</a></li>
7f7fb4ef 112 <li><a href="18_support/howto.html#4">Verbose <code>terminate</code></a></li>
1c86f39d 113 <li><a href="18_support/howto.html#5">Dynamic memory management</a></li>
51122a42 114 </ul>
64a6f971 115 </li>
51122a42 116
4dd9d9db 117 <li>Diagnostics
51122a42 118 <ul>
79e79067
BK
119 <li>Exceptions
120
121 <ul>
4dd9d9db 122 <li>Exception class hierarchy</li>
51122a42 123 <li><a href="19_diagnostics/howto.html#1">Adding data to exceptions</a></li>
79e79067
BK
124 <li>Cancellation</li>
125 </ul>
126 </li>
127
4dd9d9db 128 <li><a href="19_diagnostics/howto.html#3">Concept checking</a></li>
51122a42 129 </ul>
64a6f971 130 </li>
51122a42 131
4dd9d9db 132 <li>General Utilities
51122a42 133 <ul>
51122a42
PE
134 <li><a href="20_util/howto.html#3">Functors</a></li>
135 <li><a href="20_util/howto.html#4">Pairs</a></li>
c60cd1dc
BK
136
137 <li>Memory
138 <ul>
139 <li><a href="20_util/allocator.html">allocator</a></li>
140 <li>auto_ptr
141 <ul>
4dd9d9db
BK
142 <li><a href="20_util/howto.html#1"><code>auto_ptr</code> is not omnipotent</a></li>
143 <li><a href="20_util/howto.html#2"><code>auto_ptr</code> inside container classes</a></li>
144 </ul>
c60cd1dc 145 </li>
aaf0ca6f
JW
146 <li>shared_ptr
147 <ul>
148 <li><a href="20_util/shared_ptr.html">Notes on the <code>shared_ptr</code>
149 implementation</a></li>
150 </ul>
151 </li>
4dd9d9db 152 </ul>
c60cd1dc 153 </li>
51122a42 154 </ul>
64a6f971 155 </li>
51122a42 156
4dd9d9db 157 <li>Strings
51122a42 158 <ul>
51122a42
PE
159 <li><a href="21_strings/howto.html#2">A case-insensitive string class</a></li>
160 <li><a href="21_strings/howto.html#3">Breaking a C++ string into tokens</a></li>
161 <li><a href="21_strings/howto.html#4">Simple transformations</a></li>
162 <li><a href="21_strings/howto.html#5">Making strings of arbitrary character types</a></li>
d159598d 163 <li><a href="21_strings/howto.html#6">Shrink-to-fit strings</a></li>
4dd9d9db 164 <li><a href="21_strings/howto.html#1">MFC's CString</a></li>
51122a42 165 </ul>
64a6f971 166 </li>
51122a42 167
4dd9d9db 168 <li>Localization
51122a42
PE
169 <ul>
170 <li><a href="22_locale/howto.html#1">class locale</a></li>
171 <li><a href="22_locale/howto.html#2">class codecvt</a></li>
172 <li><a href="22_locale/howto.html#3">class ctype</a></li>
51122a42 173 <li><a href="22_locale/howto.html#7">Correct Transformations</a></li>
4dd9d9db 174 <li><a href="22_locale/howto.html#4">class messages</a></li>
51122a42 175 </ul>
64a6f971 176 </li>
51122a42 177
4dd9d9db 178 <li>Containers
51122a42
PE
179 <ul>
180 <li><a href="23_containers/howto.html#1">Making code unaware of the container/array difference</a></li>
51122a42 181 <li><a href="23_containers/howto.html#4">&quot;Hinting&quot; during insertion</a></li>
51122a42
PE
182 <li><a href="23_containers/howto.html#6"><code>std::list::size()</code> is O(n)!</a></li>
183 <li><a href="23_containers/howto.html#7">Space overhead management for vectors</a></li>
4dd9d9db
BK
184 <li><a href="23_containers/howto.html#2">Variable-sized bitmasks</a></li>
185 <li><a href="23_containers/howto.html#5">Bitmasks and string arguments</a></li>
51122a42 186 </ul>
64a6f971 187 </li>
51122a42 188
4dd9d9db 189 <li>Iterators
51122a42
PE
190 <ul>
191 <li><a href="24_iterators/howto.html#1">They ain't pointers!</a></li>
192 <li><a href="24_iterators/howto.html#2">It ends <em>where?</em></a></li>
193 </ul>
64a6f971 194 </li>
51122a42 195
4dd9d9db 196 <li>Algorithms
51122a42
PE
197 <ul>
198 <li><a href="25_algorithms/howto.html#1">Prerequisites</a></li>
4dd9d9db 199 <li><a href="25_algorithms/howto.html#2">Specializations for <code>swap</code></a></li>
51122a42 200 </ul>
64a6f971 201 </li>
51122a42 202
4dd9d9db 203 <li>Numerics
51122a42
PE
204 <ul>
205 <li><a href="26_numerics/howto.html#1">Complex Number Processing</a></li>
206 <li><a href="26_numerics/howto.html#2">Array Processing</a></li>
207 <li><a href="26_numerics/howto.html#3">Numerical Functions</a></li>
208 <li><a href="26_numerics/howto.html#4">C99</a></li>
209 </ul>
64a6f971 210 </li>
51122a42 211
4dd9d9db 212 <li>Input/Output
51122a42
PE
213 <ul>
214 <li><a href="27_io/howto.html#1">Copying a file</a></li>
215 <li><a href="27_io/howto.html#2">The buffering is screwing up my program!</a></li>
216 <li><a href="27_io/howto.html#3">Binary I/O</a></li>
217 <li><a href="27_io/howto.html#5">What is this &lt;sstream&gt;/stringstreams thing?</a></li>
218 <li><a href="27_io/howto.html#6">Deriving a stream buffer</a></li>
219 <li><a href="27_io/howto.html#7">More on binary I/O</a></li>
220 <li><a href="27_io/howto.html#8">Pathetic performance? Ditch C.</a></li>
221 <li><a href="27_io/howto.html#9">Threads and I/O</a></li>
664ce870 222 <li><a href="27_io/howto.html#10">Which header?</a></li>
e7cc090e 223 <li><a href="27_io/howto.html#11">Using FILE*s and file descriptors with IOStreams</a></li>
51122a42 224 </ul>
64a6f971 225 </li>
51122a42 226
c2ba9709 227 <li>Extensions
51122a42 228 <ul>
c2ba9709 229 <li><a href="ext/howto.html#4">Compile-time checks</a></li>
c60cd1dc
BK
230 <li><a href="ext/debug_mode.html">Debug mode</a></li>
231 <li><a href="ext/parallel_mode.html">Parallel mode</a></li>
232 <li> Allocators
4dd9d9db 233 <ul>
1c86f39d 234 <li><a href="ext/mt_allocator.html"><code>__mt_alloc</code> </a></li>
4dd9d9db
BK
235 <li><a href="ext/ballocator_doc.html">Bitmap Allocator</a></li>
236 </ul>
c60cd1dc 237 </li>
4dd9d9db 238
c60cd1dc 239 <li> Containers
4dd9d9db
BK
240 <ul>
241 <li><a href="ext/pb_ds/index.html">Policy Based Data Structures</a></li>
242 <li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li>
243 </ul>
c60cd1dc 244 </li>
4dd9d9db 245
c60cd1dc 246 <li> Algorithms
4dd9d9db
BK
247<ul>
248 <li><a href="ext/sgiexts.html">HP/SGI STL Extensions</a></li>
249</ul>
c60cd1dc 250</li>
4dd9d9db 251
c60cd1dc 252 <li> Input/Output
4dd9d9db
BK
253<ul>
254 <li><a href="27_io/howto.html#11">Derived filebuf classes</a></li>
255</ul>
c60cd1dc 256</li>
fc57e2c7 257 <li><a href="ext/../18_support/howto.html#6">Demangling</a></li>
79e79067 258 <li><a href="ext/concurrence.html">Concurrency: Threads and Atomics</a></li>
51122a42 259 </ul>
64a6f971 260 </li>
51122a42 261
4dd9d9db
BK
262 <li>Appendix
263 <ul>
c60cd1dc
BK
264
265 <li>A. <a name="5">Contributing and Maintenance</a>
64a6f971
JW
266<ul>
267 <li><a href="17_intro/contribute.html">Contributor checklist</a></li>
4dd9d9db 268 <li><a href="http://gcc.gnu.org/svnwrite.html">Getting write access
e1bff39a 269 (look for &quot;Write after approval&quot;)</a></li>
c60cd1dc 270 <li><a href="17_intro/BADNAMES">Identifier blacklist</a>
64a6f971 271 - names to avoid because of potential collisions</li>
4dd9d9db 272 <li><a href="17_intro/C++STYLE">Coding style, by example</a></li>
c60cd1dc
BK
273
274 <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>
275 <li><a href="17_intro/DESIGN">Design Notes</a>
276 - notes on the implementation plan</li>
277 <li><a href="17_intro/configury.html">Editing configure and make files</a></li>
4dd9d9db 278 <li>Header policy, namespace map, API conventions</li>
64a6f971 279</ul>
c60cd1dc 280</li>
c9fe10db 281
c60cd1dc 282 <li>B. Porting
4dd9d9db
BK
283
284<ul>
285 <li><a href="17_intro/porting.html">Porting to new hardware or operating systems.</a></li>
286 <li><a href="17_intro/abi.html">ABI Policy and Guidelines</a></li>
287 <li><a href="17_intro/api.html">API Evolution and Deprecation History</a></li>
79e79067 288 <li><a href="17_intro/backwards_compatibility.html">Backwards Compatibility</a></li>
4dd9d9db 289</ul>
c60cd1dc
BK
290</li>
291
292 <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>
4dd9d9db 293
4dd9d9db
BK
294 </ul>
295 </li>
4dd9d9db
BK
296 </ul>
297<!-- endlist -->
298
c9fe10db 299
4dd9d9db
BK
300<hr />
301<br />
302<h2><a name="4">Source-Level Documentation</a></h2>
303<p>The library sources have been specially formatted so that with the
304 proper invocation of another tool (Doxygen), a set of HTML pages
305 are generated from the sources files themselves. The resultant
306 documentation is referred to as Source-Level Documentation, and is
307 useful for examining the signatures of public member functions for
308 the library classes, finding out what is in a particular include
309 file, looking at inheritance diagrams, etc.
310</p>
311<p>The source-level documentation for the most recent releases can
312 be viewed online:
313</p>
314<ul>
315 <li><a href="libstdc++-html-USERS-3.4/index.html">for the 3.4 release</a></li>
316 <li><a href="libstdc++-html-USERS-4.1/index.html">for the 4.1 release</a></li>
317 <li><a href="libstdc++-html-USERS-4.2/index.html">for the 4.2 release</a></li>
318 <li><a href="latest-doxygen/index.html">&quot;the latest collection&quot;</a>
319 (for the main development tree; see the date on the first page)
320 </li>
321</ul>
322<p>This generated HTML collection, as above, is also available for download in
323 the libstdc++ snapshots directory at
324 <code>&lt;URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/&gt;</code>.
325 You will almost certainly need to use one of the
326 <a href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
327 the tarball. After unpacking, simply load libstdc++-html-*/index.html
328 into a browser.
329</p>
330<p>Documentation for older releases is available for download only, not
331 online viewing.
332</p>
333<p>In addition, an initial set of man pages are also available in the
334 same place as the HTML collections. Start with C++Intro(3).
335</p>
336
337<hr />
338<br />
aaf0ca6f 339<h2><a name="7" href="faq/index.html">Frequently Asked Questions</a></h2>
4dd9d9db
BK
340
341<hr />
342<br />
343<p><strong>All of these documents</strong> (in fact, this entire homepage set)
344 are bundled with the library source, under the <code>docs</code>
345 subdirectory, for releases and snapshots. The sole exception is the
346 automatically-generated source documentation, available separately.
347</p>
348
349<!-- ####################################################### -->
0435269a 350<p>Return <a href="http://gcc.gnu.org/libstdc++/">to the libstdc++ homepage</a>.</p>
c9fe10db 351
4dd9d9db 352
6364054f 353<hr />
0435269a 354<p class="fineprint"><em>
c9fe10db
PE
355See <a href="17_intro/license.html">license.html</a> for copying conditions.
356Comments and suggestions are welcome, and may be sent to
0435269a 357<a href="mailto:libstdc++@gcc.gnu.org">the libstdc++ mailing list</a>.
c9fe10db
PE
358</em></p>
359
5d5e5e4e
PE
360</body>
361</html>