]>
Commit | Line | Data |
---|---|---|
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> |
23 | The GNU Standard C++ Library is an ongoing <a | |
24 | href="http://gcc.gnu.org/libstdc++">project</a> to implement the ISO | |
25 | 14882 Standard C++ library as described in chapters 17 through 27 and | |
26 | annex D, extensions as described by TR1, and future C++ library | |
27 | standards still in progress. For those who want to see exactly how far | |
28 | the project has come, or just want the latest bleeding-edge code, the | |
79e79067 | 29 | up-to-date source is always publicly available over anonymous SVN, |
4dd9d9db BK |
30 | and can be browsed over the <a |
31 | href="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&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">"Hinting" 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 <sstream>/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 "Write after approval")</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">"the latest collection"</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><URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/></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 |
355 | See <a href="17_intro/license.html">license.html</a> for copying conditions. |
356 | Comments 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> |