<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/><title>PartIII. Extensions</title><metaname="generator"content="DocBook XSL-NS Stylesheets V1.78.1"/><metaname="keywords"content="ISO C++, library"/><metaname="keywords"content="ISO C++, runtime, library"/><linkrel="home"href="../index.html"title="The GNU C++ Library"/><linkrel="up"href="index.html"title="The GNU C++ Library Manual"/><linkrel="prev"href="io_and_c.html"title="Interacting with C"/><linkrel="next"href="ext_preface.html"title=""/></head><body><divclass="navheader"><tablewidth="100%"summary="Navigation header"><tr><thcolspan="3"align="center">PartIII.
</th></tr><tr><tdwidth="20%"align="left"><aaccesskey="p"href="io_and_c.html">Prev</a></td><thwidth="60%"align="center">The GNU C++ Library Manual</th><tdwidth="20%"align="right"><aaccesskey="n"href="ext_preface.html">Next</a></td></tr></table><hr/></div><divclass="part"><divclass="titlepage"><div><div><h1class="title"><aid="manual.ext"></a>PartIII.
</h1></div></div></div><divclass="toc"><p><strong>Table of Contents</strong></p><dlclass="toc"><dt><spanclass="preface"><ahref="ext_preface.html"></a></span></dt><dt><spanclass="chapter"><ahref="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><spanclass="chapter"><ahref="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><spanclass="section"><ahref="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><spanclass="section"><ahref="debug_mode_semantics.html">Semantics</a></span></dt><dt><spanclass="section"><ahref="debug_mode_using.html">Using</a></span></dt><dd><dl><dt><spanclass="section"><ahref="debug_mode_using.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><spanclass="section"><ahref="debug_mode_using.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><spanclass="section"><ahref="debug_mode_design.html">Design</a></span></dt><dd><dl><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.goals">Goals</a></span></dt><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><spanclass="section"><ahref="debug_mode_design.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><spanclass="section"><ahref="debug_mode_design.html#methods.coexistence.link">Link- and run-time coexistence of release- and
debug-mode components</a></span></dt><dt><spanclass="section"><ahref="debug_mode_design.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><spanclass="section"><ahref="debug_mode_design.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></dd><dt><spanclass="chapter"><ahref="parallel_mode.html">18. Parallel Mode</a></span></dt><dd><dl><dt><spanclass="section"><ahref="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><spanclass="section"><ahref="parallel_mode_semantics.html">Semantics</a></span></dt><dt><spanclass="section"><ahref="parallel_mode_using.html">Using</a></span></dt><dd><dl><dt><spanclass="section"><ahref="parallel_mode_using.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><spanclass="section"><ahref="parallel_mode_using.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><spanclass="section"><ahref="parallel_mode_using.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><spanclass="section"><ahref="parallel_mode_design.html">Design</a></span></dt><dd><dl><dt><spanclass="section"><ahref="parallel_mode_design.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><spanclass="section"><ahref="parallel_mode_design.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><spanclass="section"><ahref="parallel_mode_design.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><spanclass="section"><ahref="parallel_mode_design.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><spanclass="section"><ahref="parallel_mode_design.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><spanclass="section"><ahref="parallel_mode_design.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><spanclass="section"><ahref="parallel_mode_test.html">Testing</a></span></dt><dt><spanclass="bibliography"><ahref="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><spanclass="chapter"><ahref="profile_mode.html">19. Profile Mode</a></span></dt><dd><dl><dt><spanclass="section"><ahref="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><spanclass="section"><ahref="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><spanclass="section"><ahref="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><spanclass="section"><ahref="profile_mode_design.html">Design</a></span></dt><dd><dl><dt><spanclass="section"><ahref="profile_mode_design.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><spanclass="section"><ahref="profile_mode_design.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><spanclass="section"><ahref="profile_mode_design.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><spanclass="section"><ahref="profile_mode_design.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><spanclass="section"><ahref="profile_mode_design.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><spanclass="section"><ahref="profile_mode_design.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><spanclass="section"><ahref="profile_mode_design.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><spanclass="section"><ahref="profile_mode_api.html">Extensions for Custom Containers</a></span></dt><dt><spanclass="section"><ahref="profile_mode_cost_model.html">Empirical Cost Model</a></span></dt><dt><spanclass="section"><ahref="profile_mode_impl.html">Implementation Issues</a></span></dt><dd><dl><dt><spanclass="section"><ahref="profile_mode_impl
</a></span></dt></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_using.html#pbds.using.examples">Examples</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_using.html#pbds.using.examples.basic">Intermediate Use</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_using.html#pbds.using.examples.query">Querying with <codeclass="classname">container_traits</code></a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_using.html#pbds.using.examples.container">By Container Method</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_using.html#pbds.using.examples.container.hash">Hash-Based</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_using.html#pbds.using.examples.container.branch">Branch-Based</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_using.html#pbds.using.examples.container.priority_queue">Priority Queues</a></span></dt></dl></dd></dl></dd></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html">Design</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.concepts">Concepts</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.concepts.null_type">Null Policy Classes</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.concepts.associative_semantics">Map and Set Semantics</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#concepts.associative_semantics.set_vs_map">
Distinguishing Between Maps and Sets
</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#concepts.associative_semantics.multi">Alternatives to <codeclass="classname">std::multiset</code> and <codeclass="classname">std::multimap</code></a></span></dt></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.concepts.iterator_semantics">Iterator Semantics</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#concepts.iterator_semantics.point_and_range">Point and Range Iterators</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#concepts.iterator_semantics.both">Distinguishing Point and Range Iterators</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.concepts.invalidation">Invalidation Guarantees</a></span></dt></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.concepts.genericity">Genericity</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#concepts.genericity.tag">Tag</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#concepts.genericity.traits">Traits</a></span></dt></dl></dd></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.container">By Container</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.container.hash">hash</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.hash.interface">Interface</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.hash.details">Details</a></span></dt></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.container.tree">tree</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.tree.interface">Interface</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.tree.details">Details</a></span></dt></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.container.trie">Trie</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.trie.interface">Interface</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.trie.details">Details</a></span></dt></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.container.list">List</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.list.interface">Interface</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.list.details">Details</a></span></dt></dl></dd><dt><spanclass="section"><ahref="policy_data_structures_design.html#pbds.design.container.priority_queue">Priority Queue</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.priority_queue.interface">Interface</a></span></dt><dt><spanclass="section"><ahref="policy_data_structures_design.html#container.priority_queue.details">Details</a></span></dt></dl></dd></dl></dd></dl></dd><dt><spanclass="section"><ahref="policy_based_data_structures_test.html">Testing</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_based_data_structures_test.html#pbds.test.regression">Regression</a></span></dt><dt><spanclass="section"><ahref="policy_based_data_structures_test.html#pbds.test.performance">Performance</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_based_data_structures_test.html#performance.hash">Hash-Based</a></span></dt><dd><dl><dt><spanclass="section"><ahref="policy_based_data_structures_test.html#performance.hash.text_find">