1 <?xml version=
"1.0" encoding=
"UTF-8" standalone=
"no"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><title>The GNU C++ Library
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.75.2" /><link rel=
"home" href=
"../spine.html" title=
"The GNU C++ Library Documentation" /><link rel=
"up" href=
"../spine.html" title=
"The GNU C++ Library Documentation" /><link rel=
"prev" href=
"../spine.html" title=
"The GNU C++ Library Documentation" /><link rel=
"next" href=
"intro.html" title=
"Part I. Introduction" /></head><body><div class=
"navheader"><table width=
"100%" summary=
"Navigation header"><tr><th colspan=
"3" align=
"center">The GNU C++ Library
</th></tr><tr><td width=
"20%" align=
"left"><a accesskey=
"p" href=
"../spine.html">Prev
</a> </td><th width=
"60%" align=
"center"> </th><td width=
"20%" align=
"right"> <a accesskey=
"n" href=
"intro.html">Next
</a></td></tr></table><hr /></div><div class=
"book" title=
"The GNU C++ Library"><div class=
"titlepage"><div><div><h1 class=
"title"><a id=
"manual-index"></a>The GNU C++ Library
</h1></div><div><p class=
"copyright">Copyright ©
2009,
2010
4 <a class=
"ulink" href=
"http://www.fsf.org" target=
"_top">FSF
</a>
5 </p></div><div><div class=
"legalnotice" title=
"Legal Notice"><a id=
"id590972"></a><p>
6 <a class=
"link" href=
"license.html" title=
"License">License
</a>
7 </p></div></div></div><hr /></div><div class=
"toc"><p><b>Table of Contents
</b></p><dl><dt><span class=
"part"><a href=
"intro.html">I.
10 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"status.html">1. Status
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"status.html#manual.intro.status.iso">Implementation Status
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"status.html#status.iso.1998">C++
1998/
2003</a></span></dt><dt><span class=
"sect2"><a href=
"status.html#status.iso.200x">C++
200x
</a></span></dt><dt><span class=
"sect2"><a href=
"status.html#status.iso.tr1">C++ TR1
</a></span></dt><dt><span class=
"sect2"><a href=
"status.html#status.iso.tr24733">C++ TR
24733</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"license.html">License
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"license.html#manual.intro.status.license.gpl">The Code: GPL
</a></span></dt><dt><span class=
"sect2"><a href=
"license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bugs.html">Bugs
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bugs.html#manual.intro.status.bugs.impl">Implementation Bugs
</a></span></dt><dt><span class=
"sect2"><a href=
"bugs.html#manual.intro.status.bugs.iso">Standard Bugs
</a></span></dt></dl></dd></dl></dd><dt><span class=
"chapter"><a href=
"setup.html">2. Setup
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"setup.html#manual.intro.setup.prereq">Prerequisites
</a></span></dt><dt><span class=
"sect1"><a href=
"configure.html">Configure
</a></span></dt><dt><span class=
"sect1"><a href=
"make.html">Make
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"using.html">3. Using
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"using.html#manual.intro.using.lib">Linking Library Binary Files
</a></span></dt><dt><span class=
"sect1"><a href=
"using_headers.html">Headers
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"using_headers.html#manual.intro.using.headers.all">Header Files
</a></span></dt><dt><span class=
"sect2"><a href=
"using_headers.html#manual.intro.using.headers.mixing">Mixing Headers
</a></span></dt><dt><span class=
"sect2"><a href=
"using_headers.html#manual.intro.using.headers.cheaders">The C Headers and
<code class=
"code">namespace std
</code></a></span></dt><dt><span class=
"sect2"><a href=
"using_headers.html#manual.intro.using.headers.pre">Precompiled Headers
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"using_namespaces.html">Namespaces
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces
</a></span></dt><dt><span class=
"sect2"><a href=
"using_namespaces.html#manual.intro.using.namespaces.std">namespace std
</a></span></dt><dt><span class=
"sect2"><a href=
"using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"using_macros.html">Macros
</a></span></dt><dt><span class=
"sect1"><a href=
"using_concurrency.html">Concurrency
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites
</a></span></dt><dt><span class=
"sect2"><a href=
"using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety
</a></span></dt><dt><span class=
"sect2"><a href=
"using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics
</a></span></dt><dt><span class=
"sect2"><a href=
"using_concurrency.html#manual.intro.using.concurrency.io">IO
</a></span></dt><dt><span class=
"sect2"><a href=
"using_concurrency.html#manual.intro.using.concurrency.containers">Containers
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"using_exceptions.html">Exceptions
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"using_exceptions.html#intro.using.exception.safety">Exception Safety
</a></span></dt><dt><span class=
"sect2"><a href=
"using_exceptions.html#intro.using.exception.propagating">Exception Neutrality
</a></span></dt><dt><span class=
"sect2"><a href=
"using_exceptions.html#intro.using.exception.no">Doing without
</a></span></dt><dt><span class=
"sect2"><a href=
"using_exceptions.html#intro.using.exception.compat">Compatibility
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"debug.html">Debugging Support
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"debug.html#debug.compiler">Using
<span class=
"command"><strong>g++
</strong></span></a></span></dt><dt><span class=
"sect2"><a href=
"debug.html#debug.req">Debug Versions of Library Binary Files
</a></span></dt><dt><span class=
"sect2"><a href=
"debug.html#debug.memory">Memory Leak Hunting
</a></span></dt><dt><span class=
"sect2"><a href=
"debug.html#debug.gdb">Using
<span class=
"command"><strong>gdb
</strong></span></a></span></dt><dt><span class=
"sect2"><a href=
"debug.html#debug.exceptions">Tracking uncaught exceptions
</a></span></dt><dt><span class=
"sect2"><a href=
"debug.html#debug.debug_mode">Debug Mode
</a></span></dt><dt><span class=
"sect2"><a href=
"debug.html#debug.compile_time_checks">Compile Time Checking
</a></span></dt><dt><span class=
"sect2"><a href=
"debug.html#debug.profile_mode">Profile-based Performance Analysis
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class=
"part"><a href=
"support.html">II.
13 </a></span></dt><dd><dl><dt><span class=
"preface"><a href=
"bk01pt02pr01.html"></a></span></dt><dt><span class=
"chapter"><a href=
"fundamental_types.html">4. Types
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"fundamental_types.html#manual.support.types.fundamental">Fundamental Types
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt02ch04s02.html">Numeric Properties
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt02ch04s03.html">NULL
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"dynamic_memory.html">5. Dynamic Memory
</a></span></dt><dt><span class=
"chapter"><a href=
"termination.html">6. Termination
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"termination.html#support.termination.handlers">Termination Handlers
</a></span></dt><dt><span class=
"sect1"><a href=
"verbose_termination.html">Verbose Terminate Handler
</a></span></dt></dl></dd></dl></dd><dt><span class=
"part"><a href=
"diagnostics.html">III.
16 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"exceptions.html">7. Exceptions
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"exceptions.html#manual.diagnostics.exceptions.hierarchy">Exception Classes
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt03ch07s02.html">Adding Data to Exceptions
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"bk01pt03ch08.html">8. Concept Checking
</a></span></dt></dl></dd><dt><span class=
"part"><a href=
"utilities.html">IV.
19 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"functors.html">9. Functors
</a></span></dt><dt><span class=
"chapter"><a href=
"pairs.html">10. Pairs
</a></span></dt><dt><span class=
"chapter"><a href=
"memory.html">11. Memory
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"memory.html#manual.util.memory.allocator">Allocators
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"memory.html#allocator.req">Requirements
</a></span></dt><dt><span class=
"sect2"><a href=
"memory.html#allocator.design_issues">Design Issues
</a></span></dt><dt><span class=
"sect2"><a href=
"memory.html#allocator.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"memory.html#allocator.using">Using a Specific Allocator
</a></span></dt><dt><span class=
"sect2"><a href=
"memory.html#allocator.custom">Custom Allocators
</a></span></dt><dt><span class=
"sect2"><a href=
"memory.html#allocator.ext">Extension Allocators
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"auto_ptr.html">auto_ptr
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"auto_ptr.html#auto_ptr.limitations">Limitations
</a></span></dt><dt><span class=
"sect2"><a href=
"auto_ptr.html#auto_ptr.using">Use in Containers
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"shared_ptr.html">shared_ptr
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"shared_ptr.html#shared_ptr.req">Requirements
</a></span></dt><dt><span class=
"sect2"><a href=
"shared_ptr.html#shared_ptr.design_issues">Design Issues
</a></span></dt><dt><span class=
"sect2"><a href=
"shared_ptr.html#shared_ptr.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"shared_ptr.html#shared_ptr.using">Use
</a></span></dt><dt><span class=
"sect2"><a href=
"shared_ptr.html#shared_ptr.ack">Acknowledgments
</a></span></dt></dl></dd></dl></dd><dt><span class=
"chapter"><a href=
"traits.html">12. Traits
</a></span></dt></dl></dd><dt><span class=
"part"><a href=
"strings.html">V.
22 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"bk01pt05ch13.html">13. String Classes
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"bk01pt05ch13.html#strings.string.simple">Simple Transformations
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt05ch13s02.html">Case Sensitivity
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt05ch13s03.html">Arbitrary Character Types
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt05ch13s04.html">Tokenizing
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt05ch13s05.html">Shrink to Fit
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt05ch13s06.html">CString (MFC)
</a></span></dt></dl></dd></dl></dd><dt><span class=
"part"><a href=
"localization.html">VI.
25 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"locales.html">14. Locales
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"locales.html#manual.localization.locales.locale">locale
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"locales.html#locales.locale.req">Requirements
</a></span></dt><dt><span class=
"sect2"><a href=
"locales.html#locales.locale.design">Design
</a></span></dt><dt><span class=
"sect2"><a href=
"locales.html#locales.locale.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"locales.html#locales.locale.future">Future
</a></span></dt></dl></dd></dl></dd><dt><span class=
"chapter"><a href=
"facets.html">15. Facets aka Categories
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"facets.html#manual.localization.facet.ctype">ctype
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"facets.html#facet.ctype.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"facets.html#facet.ctype.future">Future
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"codecvt.html">codecvt
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"codecvt.html#facet.codecvt.req">Requirements
</a></span></dt><dt><span class=
"sect2"><a href=
"codecvt.html#facet.codecvt.design">Design
</a></span></dt><dt><span class=
"sect2"><a href=
"codecvt.html#facet.codecvt.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"codecvt.html#facet.codecvt.use">Use
</a></span></dt><dt><span class=
"sect2"><a href=
"codecvt.html#facet.codecvt.future">Future
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"messages.html">messages
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"messages.html#facet.messages.req">Requirements
</a></span></dt><dt><span class=
"sect2"><a href=
"messages.html#facet.messages.design">Design
</a></span></dt><dt><span class=
"sect2"><a href=
"messages.html#facet.messages.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"messages.html#facet.messages.use">Use
</a></span></dt><dt><span class=
"sect2"><a href=
"messages.html#facet.messages.future">Future
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class=
"part"><a href=
"containers.html">VII.
28 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"sequences.html">16. Sequences
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"sequences.html#containers.sequences.list">list
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"sequences.html#sequences.list.size">list::size() is O(n)
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"vector.html">vector
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"vector.html#sequences.vector.management">Space Overhead Management
</a></span></dt></dl></dd></dl></dd><dt><span class=
"chapter"><a href=
"associative.html">17. Associative
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"associative.html#containers.associative.insert_hints">Insertion Hints
</a></span></dt><dt><span class=
"sect1"><a href=
"bitset.html">bitset
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bitset.html#associative.bitset.size_variable">Size Variable
</a></span></dt><dt><span class=
"sect2"><a href=
"bitset.html#associative.bitset.type_string">Type String
</a></span></dt></dl></dd></dl></dd><dt><span class=
"chapter"><a href=
"containers_and_c.html">18. Interacting with C
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"containers_and_c.html#containers.c.vs_array">Containers vs. Arrays
</a></span></dt></dl></dd></dl></dd><dt><span class=
"part"><a href=
"iterators.html">VIII.
31 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"bk01pt08ch19.html">19. Predefined
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"bk01pt08ch19.html#iterators.predefined.vs_pointers">Iterators vs. Pointers
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt08ch19s02.html">One Past the End
</a></span></dt></dl></dd></dl></dd><dt><span class=
"part"><a href=
"algorithms.html">IX.
34 </a></span></dt><dd><dl><dt><span class=
"preface"><a href=
"bk01pt09pr02.html"></a></span></dt><dt><span class=
"chapter"><a href=
"bk01pt09ch20.html">20. Mutating
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"bk01pt09ch20.html#algorithms.mutating.swap"><code class=
"function">swap
</code></a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt09ch20.html#algorithms.swap.specializations">Specializations
</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class=
"part"><a href=
"numerics.html">X.
37 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"complex.html">21. Complex
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"complex.html#numerics.complex.processing">complex Processing
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"generalized_numeric_operations.html">22. Generalized Operations
</a></span></dt><dt><span class=
"chapter"><a href=
"numerics_and_c.html">23. Interacting with C
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"numerics_and_c.html#numerics.c.array">Numerics vs. Arrays
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt10ch23s02.html">C99
</a></span></dt></dl></dd></dl></dd><dt><span class=
"part"><a href=
"io.html">XI.
40 </a></span></dt><dd><dl><dt><span class=
"chapter"><a href=
"iostream_objects.html">24. Iostream Objects
</a></span></dt><dt><span class=
"chapter"><a href=
"streambufs.html">25. Stream Buffers
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"streambufs.html#io.streambuf.derived">Derived streambuf Classes
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt11ch25s02.html">Buffering
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"stringstreams.html">26. Memory Based Streams
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"stringstreams.html#manual.io.memstreams.compat">Compatibility With strstream
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"fstreams.html">27. File Based Streams
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"fstreams.html#manual.io.filestreams.copying_a_file">Copying a File
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt11ch27s02.html">Binary Input and Output
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"io_and_c.html">28. Interacting with C
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"io_and_c.html#manual.io.c.FILE">Using FILE* and file descriptors
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt11ch28s02.html">Performance
</a></span></dt></dl></dd></dl></dd><dt><span class=
"part"><a href=
"extensions.html">XII.
43 </a></span></dt><dd><dl><dt><span class=
"preface"><a href=
"bk01pt12pr03.html"></a></span></dt><dt><span class=
"chapter"><a href=
"ext_compile_checks.html">29. Compile Time Checks
</a></span></dt><dt><span class=
"chapter"><a href=
"debug_mode.html">30. Debug Mode
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"debug_mode.html#manual.ext.debug_mode.intro">Intro
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch30s02.html">Semantics
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch30s03.html">Using
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch30s03.html#debug_mode.using.mode">Using the Debug Mode
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch30s03.html#debug_mode.using.specific">Using a Specific Debug Container
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch30s04.html">Design
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch30s04.html#debug_mode.design.goals">Goals
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch30s04.html#debug_mode.design.methods">Methods
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch30s04.html#debug_mode.design.other">Other Implementations
</a></span></dt></dl></dd></dl></dd><dt><span class=
"chapter"><a href=
"parallel_mode.html">31. Parallel Mode
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"parallel_mode.html#manual.ext.parallel_mode.intro">Intro
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch31s02.html">Semantics
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch31s03.html">Using
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch31s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch31s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch31s03.html#parallel_mode.using.specific">Using Specific Parallel Components
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch31s04.html">Design
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch31s04.html#parallel_mode.design.intro">Interface Basics
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch31s04.html#parallel_mode.design.tuning">Configuration and Tuning
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch31s04.html#parallel_mode.design.impl">Implementation Namespaces
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch31s05.html">Testing
</a></span></dt><dt><span class=
"bibliography"><a href=
"parallel_mode.html#parallel_mode.biblio">Bibliography
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"profile_mode.html">32. Profile Mode
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"profile_mode.html#manual.ext.profile_mode.intro">Intro
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode
</a></span></dt><dt><span class=
"sect2"><a href=
"profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch32s02.html">Design
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch32s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s02.html#manual.ext.profile_mode.design.cost-model">Cost Model
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s02.html#manual.ext.profile_mode.design.reports">Reports
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s02.html#manual.ext.profile_mode.design.testing">Testing
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch32s03.html">Extensions for Custom Containers
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch32s04.html">Empirical Cost Model
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch32s05.html">Implementation Issues
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch32s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch32s06.html">Developer Information
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch32s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch32s07.html">Diagnostics
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch32s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s07.html#manual.ext.profile_mode.analysis.containers">Containers
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s07.html#manual.ext.profile_mode.analysis.locality">Data Locality
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch32s07.html#manual.ext.profile_mode.analysis.statistics">Statistics
</a></span></dt></dl></dd><dt><span class=
"bibliography"><a href=
"profile_mode.html#profile_mode.biblio">Bibliography
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"ext_allocators.html">33. Allocators
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"ext_allocators.html#manual.ext.allocator.mt">mt_allocator
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"ext_allocators.html#allocator.mt.intro">Intro
</a></span></dt><dt><span class=
"sect2"><a href=
"ext_allocators.html#allocator.mt.design_issues">Design Issues
</a></span></dt><dt><span class=
"sect2"><a href=
"ext_allocators.html#allocator.mt.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"ext_allocators.html#allocator.mt.example_single">Single Thread Example
</a></span></dt><dt><span class=
"sect2"><a href=
"ext_allocators.html#allocator.mt.example_multi">Multiple Thread Example
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bitmap_allocator.html">bitmap_allocator
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bitmap_allocator.html#allocator.bitmap.design">Design
</a></span></dt><dt><span class=
"sect2"><a href=
"bitmap_allocator.html#allocator.bitmap.impl">Implementation
</a></span></dt></dl></dd></dl></dd><dt><span class=
"chapter"><a href=
"ext_containers.html">34. Containers
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"ext_containers.html#manual.ext.containers.pbds">Policy Based Data Structures
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch34s02.html">HP/SGI
</a></span></dt><dt><span class=
"sect1"><a href=
"bk01pt12ch34s03.html">Deprecated HP/SGI
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"ext_utilities.html">35. Utilities
</a></span></dt><dt><span class=
"chapter"><a href=
"ext_algorithms.html">36. Algorithms
</a></span></dt><dt><span class=
"chapter"><a href=
"ext_numerics.html">37. Numerics
</a></span></dt><dt><span class=
"chapter"><a href=
"ext_iterators.html">38. Iterators
</a></span></dt><dt><span class=
"chapter"><a href=
"ext_io.html">39. Input and Output
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs
</a></span></dt></dl></dd><dt><span class=
"chapter"><a href=
"ext_demangling.html">40. Demangling
</a></span></dt><dt><span class=
"chapter"><a href=
"ext_concurrency.html">41. Concurrency
</a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"ext_concurrency.html#manual.ext.concurrency.design">Design
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes
</a></span></dt><dt><span class=
"sect2"><a href=
"ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch41s02.html">Implementation
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"bk01pt12ch41s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions
</a></span></dt><dt><span class=
"sect2"><a href=
"bk01pt12ch41s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"bk01pt12ch41s03.html">Use
</a></span></dt></dl></dd></dl></dd><dt><span class=
"appendix"><a href=
"appendix_contributing.html">A.
46 </a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"appendix_contributing.html#contrib.list">Contributor Checklist
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"appendix_contributing.html#list.reading">Reading
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_contributing.html#list.copyright">Assignment
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_contributing.html#list.getting">Getting Sources
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_contributing.html#list.patches">Submitting Patches
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"source_organization.html">Directory Layout and Source Conventions
</a></span></dt><dt><span class=
"sect1"><a href=
"source_code_style.html">Coding Style
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"source_code_style.html#coding_style.bad_identifiers">Bad Identifiers
</a></span></dt><dt><span class=
"sect2"><a href=
"source_code_style.html#coding_style.example">By Example
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"documentation_style.html">Documentation Style
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"documentation_style.html#doc_style.doxygen">Doxygen
</a></span></dt><dt><span class=
"sect2"><a href=
"documentation_style.html#doc_style.docbook">Docbook
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"source_design_notes.html">Design Notes
</a></span></dt></dl></dd><dt><span class=
"appendix"><a href=
"appendix_porting.html">B.
47 Porting and Maintenance
49 </a></span></dt><dd><dl><dt><span class=
"sect1"><a href=
"appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"appendix_porting.html#build_hacking.prereq">Prerequisites
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_porting.html#build_hacking.map">Overview: What Comes from Where
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_porting.html#build_hacking.scripts">Storing Information in non-AC files (like configure.host)
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_porting.html#build_hacking.conventions">Coding and Commenting Conventions
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_porting.html#build_hacking.acinclude">The acinclude.m4 layout
</a></span></dt><dt><span class=
"sect2"><a href=
"appendix_porting.html#build_hacking.enable"><code class=
"constant">GLIBCXX_ENABLE
</code>, the
<code class=
"literal">--enable
</code> maker
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"internals.html">Porting to New Hardware or Operating Systems
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"internals.html#internals.os">Operating System
</a></span></dt><dt><span class=
"sect2"><a href=
"internals.html#internals.cpu">CPU
</a></span></dt><dt><span class=
"sect2"><a href=
"internals.html#internals.char_types">Character Types
</a></span></dt><dt><span class=
"sect2"><a href=
"internals.html#internals.thread_safety">Thread Safety
</a></span></dt><dt><span class=
"sect2"><a href=
"internals.html#internals.numeric_limits">Numeric Limits
</a></span></dt><dt><span class=
"sect2"><a href=
"internals.html#internals.libtool">Libtool
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"test.html">Test
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"test.html#test.organization">Organization
</a></span></dt><dt><span class=
"sect2"><a href=
"test.html#test.run">Running the Testsuite
</a></span></dt><dt><span class=
"sect2"><a href=
"test.html#test.new_tests">Writing a new test case
</a></span></dt><dt><span class=
"sect2"><a href=
"test.html#test.harness">Test Harness and Utilities
</a></span></dt><dt><span class=
"sect2"><a href=
"test.html#test.special">Special Topics
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"abi.html">ABI Policy and Guidelines
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"abi.html#abi.cxx_interface">The C++ Interface
</a></span></dt><dt><span class=
"sect2"><a href=
"abi.html#abi.versioning">Versioning
</a></span></dt><dt><span class=
"sect2"><a href=
"abi.html#abi.changes_allowed">Allowed Changes
</a></span></dt><dt><span class=
"sect2"><a href=
"abi.html#abi.changes_no">Prohibited Changes
</a></span></dt><dt><span class=
"sect2"><a href=
"abi.html#abi.impl">Implementation
</a></span></dt><dt><span class=
"sect2"><a href=
"abi.html#abi.testing">Testing
</a></span></dt><dt><span class=
"sect2"><a href=
"abi.html#abi.issues">Outstanding Issues
</a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"api.html">API Evolution and Deprecation History
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"api.html#api.rel_300"><code class=
"constant">3.0</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_310"><code class=
"constant">3.1</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_320"><code class=
"constant">3.2</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_330"><code class=
"constant">3.3</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_340"><code class=
"constant">3.4</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_400"><code class=
"constant">4.0</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_410"><code class=
"constant">4.1</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_420"><code class=
"constant">4.2</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_430"><code class=
"constant">4.3</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_440"><code class=
"constant">4.4</code></a></span></dt><dt><span class=
"sect2"><a href=
"api.html#api.rel_450"><code class=
"constant">4.5</code></a></span></dt></dl></dd><dt><span class=
"sect1"><a href=
"backwards.html">Backwards Compatibility
</a></span></dt><dd><dl><dt><span class=
"sect2"><a href=
"backwards.html#backwards.first">First
</a></span></dt><dt><span class=
"sect2"><a href=
"backwards.html#backwards.second">Second
</a></span></dt><dt><span class=
"sect2"><a href=
"backwards.html#backwards.third">Third
</a></span></dt></dl></dd></dl></dd><dt><span class=
"appendix"><a href=
"appendix_free.html">C.
50 Free Software Needs Free Documentation
52 </a></span></dt><dt><span class=
"appendix"><a href=
"appendix_gpl.html">D.
53 <acronym class=
"acronym">GNU
</acronym> General Public License version
3
54 </a></span></dt><dt><span class=
"appendix"><a href=
"appendix_gfdl.html">E. GNU Free Documentation License
</a></span></dt><dt><span class=
"index"><a href=
"bk01ix01.html">Index
</a></span></dt></dl></div><div class=
"list-of-tables"><p><b>List of Tables
</b></p><dl><dt>1.1.
<a href=
"status.html#id601163">C++
1998/
2003 Implementation Status
</a></dt><dt>1.2.
<a href=
"status.html#id552624">C++
200x Implementation Status
</a></dt><dt>1.3.
<a href=
"status.html#id561647">C++ TR1 Implementation Status
</a></dt><dt>1.4.
<a href=
"status.html#id529241">C++ TR
24733 Implementation Status
</a></dt><dt>3.1.
<a href=
"using_headers.html#id529295">C++
1998 Library Headers
</a></dt><dt>3.2.
<a href=
"using_headers.html#id540784">C++
1998 Library Headers for C Library Facilities
</a></dt><dt>3.3.
<a href=
"using_headers.html#id541742">C++
200x Library Headers
</a></dt><dt>3.4.
<a href=
"using_headers.html#id539650">C++
200x Library Headers for C Library Facilities
</a></dt><dt>3.5.
<a href=
"using_headers.html#id604446">C++ TR
1 Library Headers
</a></dt><dt>3.6.
<a href=
"using_headers.html#id550411">C++ TR
1 Library Headers for C Library Facilities
</a></dt><dt>3.7.
<a href=
"using_headers.html#id554833">C++ TR
24733 Decimal Floating-Point Header
</a></dt><dt>3.8.
<a href=
"using_headers.html#id519106">C++ ABI Headers
</a></dt><dt>3.9.
<a href=
"using_headers.html#id526105">Extension Headers
</a></dt><dt>3.10.
<a href=
"using_headers.html#id605274">Extension Debug Headers
</a></dt><dt>3.11.
<a href=
"using_headers.html#id538651">Extension Profile Headers
</a></dt><dt>3.12.
<a href=
"using_headers.html#id626565">Extension Parallel Headers
</a></dt><dt>30.1.
<a href=
"bk01pt12ch30s03.html#id572066">Debugging Containers
</a></dt><dt>30.2.
<a href=
"bk01pt12ch30s03.html#id639572">Debugging Containers C++
0x
</a></dt><dt>31.1.
<a href=
"bk01pt12ch31s03.html#id569356">Parallel Algorithms
</a></dt><dt>32.1.
<a href=
"bk01pt12ch32s02.html#id638904">Code Location
</a></dt><dt>32.2.
<a href=
"bk01pt12ch32s07.html#id535845">Diagnostics
</a></dt><dt>33.1.
<a href=
"bitmap_allocator.html#id575954">Bitmap Allocator Memory Map
</a></dt><dt>A
.1.
<a href=
"documentation_style.html#id638510">HTML to Docbook XML markup comparison
</a></dt><dt>A
.2.
<a href=
"documentation_style.html#id514390">Docbook XML Element Use
</a></dt><dt>B
.1.
<a href=
"api.html#id621452">Extension Allocators
</a></dt><dt>B
.2.
<a href=
"api.html#id574587">Extension Allocators Continued
</a></dt></dl></div></div><div class=
"navfooter"><hr /><table width=
"100%" summary=
"Navigation footer"><tr><td width=
"40%" align=
"left"><a accesskey=
"p" href=
"../spine.html">Prev
</a> </td><td width=
"20%" align=
"center"> </td><td width=
"40%" align=
"right"> <a accesskey=
"n" href=
"intro.html">Next
</a></td></tr><tr><td width=
"40%" align=
"left" valign=
"top">The GNU C++ Library Documentation
</td><td width=
"20%" align=
"center"><a accesskey=
"h" href=
"../spine.html">Home
</a></td><td width=
"40%" align=
"right" valign=
"top"> Part I.
57 </td></tr></table></div></body></html>