summaryrefslogtreecommitdiffstats
path: root/languages/cpp
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2014-10-02 14:20:04 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2014-10-02 14:20:04 +0900
commit1f13ee1c6326e07d44543811ead3c163aa9eb8c2 (patch)
tree4b53cc5e39f42a97f301e249942c88f19d50c520 /languages/cpp
parent71274a73929dd42781dee71c64b4b2a65c1795fa (diff)
downloadtdevelop-1f13ee1c6326e07d44543811ead3c163aa9eb8c2.tar.gz
tdevelop-1f13ee1c6326e07d44543811ead3c163aa9eb8c2.zip
Updated C++ Annotations TDevelop documentation toc file. This relates to bug 1859.
Diffstat (limited to 'languages/cpp')
-rw-r--r--languages/cpp/doc/cppannotations.toc1111
1 files changed, 728 insertions, 383 deletions
diff --git a/languages/cpp/doc/cppannotations.toc b/languages/cpp/doc/cppannotations.toc
index e4d538c5..7631c681 100644
--- a/languages/cpp/doc/cppannotations.toc
+++ b/languages/cpp/doc/cppannotations.toc
@@ -3,450 +3,795 @@
<title>C++ Annotations</title>
<base href="http://www.icce.rug.nl/documents/cplusplus/"/>
-<tocsect1 name="Chapter 1: Overview of the chapters" url="cplusplus01.html#l1" />
+<tocsect1 name="Chapter 1: Overview Of The Chapters" url="cplusplus01.html#l1"/>
+
<tocsect1 name="Chapter 2: Introduction" url="cplusplus02.html#l2">
<tocsect2 name="2.1: What's new in the C++ Annotations" url="cplusplus02.html#l3"/>
- <tocsect2 name="2.2: Free Lectures in C++" url="cplusplus02.html#l4"/>
- <tocsect2 name="2.3: The history of C++" url="cplusplus02.html#l5">
- <tocsect3 name="2.3.1: History of the C++ Annotations" url="cplusplus02.html#l6"/>
- <tocsect3 name="2.3.2: Compiling a C program by a C++ compiler" url="cplusplus02.html#l7"/>
- <tocsect3 name="2.3.3: Compiling a C++ program" url="cplusplus02.html#l8">
- <tocsect4 name="2.3.3.1: C++ under MS-Windows" url="cplusplus02.html#l9"/>
- <tocsect4 name="2.3.3.2: Compiling a C++ source text" url="cplusplus02.html#l10"/>
+ <tocsect2 name="2.2: C++'s history" url="cplusplus02.html#l4">
+ <tocsect3 name="2.2.1: History of the C++ Annotations" url="cplusplus02.html#l5"/>
+ <tocsect3 name="2.2.2: Compiling a C program using a C++ compiler" url="cplusplus02.html#l6"/>
+ <tocsect3 name="2.2.3: Compiling a C++ program" url="cplusplus02.html#l7">
+ <tocsect4 name="2.2.3.1: C++ under MS-Windows" url="cplusplus02.html#l8"/>
+ <tocsect4 name="2.2.3.2: Compiling a C++ source text" url="cplusplus02.html#l9"/>
</tocsect3>
</tocsect2>
- <tocsect2 name="2.4: Advantages and pretensions of C++" url="cplusplus02.html#l11"/>
- <tocsect2 name="2.5: What is Object-Oriented Programming?" url="cplusplus02.html#l12"/>
- <tocsect2 name="2.6: Differences between C and C++" url="cplusplus02.html#l13">
+ <tocsect2 name="2.3: C++: advantages and claims" url="cplusplus02.html#l10"/>
+ <tocsect2 name="2.4: What is Object-Oriented Programming?" url="cplusplus02.html#l11"/>
+ <tocsect2 name="2.5: Differences between C and C++" url="cplusplus02.html#l12">
+ <tocsect3 name="2.5.1: The function `main'" url="cplusplus02.html#l13"/>
+ <tocsect3 name="2.5.2: End-of-line comment" url="cplusplus02.html#l14"/>
+ <tocsect3 name="2.5.3: Strict type checking" url="cplusplus02.html#l15"/>
+ <tocsect3 name="2.5.4: Function Overloading" url="cplusplus02.html#l16"/>
+ <tocsect3 name="2.5.5: Default function arguments" url="cplusplus02.html#l17"/>
+ <tocsect3 name="2.5.6: NULL-pointers vs. 0-pointers and nullptr" url="cplusplus02.html#l18"/>
+ <tocsect3 name="2.5.7: The `void' parameter list" url="cplusplus02.html#l19"/>
+ <tocsect3 name="2.5.8: The `#define __cplusplus'" url="cplusplus02.html#l20"/>
+ <tocsect3 name="2.5.9: Using standard C functions" url="cplusplus02.html#l21"/>
+ <tocsect3 name="2.5.10: Header files for both C and C++" url="cplusplus02.html#l22"/>
+ <tocsect3 name="2.5.11: Defining local variables" url="cplusplus02.html#l23"/>
+ <tocsect3 name="2.5.12: The keyword `typedef'" url="cplusplus02.html#l24"/>
+ <tocsect3 name="2.5.13: Functions as part of a struct" url="cplusplus02.html#l25"/>
</tocsect2>
</tocsect1>
-<tocsect1 name="Chapter 3: A first impression of C++" url="cplusplus03.html#l32">
- <tocsect2 name="3.1: More extensions to C in C++" url="cplusplus03.html#l33">
- <tocsect3 name="3.1.1: The scope resolution operator ::" url="cplusplus03.html#l34"/>
- <tocsect3 name="3.1.2: `cout', `cin' and `cerr'" url="cplusplus03.html#l35"/>
- <tocsect3 name="3.1.3: The keyword `const'" url="cplusplus03.html#l36"/>
- <tocsect3 name="3.1.4: References" url="cplusplus03.html#l37"/>
- </tocsect2>
- <tocsect2 name="3.2: Functions as part of structs" url="cplusplus03.html#l38"/>
- <tocsect2 name="3.3: Several new data types" url="cplusplus03.html#l39">
- <tocsect3 name="3.3.1: The `bool' data type" url="cplusplus03.html#l40"/>
- <tocsect3 name="3.3.2: The `wchar_t' data type" url="cplusplus03.html#l41"/>
- </tocsect2>
- <tocsect2 name="3.4: Data hiding: public, private and class" url="cplusplus03.html#l42"/>
- <tocsect2 name="3.5: Structs in C vs. structs in C++" url="cplusplus03.html#l43"/>
- <tocsect2 name="3.6: Namespaces" url="cplusplus03.html#l44">
- <tocsect3 name="3.6.1: Defining namespaces" url="cplusplus03.html#l45">
- <tocsect4 name="3.6.1.1: Declaring entities in namespaces" url="cplusplus03.html#l46"/>
- <tocsect4 name="3.6.1.2: A closed namespace " url="cplusplus03.html#l47"/>
- </tocsect3>
- <tocsect3 name="3.6.2: Referring to entities" url="cplusplus03.html#l48">
- <tocsect4 name="3.6.2.1: The `using' directive " url="cplusplus03.html#l49"/>
- <tocsect4 name="3.6.2.2: `Koenig lookup' " url="cplusplus03.html#l50"/>
- </tocsect3>
- <tocsect3 name="3.6.3: The standard namespace" url="cplusplus03.html#l51"/>
- <tocsect3 name="3.6.4: Nesting namespaces and namespace aliasing" url="cplusplus03.html#l52">
- <tocsect4 name="3.6.4.1: Defining entities outside of their namespaces" url="cplusplus03.html#l53"/>
- </tocsect3>
- </tocsect2>
+<tocsect1 name="Chapter 3: A First Impression Of C++" url="cplusplus03.html#l26">
+ <tocsect2 name="3.1: Extensions to C" url="cplusplus03.html#l27">
+ <tocsect3 name="3.1.1: Namespaces" url="cplusplus03.html#l28"/>
+ <tocsect3 name="3.1.2: The scope resolution operator ::" url="cplusplus03.html#l29"/>
+ <tocsect3 name="3.1.3: Using the keyword `const'" url="cplusplus03.html#l30"/>
+ <tocsect3 name="3.1.4: `cout', `cin', and `cerr'" url="cplusplus03.html#l31"/>
+ </tocsect2>
+ <tocsect2 name="3.2: Functions as part of structs" url="cplusplus03.html#l32">
+ <tocsect3 name="3.2.1: Data hiding: public, private and class" url="cplusplus03.html#l33"/>
+ <tocsect3 name="3.2.2: Structs in C vs. structs in C++" url="cplusplus03.html#l34"/>
+ </tocsect2>
+ <tocsect2 name="3.3: More extensions to C" url="cplusplus03.html#l35">
+ <tocsect3 name="3.3.1: References" url="cplusplus03.html#l36"/>
+ <tocsect3 name="3.3.2: Rvalue References" url="cplusplus03.html#l37"/>
+ <tocsect3 name="3.3.3: Strongly typed enumerations" url="cplusplus03.html#l38"/>
+ <tocsect3 name="3.3.4: Initializer lists" url="cplusplus03.html#l39"/>
+ <tocsect3 name="3.3.5: Type inference using `auto'" url="cplusplus03.html#l40"/>
+ <tocsect3 name="3.3.6: Defining types and 'using' declarations" url="cplusplus03.html#l41"/>
+ <tocsect3 name="3.3.7: Range-based for-loops" url="cplusplus03.html#l42"/>
+ <tocsect3 name="3.3.8: Raw String Literals" url="cplusplus03.html#l43"/>
+ </tocsect2>
+ <tocsect2 name="3.4: New language-defined data types" url="cplusplus03.html#l44">
+ <tocsect3 name="3.4.1: The data type `bool'" url="cplusplus03.html#l45"/>
+ <tocsect3 name="3.4.2: The data type `wchar_t'" url="cplusplus03.html#l46"/>
+ <tocsect3 name="3.4.3: Unicode encoding" url="cplusplus03.html#l47"/>
+ <tocsect3 name="3.4.4: The data type `long long int'" url="cplusplus03.html#l48"/>
+ <tocsect3 name="3.4.5: The data type `size_t'" url="cplusplus03.html#l49"/>
+ </tocsect2>
+ <tocsect2 name="3.5: A new syntax for casts" url="cplusplus03.html#l50">
+ <tocsect3 name="3.5.1: The `static_cast'-operator" url="cplusplus03.html#l51"/>
+ <tocsect3 name="3.5.2: The `const_cast'-operator" url="cplusplus03.html#l52"/>
+ <tocsect3 name="3.5.3: The `reinterpret_cast'-operator" url="cplusplus03.html#l53"/>
+ <tocsect3 name="3.5.4: The `dynamic_cast'-operator" url="cplusplus03.html#l54"/>
+ <tocsect3 name="3.5.5: Casting 'shared_ptr' objects" url="cplusplus03.html#l55"/>
+ </tocsect2>
+ <tocsect2 name="3.6: Keywords and reserved names in C++" url="cplusplus03.html#l56"/>
</tocsect1>
-<tocsect1 name="Chapter 4: The `string' data type" url="cplusplus04.html#l54">
- <tocsect2 name="4.1: Operations on strings" url="cplusplus04.html#l55"/>
- <tocsect2 name="4.2: Overview of operations on strings" url="cplusplus04.html#l56">
- <tocsect3 name="4.2.1: The string initializers" url="cplusplus04.html#l57"/>
- <tocsect3 name="4.2.2: The string iterators" url="cplusplus04.html#l58"/>
- <tocsect3 name="4.2.3: The string operators" url="cplusplus04.html#l59"/>
- <tocsect3 name="4.2.4: The string member functions" url="cplusplus04.html#l60"/>
+<tocsect1 name="Chapter 4: Name Spaces" url="cplusplus04.html#l57">
+ <tocsect2 name="4.1: Namespaces" url="cplusplus04.html#l58">
+ <tocsect3 name="4.1.1: Defining namespaces" url="cplusplus04.html#l59">
+ <tocsect4 name="4.1.1.1: Declaring entities in namespaces" url="cplusplus04.html#l60"/>
+ <tocsect4 name="4.1.1.2: A closed namespace" url="cplusplus04.html#l61"/>
+ </tocsect3>
+ <tocsect3 name="4.1.2: Referring to entities" url="cplusplus04.html#l62">
+ <tocsect4 name="4.1.2.1: The `using' directive" url="cplusplus04.html#l63"/>
+ <tocsect4 name="4.1.2.2: `Koenig lookup'" url="cplusplus04.html#l64"/>
+ </tocsect3>
+ <tocsect3 name="4.1.3: The standard namespace" url="cplusplus04.html#l65"/>
+ <tocsect3 name="4.1.4: Nesting namespaces and namespace aliasing" url="cplusplus04.html#l66">
+ <tocsect4 name="4.1.4.1: Defining entities outside of their namespaces" url="cplusplus04.html#l67"/>
+ </tocsect3>
</tocsect2>
</tocsect1>
-<tocsect1 name="Chapter 5: The IO-stream Library" url="cplusplus05.html#l61">
- <tocsect2 name="5.1: Iostream header files" url="cplusplus05.html#l62"/>
- <tocsect2 name="5.2: The foundation: the class `ios_base'" url="cplusplus05.html#l63"/>
- <tocsect2 name="5.3: Interfacing `streambuf' objects: the class `ios'" url="cplusplus05.html#l64">
- <tocsect3 name="5.3.1: Condition states" url="cplusplus05.html#l65"/>
- <tocsect3 name="5.3.2: Formatting output and input" url="cplusplus05.html#l66">
- <tocsect4 name="5.3.2.1: Formatting flags" url="cplusplus05.html#l67"/>
- <tocsect4 name="5.3.2.2: Format modifying member functions" url="cplusplus05.html#l68"/>
- </tocsect3>
- </tocsect2>
- <tocsect2 name="5.4: Output" url="cplusplus05.html#l69">
- <tocsect3 name="5.4.1: Basic output: the class `ostream'" url="cplusplus05.html#l70">
- <tocsect4 name="5.4.1.1: Writing to `ostream' objects" url="cplusplus05.html#l71"/>
- <tocsect4 name="5.4.1.2: `ostream' positioning" url="cplusplus05.html#l72"/>
- <tocsect4 name="5.4.1.3: `ostream' flushing" url="cplusplus05.html#l73"/>
- </tocsect3>
- <tocsect3 name="5.4.2: Output to files: the class `ofstream'" url="cplusplus05.html#l74">
- <tocsect4 name="5.4.2.1: Modes for opening stream objects" url="cplusplus05.html#l75"/>
- </tocsect3>
- <tocsect3 name="5.4.3: Output to memory: the class `ostringstream'" url="cplusplus05.html#l76"/>
- </tocsect2>
- <tocsect2 name="5.5: Input" url="cplusplus05.html#l77">
- <tocsect3 name="5.5.1: Basic input: the class `istream'" url="cplusplus05.html#l78">
- <tocsect4 name="5.5.1.1: Reading from `istream' objects" url="cplusplus05.html#l79"/>
- <tocsect4 name="5.5.1.2: `istream' positioning" url="cplusplus05.html#l80"/>
- </tocsect3>
- <tocsect3 name="5.5.2: Input from streams: the class `ifstream'" url="cplusplus05.html#l81"/>
- <tocsect3 name="5.5.3: Input from memory: the class `istringstream'" url="cplusplus05.html#l82"/>
- </tocsect2>
- <tocsect2 name="5.6: Manipulators" url="cplusplus05.html#l83"/>
- <tocsect2 name="5.7: The `streambuf' class" url="cplusplus05.html#l84">
- <tocsect3 name="5.7.1: Protected `streambuf' members" url="cplusplus05.html#l85"/>
- <tocsect3 name="5.7.2: The class `filebuf'" url="cplusplus05.html#l86"/>
- </tocsect2>
- <tocsect2 name="5.8: Advanced topics" url="cplusplus05.html#l87">
- <tocsect3 name="5.8.1: Copying streams" url="cplusplus05.html#l88"/>
- <tocsect3 name="5.8.2: Coupling streams" url="cplusplus05.html#l89"/>
- <tocsect3 name="5.8.3: Redirection using streams" url="cplusplus05.html#l90"/>
- <tocsect3 name="5.8.4: Reading AND Writing to a stream" url="cplusplus05.html#l91"/>
+<tocsect1 name="Chapter 5: The `string' Data Type" url="cplusplus05.html#l68">
+ <tocsect2 name="5.1: Operations on strings" url="cplusplus05.html#l69"/>
+ <tocsect2 name="5.2: A std::string reference" url="cplusplus05.html#l70">
+ <tocsect3 name="5.2.1: Initializers" url="cplusplus05.html#l71"/>
+ <tocsect3 name="5.2.2: Iterators" url="cplusplus05.html#l72"/>
+ <tocsect3 name="5.2.3: Operators" url="cplusplus05.html#l73"/>
+ <tocsect3 name="5.2.4: Member functions" url="cplusplus05.html#l74"/>
+ <tocsect3 name="5.2.5: Conversion functions" url="cplusplus05.html#l75"/>
</tocsect2>
</tocsect1>
-<tocsect1 name="Chapter 6: Classes" url="cplusplus06.html#l92">
- <tocsect2 name="6.1: The constructor" url="cplusplus06.html#l93">
- <tocsect3 name="6.1.1: A first application" url="cplusplus06.html#l94"/>
- <tocsect3 name="6.1.2: Constructors: with and without arguments" url="cplusplus06.html#l95">
- <tocsect4 name="6.1.2.1: The order of construction" url="cplusplus06.html#l96"/>
+<tocsect1 name="Chapter 6: The IO-stream Library" url="cplusplus06.html#l76">
+ <tocsect2 name="6.1: Special header files" url="cplusplus06.html#l77"/>
+ <tocsect2 name="6.2: The foundation: the class `ios_base'" url="cplusplus06.html#l78"/>
+ <tocsect2 name="6.3: Interfacing `streambuf' objects: the class `ios'" url="cplusplus06.html#l79">
+ <tocsect3 name="6.3.1: Condition states" url="cplusplus06.html#l80"/>
+ <tocsect3 name="6.3.2: Formatting output and input" url="cplusplus06.html#l81">
+ <tocsect4 name="6.3.2.1: Format modifying member functions" url="cplusplus06.html#l82"/>
+ <tocsect4 name="6.3.2.2: Formatting flags" url="cplusplus06.html#l83"/>
</tocsect3>
</tocsect2>
- <tocsect2 name="6.2: Const member functions and const objects" url="cplusplus06.html#l97"/>
- <tocsect2 name="6.3: The keyword `inline'" url="cplusplus06.html#l98">
- <tocsect3 name="6.3.1: Inline functions within class declarations" url="cplusplus06.html#l99"/>
- <tocsect3 name="6.3.2: Inline functions outside of class declarations" url="cplusplus06.html#l100"/>
- <tocsect3 name="6.3.3: When to use inline functions" url="cplusplus06.html#l101"/>
+ <tocsect2 name="6.4: Output" url="cplusplus06.html#l84">
+ <tocsect3 name="6.4.1: Basic output: the class `ostream'" url="cplusplus06.html#l85">
+ <tocsect4 name="6.4.1.1: Writing to `ostream' objects" url="cplusplus06.html#l86"/>
+ <tocsect4 name="6.4.1.2: `ostream' positioning" url="cplusplus06.html#l87"/>
+ <tocsect4 name="6.4.1.3: `ostream' flushing" url="cplusplus06.html#l88"/>
+ </tocsect3>
+ <tocsect3 name="6.4.2: Output to files: the class `ofstream'" url="cplusplus06.html#l89">
+ <tocsect4 name="6.4.2.1: Modes for opening stream objects" url="cplusplus06.html#l90"/>
+ </tocsect3>
+ <tocsect3 name="6.4.3: Output to memory: the class `ostringstream'" url="cplusplus06.html#l91"/>
</tocsect2>
- <tocsect2 name="6.4: Objects in objects: composition" url="cplusplus06.html#l102">
- <tocsect3 name="6.4.1: Composition and const objects: const member initializers" url="cplusplus06.html#l103"/>
- <tocsect3 name="6.4.2: Composition and reference objects: reference member initializers" url="cplusplus06.html#l104"/>
+ <tocsect2 name="6.5: Input" url="cplusplus06.html#l92">
+ <tocsect3 name="6.5.1: Basic input: the class `istream'" url="cplusplus06.html#l93">
+ <tocsect4 name="6.5.1.1: Reading from `istream' objects" url="cplusplus06.html#l94"/>
+ <tocsect4 name="6.5.1.2: `istream' positioning" url="cplusplus06.html#l95"/>
+ </tocsect3>
+ <tocsect3 name="6.5.2: Input from files: the class `ifstream'" url="cplusplus06.html#l96"/>
+ <tocsect3 name="6.5.3: Input from memory: the class `istringstream'" url="cplusplus06.html#l97"/>
+ <tocsect3 name="6.5.4: Copying streams" url="cplusplus06.html#l98"/>
+ <tocsect3 name="6.5.5: Coupling streams" url="cplusplus06.html#l99"/>
</tocsect2>
- <tocsect2 name="6.5: Header file organization with classes" url="cplusplus06.html#l105">
- <tocsect3 name="6.5.1: Using namespaces in header files" url="cplusplus06.html#l106"/>
+ <tocsect2 name="6.6: Advanced topics" url="cplusplus06.html#l100">
+ <tocsect3 name="6.6.1: Redirecting streams" url="cplusplus06.html#l101"/>
+ <tocsect3 name="6.6.2: Reading AND Writing streams" url="cplusplus06.html#l102"/>
</tocsect2>
- <tocsect2 name="6.6: The keyword `mutable'" url="cplusplus06.html#l107"/>
</tocsect1>
-<tocsect1 name="Chapter 7: Classes and memory allocation" url="cplusplus07.html#l108">
- <tocsect2 name="7.1: The operators `new' and `delete'" url="cplusplus07.html#l109">
- <tocsect3 name="7.1.1: Allocating arrays" url="cplusplus07.html#l110"/>
- <tocsect3 name="7.1.2: Deleting arrays" url="cplusplus07.html#l111"/>
- <tocsect3 name="7.1.3: Enlarging arrays" url="cplusplus07.html#l112"/>
+<tocsect1 name="Chapter 7: Classes" url="cplusplus07.html#l103">
+ <tocsect2 name="7.1: The constructor" url="cplusplus07.html#l104">
+ <tocsect3 name="7.1.1: A first application" url="cplusplus07.html#l105"/>
+ <tocsect3 name="7.1.2: Constructors: with and without arguments" url="cplusplus07.html#l106">
+ <tocsect4 name="7.1.2.1: The order of construction" url="cplusplus07.html#l107"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="7.2: Ambiguity resolution" url="cplusplus07.html#l108">
+ <tocsect3 name="7.2.1: Types `Data' vs. `Data()'" url="cplusplus07.html#l109"/>
+ <tocsect3 name="7.2.2: Superfluous parentheses" url="cplusplus07.html#l110"/>
+ <tocsect3 name="7.2.3: Existing types" url="cplusplus07.html#l111"/>
+ </tocsect2>
+ <tocsect2 name="7.3: Objects inside objects: composition" url="cplusplus07.html#l112">
+ <tocsect3 name="7.3.1: Composition and const objects: const member initializers" url="cplusplus07.html#l113"/>
+ <tocsect3 name="7.3.2: Composition and reference objects: reference member initializers" url="cplusplus07.html#l114"/>
</tocsect2>
- <tocsect2 name="7.2: The destructor" url="cplusplus07.html#l113">
- <tocsect3 name="7.2.1: New and delete and object pointers" url="cplusplus07.html#l114"/>
- <tocsect3 name="7.2.2: The function set_new_handler()" url="cplusplus07.html#l115"/>
+ <tocsect2 name="7.4: Data member initializers" url="cplusplus07.html#l115">
+ <tocsect3 name="7.4.1: Delegating constructors" url="cplusplus07.html#l116"/>
</tocsect2>
- <tocsect2 name="7.3: The assignment operator" url="cplusplus07.html#l116">
- <tocsect3 name="7.3.1: Overloading the assignment operator" url="cplusplus07.html#l117">
- <tocsect4 name="7.3.1.1: The function 'operator=()'" url="cplusplus07.html#l118"/>
+ <tocsect2 name="7.5: Uniform initialization" url="cplusplus07.html#l117"/>
+ <tocsect2 name="7.6: Defaulted and deleted class members" url="cplusplus07.html#l118"/>
+ <tocsect2 name="7.7: Const member functions and const objects" url="cplusplus07.html#l119">
+ <tocsect3 name="7.7.1: Anonymous objects" url="cplusplus07.html#l120">
+ <tocsect4 name="7.7.1.1: Subtleties with anonymous objects" url="cplusplus07.html#l121"/>
</tocsect3>
</tocsect2>
- <tocsect2 name="7.4: The this pointer" url="cplusplus07.html#l119">
- <tocsect3 name="7.4.1: Preventing self-destruction with this" url="cplusplus07.html#l120"/>
- <tocsect3 name="7.4.2: Associativity of operators and this" url="cplusplus07.html#l121"/>
+ <tocsect2 name="7.8: The keyword `inline'" url="cplusplus07.html#l122">
+ <tocsect3 name="7.8.1: Defining members inline" url="cplusplus07.html#l123"/>
+ <tocsect3 name="7.8.2: When to use inline functions" url="cplusplus07.html#l124">
+ <tocsect4 name="7.8.2.1: A prelude: when NOT to use inline functions" url="cplusplus07.html#l125"/>
+ </tocsect3>
</tocsect2>
- <tocsect2 name="7.5: The copy constructor: Initialization vs. Assignment" url="cplusplus07.html#l122">
- <tocsect3 name="7.5.1: Similarities between the copy constructor and operator=()" url="cplusplus07.html#l123"/>
- <tocsect3 name="7.5.2: Preventing the use of certain member functions" url="cplusplus07.html#l124"/>
+ <tocsect2 name="7.9: Local classes: classes inside functions" url="cplusplus07.html#l126"/>
+ <tocsect2 name="7.10: The keyword `mutable'" url="cplusplus07.html#l127"/>
+ <tocsect2 name="7.11: Header file organization" url="cplusplus07.html#l128">
+ <tocsect3 name="7.11.1: Using namespaces in header files" url="cplusplus07.html#l129"/>
</tocsect2>
- <tocsect2 name="7.6: Conclusion" url="cplusplus07.html#l125"/>
+ <tocsect2 name="7.12: Sizeof applied to class data members" url="cplusplus07.html#l130"/>
</tocsect1>
-<tocsect1 name="Chapter 8: Exceptions" url="cplusplus08.html#l126">
- <tocsect2 name="8.1: Using exceptions: syntax elements" url="cplusplus08.html#l127"/>
- <tocsect2 name="8.2: An example using exceptions" url="cplusplus08.html#l128">
- <tocsect3 name="8.2.1: No exceptions: `setjmp()' and `longjmp()'" url="cplusplus08.html#l129"/>
- <tocsect3 name="8.2.2: Exceptions: the preferred alternative" url="cplusplus08.html#l130"/>
+<tocsect1 name="Chapter 8: Static Data And Functions" url="cplusplus08.html#l131">
+ <tocsect2 name="8.1: Static data" url="cplusplus08.html#l132">
+ <tocsect3 name="8.1.1: Private static data" url="cplusplus08.html#l133"/>
+ <tocsect3 name="8.1.2: Public static data" url="cplusplus08.html#l134"/>
+ <tocsect3 name="8.1.3: Initializing static const data" url="cplusplus08.html#l135"/>
+ <tocsect3 name="8.1.4: Generalized constant expressions (constexpr)" url="cplusplus08.html#l136">
+ <tocsect4 name="8.1.4.1: Constant expression data" url="cplusplus08.html#l137"/>
+ </tocsect3>
</tocsect2>
- <tocsect2 name="8.3: Throwing exceptions" url="cplusplus08.html#l131">
- <tocsect3 name="8.3.1: The empty `throw' statement" url="cplusplus08.html#l132"/>
+ <tocsect2 name="8.2: Static member functions" url="cplusplus08.html#l138">
+ <tocsect3 name="8.2.1: Calling conventions" url="cplusplus08.html#l139"/>
</tocsect2>
- <tocsect2 name="8.4: The try block" url="cplusplus08.html#l133"/>
- <tocsect2 name="8.5: Catching exceptions" url="cplusplus08.html#l134">
- <tocsect3 name="8.5.1: The default catcher" url="cplusplus08.html#l135"/>
+</tocsect1>
+
+<tocsect1 name="Chapter 9: Classes And Memory Allocation" url="cplusplus09.html#l140">
+ <tocsect2 name="9.1: Operators `new' and `delete'" url="cplusplus09.html#l141">
+ <tocsect3 name="9.1.1: Allocating arrays" url="cplusplus09.html#l142"/>
+ <tocsect3 name="9.1.2: Deleting arrays" url="cplusplus09.html#l143"/>
+ <tocsect3 name="9.1.3: Enlarging arrays" url="cplusplus09.html#l144"/>
+ <tocsect3 name="9.1.4: Managing `raw' memory" url="cplusplus09.html#l145"/>
+ <tocsect3 name="9.1.5: The `placement new' operator" url="cplusplus09.html#l146"/>
+ </tocsect2>
+ <tocsect2 name="9.2: The destructor" url="cplusplus09.html#l147">
+ <tocsect3 name="9.2.1: Object pointers revisited" url="cplusplus09.html#l148"/>
+ <tocsect3 name="9.2.2: The function set_new_handler()" url="cplusplus09.html#l149"/>
+ </tocsect2>
+ <tocsect2 name="9.3: The assignment operator" url="cplusplus09.html#l150">
+ <tocsect3 name="9.3.1: Overloading the assignment operator" url="cplusplus09.html#l151">
+ <tocsect4 name="9.3.1.1: The member 'operator=()'" url="cplusplus09.html#l152"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="9.4: The `this' pointer" url="cplusplus09.html#l153">
+ <tocsect3 name="9.4.1: Sequential assignments and this" url="cplusplus09.html#l154"/>
+ </tocsect2>
+ <tocsect2 name="9.5: The copy constructor: initialization vs. assignment" url="cplusplus09.html#l155"/>
+ <tocsect2 name="9.6: Revising the assignment operator" url="cplusplus09.html#l156">
+ <tocsect3 name="9.6.1: Swapping" url="cplusplus09.html#l157">
+ <tocsect4 name="9.6.1.1: Fast swapping" url="cplusplus09.html#l158"/>
+ </tocsect3>
</tocsect2>
- <tocsect2 name="8.6: Declaring exception throwers" url="cplusplus08.html#l136"/>
- <tocsect2 name="8.7: Iostreams and exceptions" url="cplusplus08.html#l137"/>
+ <tocsect2 name="9.7: Moving data" url="cplusplus09.html#l159">
+ <tocsect3 name="9.7.1: The move constructor (dynamic data)" url="cplusplus09.html#l160"/>
+ <tocsect3 name="9.7.2: The move constructor (composition)" url="cplusplus09.html#l161"/>
+ <tocsect3 name="9.7.3: Move-assignment" url="cplusplus09.html#l162"/>
+ <tocsect3 name="9.7.4: Revising the assignment operator (part II)" url="cplusplus09.html#l163"/>
+ <tocsect3 name="9.7.5: Moving and the destructor" url="cplusplus09.html#l164"/>
+ <tocsect3 name="9.7.6: Move-only classes" url="cplusplus09.html#l165"/>
+ <tocsect3 name="9.7.7: Default move constructors and assignment operators" url="cplusplus09.html#l166"/>
+ <tocsect3 name="9.7.8: Moving: implications for class design" url="cplusplus09.html#l167"/>
+ </tocsect2>
+ <tocsect2 name="9.8: Copy Elision and Return Value Optimization" url="cplusplus09.html#l168"/>
+ <tocsect2 name="9.9: Plain Old Data" url="cplusplus09.html#l169"/>
+ <tocsect2 name="9.10: Conclusion" url="cplusplus09.html#l170"/>
</tocsect1>
-<tocsect1 name="Chapter 9: More Operator Overloading" url="cplusplus09.html#l138">
- <tocsect2 name="9.1: Overloading `operator[]()'" url="cplusplus09.html#l139"/>
- <tocsect2 name="9.2: Overloading the insertion and extraction operators" url="cplusplus09.html#l140"/>
- <tocsect2 name="9.3: Conversion operators" url="cplusplus09.html#l141"/>
- <tocsect2 name="9.4: The `explicit' keyword" url="cplusplus09.html#l142"/>
- <tocsect2 name="9.5: Overloading increment and decrement" url="cplusplus09.html#l143"/>
- <tocsect2 name="9.6: Overloading `operator new(size_t)'" url="cplusplus09.html#l144"/>
- <tocsect2 name="9.7: Overloading `operator delete(void *)'" url="cplusplus09.html#l145"/>
- <tocsect2 name="9.8: Operators `new[]' and `delete[]'" url="cplusplus09.html#l146"/>
- <tocsect2 name="9.9: Function Objects" url="cplusplus09.html#l147">
- <tocsect3 name="9.9.1: Constructing manipulators" url="cplusplus09.html#l148">
- <tocsect4 name="9.9.1.1: Manipulators requiring arguments" url="cplusplus09.html#l149"/>
- </tocsect3>
- </tocsect2>
- <tocsect2 name="9.10: Overloadable Operators" url="cplusplus09.html#l150"/>
+<tocsect1 name="Chapter 10: Exceptions" url="cplusplus10.html#l171">
+ <tocsect2 name="10.1: Exception syntax" url="cplusplus10.html#l172"/>
+ <tocsect2 name="10.2: An example using exceptions" url="cplusplus10.html#l173">
+ <tocsect3 name="10.2.1: Anachronisms: `setjmp' and `longjmp'" url="cplusplus10.html#l174"/>
+ <tocsect3 name="10.2.2: Exceptions: the preferred alternative" url="cplusplus10.html#l175"/>
+ </tocsect2>
+ <tocsect2 name="10.3: Throwing exceptions" url="cplusplus10.html#l176">
+ <tocsect3 name="10.3.1: The empty `throw' statement" url="cplusplus10.html#l177"/>
+ </tocsect2>
+ <tocsect2 name="10.4: The try block" url="cplusplus10.html#l178"/>
+ <tocsect2 name="10.5: Catching exceptions" url="cplusplus10.html#l179">
+ <tocsect3 name="10.5.1: The default catcher" url="cplusplus10.html#l180"/>
+ </tocsect2>
+ <tocsect2 name="10.6: Declaring exception throwers (deprecated)" url="cplusplus10.html#l181"/>
+ <tocsect2 name="10.7: Iostreams and exceptions" url="cplusplus10.html#l182"/>
+ <tocsect2 name="10.8: Standard Exceptions" url="cplusplus10.html#l183"/>
+ <tocsect2 name="10.9: System error, error code and error category" url="cplusplus10.html#l184">
+ <tocsect3 name="10.9.1: The class `error_code'" url="cplusplus10.html#l185"/>
+ <tocsect3 name="10.9.2: The class `error_category'" url="cplusplus10.html#l186"/>
+ </tocsect2>
+ <tocsect2 name="10.10: Exception guarantees" url="cplusplus10.html#l187">
+ <tocsect3 name="10.10.1: The basic guarantee" url="cplusplus10.html#l188"/>
+ <tocsect3 name="10.10.2: The strong guarantee" url="cplusplus10.html#l189"/>
+ <tocsect3 name="10.10.3: The nothrow guarantee" url="cplusplus10.html#l190"/>
+ </tocsect2>
+ <tocsect2 name="10.11: Function try blocks" url="cplusplus10.html#l191"/>
+ <tocsect2 name="10.12: Exceptions in constructors and destructors" url="cplusplus10.html#l192"/>
</tocsect1>
-<tocsect1 name="Chapter 10: Static data and functions" url="cplusplus10.html#l151">
- <tocsect2 name="10.1: Static data" url="cplusplus10.html#l152">
- <tocsect3 name="10.1.1: Private static data" url="cplusplus10.html#l153"/>
- <tocsect3 name="10.1.2: Public static data" url="cplusplus10.html#l154"/>
+<tocsect1 name="Chapter 11: More Operator Overloading" url="cplusplus11.html#l193">
+ <tocsect2 name="11.1: Overloading `operator[]()'" url="cplusplus11.html#l194"/>
+ <tocsect2 name="11.2: Overloading the insertion and extraction operators" url="cplusplus11.html#l195"/>
+ <tocsect2 name="11.3: Conversion operators" url="cplusplus11.html#l196"/>
+ <tocsect2 name="11.4: The keyword `explicit'" url="cplusplus11.html#l197">
+ <tocsect3 name="11.4.1: Explicit conversion operators" url="cplusplus11.html#l198"/>
+ </tocsect2>
+ <tocsect2 name="11.5: Overloading the increment and decrement operators" url="cplusplus11.html#l199"/>
+ <tocsect2 name="11.6: Overloading binary operators" url="cplusplus11.html#l200"/>
+ <tocsect2 name="11.7: Overloading `operator new(size_t)'" url="cplusplus11.html#l201"/>
+ <tocsect2 name="11.8: Overloading `operator delete(void *)'" url="cplusplus11.html#l202"/>
+ <tocsect2 name="11.9: Operators `new[]' and `delete[]'" url="cplusplus11.html#l203">
+ <tocsect3 name="11.9.1: Overloading `new[]'" url="cplusplus11.html#l204"/>
+ <tocsect3 name="11.9.2: Overloading `delete[]'" url="cplusplus11.html#l205"/>
+ <tocsect3 name="11.9.3: `new[]', `delete[]' and exceptions" url="cplusplus11.html#l206"/>
+ </tocsect2>
+ <tocsect2 name="11.10: Function Objects" url="cplusplus11.html#l207">
+ <tocsect3 name="11.10.1: Constructing manipulators" url="cplusplus11.html#l208">
+ <tocsect4 name="11.10.1.1: Manipulators requiring arguments" url="cplusplus11.html#l209"/>
+ </tocsect3>
</tocsect2>
- <tocsect2 name="10.2: Static member functions" url="cplusplus10.html#l155"/>
+ <tocsect2 name="11.11: The case of [io]fstream::open()" url="cplusplus11.html#l210"/>
+ <tocsect2 name="11.12: User-defined literals" url="cplusplus11.html#l211"/>
+ <tocsect2 name="11.13: Overloadable operators" url="cplusplus11.html#l212"/>
</tocsect1>
-<tocsect1 name="Chapter 11: Friends" url="cplusplus11.html#l156">
- <tocsect2 name="11.1: Friend-functions" url="cplusplus11.html#l157"/>
- <tocsect2 name="11.2: Inline friends" url="cplusplus11.html#l158"/>
+<tocsect1 name="Chapter 12: Abstract Containers" url="cplusplus12.html#l213">
+ <tocsect2 name="12.1: Notations used in this chapter" url="cplusplus12.html#l214"/>
+ <tocsect2 name="12.2: The `pair' container" url="cplusplus12.html#l215"/>
+ <tocsect2 name="12.3: Allocators" url="cplusplus12.html#l216"/>
+ <tocsect2 name="12.4: Available Containers" url="cplusplus12.html#l217">
+ <tocsect3 name="12.4.1: ARRAY" url="cplusplus12.html#l218"/>
+ <tocsect3 name="12.4.2: The `vector' container" url="cplusplus12.html#l219"/>
+ <tocsect3 name="12.4.3: The `list' container" url="cplusplus12.html#l220"/>
+ <tocsect3 name="12.4.4: The `queue' container" url="cplusplus12.html#l221"/>
+ <tocsect3 name="12.4.5: The `priority_queue' container" url="cplusplus12.html#l222"/>
+ <tocsect3 name="12.4.6: The `deque' container" url="cplusplus12.html#l223"/>
+ <tocsect3 name="12.4.7: The `map' container" url="cplusplus12.html#l224">
+ <tocsect4 name="12.4.7.1: The `map' constructors" url="cplusplus12.html#l225"/>
+ <tocsect4 name="12.4.7.2: The `map' operators" url="cplusplus12.html#l226"/>
+ <tocsect4 name="12.4.7.3: The `map' public members" url="cplusplus12.html#l227"/>
+ <tocsect4 name="12.4.7.4: The `map': a simple example" url="cplusplus12.html#l228"/>
+ </tocsect3>
+ <tocsect3 name="12.4.8: The `multimap' container" url="cplusplus12.html#l229"/>
+ <tocsect3 name="12.4.9: The `set' container" url="cplusplus12.html#l230"/>
+ <tocsect3 name="12.4.10: The `multiset' container" url="cplusplus12.html#l231"/>
+ <tocsect3 name="12.4.11: The `stack' container" url="cplusplus12.html#l232"/>
+ <tocsect3 name="12.4.12: The `unordered_map' container (`hash table')" url="cplusplus12.html#l233">
+ <tocsect4 name="12.4.12.1: The `unordered_map' constructors" url="cplusplus12.html#l234"/>
+ <tocsect4 name="12.4.12.2: The `unordered_map' public members" url="cplusplus12.html#l235"/>
+ <tocsect4 name="12.4.12.3: The `unordered_multimap' container" url="cplusplus12.html#l236"/>
+ </tocsect3>
+ <tocsect3 name="12.4.13: The `unordered_set' container" url="cplusplus12.html#l237">
+ <tocsect4 name="12.4.13.1: The `unordered_multiset' container" url="cplusplus12.html#l238"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="12.5: Regular Expressions" url="cplusplus12.html#l239"/>
+ <tocsect2 name="12.6: The `complex' container" url="cplusplus12.html#l240"/>
+ <tocsect2 name="12.7: Unrestricted Unions" url="cplusplus12.html#l241">
+ <tocsect3 name="12.7.1: Implementing the destructor" url="cplusplus12.html#l242"/>
+ <tocsect3 name="12.7.2: Embedding an unrestricted union in a surrounding class" url="cplusplus12.html#l243"/>
+ <tocsect3 name="12.7.3: Destroying an embedded unrestricted union" url="cplusplus12.html#l244"/>
+ <tocsect3 name="12.7.4: Copy and move constructors" url="cplusplus12.html#l245"/>
+ <tocsect3 name="12.7.5: Assignment" url="cplusplus12.html#l246"/>
+ </tocsect2>
</tocsect1>
-<tocsect1 name="Chapter 12: Abstract Containers" url="cplusplus12.html#l159">
- <tocsect2 name="12.1: The `pair' container" url="cplusplus12.html#l160"/>
- <tocsect2 name="12.2: Sequential Containers" url="cplusplus12.html#l161">
- <tocsect3 name="12.2.1: The `vector' container" url="cplusplus12.html#l162"/>
- <tocsect3 name="12.2.2: The `list' container" url="cplusplus12.html#l163"/>
- <tocsect3 name="12.2.3: The `queue' container" url="cplusplus12.html#l164"/>
- <tocsect3 name="12.2.4: The `priority_queue' container" url="cplusplus12.html#l165"/>
- <tocsect3 name="12.2.5: The `deque' container" url="cplusplus12.html#l166"/>
- <tocsect3 name="12.2.6: The `map' container" url="cplusplus12.html#l167"/>
- <tocsect3 name="12.2.7: The `multimap' container" url="cplusplus12.html#l168"/>
- <tocsect3 name="12.2.8: The `set' container" url="cplusplus12.html#l169"/>
- <tocsect3 name="12.2.9: The `multiset' container" url="cplusplus12.html#l170"/>
- <tocsect3 name="12.2.10: The `stack' container" url="cplusplus12.html#l171"/>
- <tocsect3 name="12.2.11: The `hash_map' and other hashing-based containers" url="cplusplus12.html#l172"/>
- </tocsect2>
- <tocsect2 name="12.3: The `complex' container" url="cplusplus12.html#l173"/>
+<tocsect1 name="Chapter 13: Inheritance" url="cplusplus13.html#l247">
+ <tocsect2 name="13.1: Related types" url="cplusplus13.html#l248">
+ <tocsect3 name="13.1.1: Inheritance depth: desirable?" url="cplusplus13.html#l249"/>
+ </tocsect2>
+ <tocsect2 name="13.2: Access rights: public, private, protected" url="cplusplus13.html#l250">
+ <tocsect3 name="13.2.1: Public, protected and private derivation" url="cplusplus13.html#l251"/>
+ <tocsect3 name="13.2.2: Promoting access rights" url="cplusplus13.html#l252"/>
+ </tocsect2>
+ <tocsect2 name="13.3: The constructor of a derived class" url="cplusplus13.html#l253">
+ <tocsect3 name="13.3.1: Move construction" url="cplusplus13.html#l254"/>
+ <tocsect3 name="13.3.2: Move assignment" url="cplusplus13.html#l255"/>
+ <tocsect3 name="13.3.3: Inheriting constructors" url="cplusplus13.html#l256"/>
+ </tocsect2>
+ <tocsect2 name="13.4: The destructor of a derived class" url="cplusplus13.html#l257"/>
+ <tocsect2 name="13.5: Redefining member functions" url="cplusplus13.html#l258"/>
+ <tocsect2 name="13.6: i/ostream::init" url="cplusplus13.html#l259"/>
+ <tocsect2 name="13.7: Multiple inheritance" url="cplusplus13.html#l260"/>
+ <tocsect2 name="13.8: Conversions between base classes and derived classes" url="cplusplus13.html#l261">
+ <tocsect3 name="13.8.1: Conversions with object assignments" url="cplusplus13.html#l262"/>
+ <tocsect3 name="13.8.2: Conversions with pointer assignments" url="cplusplus13.html#l263"/>
+ </tocsect2>
+ <tocsect2 name="13.9: Using non-default constructors with new[]" url="cplusplus13.html#l264"/>
</tocsect1>
-<tocsect1 name="Chapter 13: Inheritance" url="cplusplus13.html#l174">
- <tocsect2 name="13.1: Related types" url="cplusplus13.html#l175"/>
- <tocsect2 name="13.2: The constructor of a derived class" url="cplusplus13.html#l176"/>
- <tocsect2 name="13.3: The destructor of a derived class" url="cplusplus13.html#l177"/>
- <tocsect2 name="13.4: Redefining member functions" url="cplusplus13.html#l178"/>
- <tocsect2 name="13.5: Multiple inheritance" url="cplusplus13.html#l179"/>
- <tocsect2 name="13.6: Conversions between base classes and derived classes" url="cplusplus13.html#l180">
- <tocsect3 name="13.6.1: Conversions in object assignments" url="cplusplus13.html#l181"/>
- <tocsect3 name="13.6.2: Conversions in pointer assignments" url="cplusplus13.html#l182"/>
+<tocsect1 name="Chapter 14: Polymorphism" url="cplusplus14.html#l265">
+ <tocsect2 name="14.1: Virtual functions" url="cplusplus14.html#l266"/>
+ <tocsect2 name="14.2: Virtual destructors" url="cplusplus14.html#l267"/>
+ <tocsect2 name="14.3: Pure virtual functions" url="cplusplus14.html#l268">
+ <tocsect3 name="14.3.1: Implementing pure virtual functions" url="cplusplus14.html#l269"/>
+ </tocsect2>
+ <tocsect2 name="14.4: Explicit virtual overrides" url="cplusplus14.html#l270"/>
+ <tocsect2 name="14.5: Virtual functions and multiple inheritance" url="cplusplus14.html#l271">
+ <tocsect3 name="14.5.1: Ambiguity in multiple inheritance" url="cplusplus14.html#l272"/>
+ <tocsect3 name="14.5.2: Virtual base classes" url="cplusplus14.html#l273"/>
+ <tocsect3 name="14.5.3: When virtual derivation is not appropriate" url="cplusplus14.html#l274"/>
+ </tocsect2>
+ <tocsect2 name="14.6: Run-time type identification" url="cplusplus14.html#l275">
+ <tocsect3 name="14.6.1: The dynamic_cast operator" url="cplusplus14.html#l276"/>
+ <tocsect3 name="14.6.2: The `typeid' operator" url="cplusplus14.html#l277"/>
+ </tocsect2>
+ <tocsect2 name="14.7: Inheritance: when to use to achieve what?" url="cplusplus14.html#l278"/>
+ <tocsect2 name="14.8: The `streambuf' class" url="cplusplus14.html#l279">
+ <tocsect3 name="14.8.1: Protected `streambuf' members" url="cplusplus14.html#l280">
+ <tocsect4 name="14.8.1.1: Protected members for input operations" url="cplusplus14.html#l281"/>
+ <tocsect4 name="14.8.1.2: Protected members for output operations" url="cplusplus14.html#l282"/>
+ <tocsect4 name="14.8.1.3: Protected members for buffer manipulation" url="cplusplus14.html#l283"/>
+ <tocsect4 name="14.8.1.4: Deriving classes from `streambuf'" url="cplusplus14.html#l284"/>
+ </tocsect3>
+ <tocsect3 name="14.8.2: The class `filebuf'" url="cplusplus14.html#l285"/>
</tocsect2>
+ <tocsect2 name="14.9: A polymorphic exception class" url="cplusplus14.html#l286"/>
+ <tocsect2 name="14.10: How polymorphism is implemented" url="cplusplus14.html#l287"/>
+ <tocsect2 name="14.11: Undefined reference to vtable ..." url="cplusplus14.html#l288"/>
+ <tocsect2 name="14.12: Virtual constructors" url="cplusplus14.html#l289"/>
</tocsect1>
-<tocsect1 name="Chapter 14: Polymorphism" url="cplusplus14.html#l183">
- <tocsect2 name="14.1: Virtual functions" url="cplusplus14.html#l184"/>
- <tocsect2 name="14.2: Virtual destructors" url="cplusplus14.html#l185"/>
- <tocsect2 name="14.3: Pure virtual functions" url="cplusplus14.html#l186"/>
- <tocsect2 name="14.4: Virtual functions in multiple inheritance" url="cplusplus14.html#l187">
- <tocsect3 name="14.4.1: Ambiguity in multiple inheritance" url="cplusplus14.html#l188"/>
- <tocsect3 name="14.4.2: Virtual base classes" url="cplusplus14.html#l189"/>
- <tocsect3 name="14.4.3: When virtual derivation is not appropriate" url="cplusplus14.html#l190"/>
- </tocsect2>
- <tocsect2 name="14.5: Run-Time Type identification" url="cplusplus14.html#l191">
- <tocsect3 name="14.5.1: The dynamic_cast operator" url="cplusplus14.html#l192"/>
- <tocsect3 name="14.5.2: The typeid operator" url="cplusplus14.html#l193"/>
- </tocsect2>
- <tocsect2 name="14.6: Deriving classes from `streambuf'" url="cplusplus14.html#l194"/>
- <tocsect2 name="14.7: A polymorphic exception class" url="cplusplus14.html#l195"/>
- <tocsect2 name="14.8: How polymorphism is implemented" url="cplusplus14.html#l196"/>
+<tocsect1 name="Chapter 15: Friends" url="cplusplus15.html#l290">
+ <tocsect2 name="15.1: Friend functions" url="cplusplus15.html#l291"/>
+ <tocsect2 name="15.2: Extended friend declarations" url="cplusplus15.html#l292"/>
</tocsect1>
-<tocsect1 name="Chapter 15: Classes having pointers to members" url="cplusplus15.html#l197">
- <tocsect2 name="15.1: Pointers to members: an example" url="cplusplus15.html#l198"/>
- <tocsect2 name="15.2: Defining pointers to members" url="cplusplus15.html#l199"/>
- <tocsect2 name="15.3: Using pointers to members" url="cplusplus15.html#l200"/>
- <tocsect2 name="15.4: Pointers to static members" url="cplusplus15.html#l201"/>
- <tocsect2 name="15.5: Sizes of pointers" url="cplusplus15.html#l202"/>
+<tocsect1 name="Chapter 16: Classes Having Pointers To Members" url="cplusplus16.html#l293">
+ <tocsect2 name="16.1: Pointers to members: an example" url="cplusplus16.html#l294"/>
+ <tocsect2 name="16.2: Defining pointers to members" url="cplusplus16.html#l295"/>
+ <tocsect2 name="16.3: Using pointers to members" url="cplusplus16.html#l296"/>
+ <tocsect2 name="16.4: Pointers to static members" url="cplusplus16.html#l297"/>
+ <tocsect2 name="16.5: Pointer sizes" url="cplusplus16.html#l298"/>
</tocsect1>
-<tocsect1 name="Chapter 16: Nested Classes" url="cplusplus16.html#l203">
- <tocsect2 name="16.1: Defining nested class members" url="cplusplus16.html#l204"/>
- <tocsect2 name="16.2: Declaring nested classes" url="cplusplus16.html#l205"/>
- <tocsect2 name="16.3: Accessing private members in nested classes" url="cplusplus16.html#l206"/>
- <tocsect2 name="16.4: Nesting enumerations" url="cplusplus16.html#l207">
- <tocsect3 name="16.4.1: Empty enumerations" url="cplusplus16.html#l208"/>
+<tocsect1 name="Chapter 17: Nested Classes" url="cplusplus17.html#l299">
+ <tocsect2 name="17.1: Defining nested class members" url="cplusplus17.html#l300"/>
+ <tocsect2 name="17.2: Declaring nested classes" url="cplusplus17.html#l301"/>
+ <tocsect2 name="17.3: Accessing private members in nested classes" url="cplusplus17.html#l302"/>
+ <tocsect2 name="17.4: Nesting enumerations" url="cplusplus17.html#l303">
+ <tocsect3 name="17.4.1: Empty enumerations" url="cplusplus17.html#l304"/>
+ </tocsect2>
+ <tocsect2 name="17.5: Revisiting virtual constructors" url="cplusplus17.html#l305"/>
+</tocsect1>
+
+<tocsect1 name="Chapter 18: The Standard Template Library" url="cplusplus18.html#l306">
+ <tocsect2 name="18.1: Predefined function objects" url="cplusplus18.html#l307">
+ <tocsect3 name="18.1.1: Arithmetic function objects" url="cplusplus18.html#l308"/>
+ <tocsect3 name="18.1.2: Relational function objects" url="cplusplus18.html#l309"/>
+ <tocsect3 name="18.1.3: Logical function objects" url="cplusplus18.html#l310"/>
+ <tocsect3 name="18.1.4: Function adaptors" url="cplusplus18.html#l311">
+ <tocsect4 name="18.1.4.1: Binders" url="cplusplus18.html#l312"/>
+ <tocsect4 name="18.1.4.2: Negators" url="cplusplus18.html#l313"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="18.2: Iterators" url="cplusplus18.html#l314">
+ <tocsect3 name="18.2.1: Insert iterators" url="cplusplus18.html#l315"/>
+ <tocsect3 name="18.2.2: Iterators for `istream' objects" url="cplusplus18.html#l316">
+ <tocsect4 name="18.2.2.1: Iterators for `istreambuf' objects" url="cplusplus18.html#l317"/>
+ </tocsect3>
+ <tocsect3 name="18.2.3: Iterators for `ostream' objects" url="cplusplus18.html#l318">
+ <tocsect4 name="18.2.3.1: Iterators for `ostreambuf' objects" url="cplusplus18.html#l319"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="18.3: The class 'unique_ptr'" url="cplusplus18.html#l320">
+ <tocsect3 name="18.3.1: Defining `unique_ptr' objects" url="cplusplus18.html#l321"/>
+ <tocsect3 name="18.3.2: Creating a plain `unique_ptr'" url="cplusplus18.html#l322"/>
+ <tocsect3 name="18.3.3: Moving another `unique_ptr'" url="cplusplus18.html#l323"/>
+ <tocsect3 name="18.3.4: Pointing to a newly allocated object" url="cplusplus18.html#l324"/>
+ <tocsect3 name="18.3.5: Operators and members" url="cplusplus18.html#l325"/>
+ <tocsect3 name="18.3.6: Using `unique_ptr' objects for arrays" url="cplusplus18.html#l326"/>
+ <tocsect3 name="18.3.7: The legacy class 'auto_ptr' (deprecated)" url="cplusplus18.html#l327"/>
+ </tocsect2>
+ <tocsect2 name="18.4: The class 'shared_ptr'" url="cplusplus18.html#l328">
+ <tocsect3 name="18.4.1: Defining `shared_ptr' objects" url="cplusplus18.html#l329"/>
+ <tocsect3 name="18.4.2: Creating a plain `shared_ptr'" url="cplusplus18.html#l330"/>
+ <tocsect3 name="18.4.3: Pointing to a newly allocated object" url="cplusplus18.html#l331"/>
+ <tocsect3 name="18.4.4: Operators and members" url="cplusplus18.html#l332"/>
+ <tocsect3 name="18.4.5: Casting shared pointers" url="cplusplus18.html#l333"/>
+ <tocsect3 name="18.4.6: Using `shared_ptr' objects for arrays" url="cplusplus18.html#l334"/>
+ </tocsect2>
+ <tocsect2 name="18.5: Using `make_shared' to combine `shared_ptr' and `new'" url="cplusplus18.html#l335"/>
+ <tocsect2 name="18.6: Classes having pointer data members" url="cplusplus18.html#l336"/>
+ <tocsect2 name="18.7: Specifying time (absolute and relative)" url="cplusplus18.html#l337">
+ <tocsect3 name="18.7.1: Time units: the class 'ratio'" url="cplusplus18.html#l338"/>
+ <tocsect3 name="18.7.2: An amount of time: the class 'duration'" url="cplusplus18.html#l339"/>
+ <tocsect3 name="18.7.3: Clocks measuring time" url="cplusplus18.html#l340"/>
+ <tocsect3 name="18.7.4: Points in time: the class 'time_point'" url="cplusplus18.html#l341"/>
+ </tocsect2>
+ <tocsect2 name="18.8: Multi Threading" url="cplusplus18.html#l342">
+ <tocsect3 name="18.8.1: The namespace `std::this_thread'" url="cplusplus18.html#l343"/>
+ <tocsect3 name="18.8.2: The class `std::thread'" url="cplusplus18.html#l344"/>
+ <tocsect3 name="18.8.3: Synchronization (mutexes)" url="cplusplus18.html#l345"/>
+ <tocsect3 name="18.8.4: Locks and lock handling" url="cplusplus18.html#l346">
+ <tocsect4 name="18.8.4.1: Deadlocks" url="cplusplus18.html#l347"/>
+ </tocsect3>
+ <tocsect3 name="18.8.5: Event handling (condition variables)" url="cplusplus18.html#l348">
+ <tocsect4 name="18.8.5.1: The class 'condition_variable'" url="cplusplus18.html#l349"/>
+ <tocsect4 name="18.8.5.2: The class 'condition_variable_any'" url="cplusplus18.html#l350"/>
+ <tocsect4 name="18.8.5.3: An example using condition variables" url="cplusplus18.html#l351"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="18.9: Lambda expressions" url="cplusplus18.html#l352"/>
+ <tocsect2 name="18.10: Randomization and Statistical Distributions" url="cplusplus18.html#l353">
+ <tocsect3 name="18.10.1: Random Number Generators" url="cplusplus18.html#l354"/>
+ <tocsect3 name="18.10.2: Statistical distributions" url="cplusplus18.html#l355">
+ <tocsect4 name="18.10.2.1: Bernoulli distribution" url="cplusplus18.html#l356"/>
+ <tocsect4 name="18.10.2.2: Binomial distribution" url="cplusplus18.html#l357"/>
+ <tocsect4 name="18.10.2.3: Cauchy distribution" url="cplusplus18.html#l358"/>
+ <tocsect4 name="18.10.2.4: Chi-squared distribution" url="cplusplus18.html#l359"/>
+ <tocsect4 name="18.10.2.5: Extreme value distribution" url="cplusplus18.html#l360"/>
+ <tocsect4 name="18.10.2.6: Exponential distribution" url="cplusplus18.html#l361"/>
+ <tocsect4 name="18.10.2.7: Fisher F distribution" url="cplusplus18.html#l362"/>
+ <tocsect4 name="18.10.2.8: Gamma distribution" url="cplusplus18.html#l363"/>
+ <tocsect4 name="18.10.2.9: Geometric distribution" url="cplusplus18.html#l364"/>
+ <tocsect4 name="18.10.2.10: Log-normal distribution" url="cplusplus18.html#l365"/>
+ <tocsect4 name="18.10.2.11: Normal distribution" url="cplusplus18.html#l366"/>
+ <tocsect4 name="18.10.2.12: Negative binomial distribution" url="cplusplus18.html#l367"/>
+ <tocsect4 name="18.10.2.13: Poisson distribution" url="cplusplus18.html#l368"/>
+ <tocsect4 name="18.10.2.14: Student t distribution" url="cplusplus18.html#l369"/>
+ <tocsect4 name="18.10.2.15: Uniform int distribution" url="cplusplus18.html#l370"/>
+ <tocsect4 name="18.10.2.16: Uniform real distribution" url="cplusplus18.html#l371"/>
+ <tocsect4 name="18.10.2.17: Weibull distribution" url="cplusplus18.html#l372"/>
+ </tocsect3>
</tocsect2>
</tocsect1>
-<tocsect1 name="Chapter 17: The Standard Template Library, generic algorithms" url="cplusplus17.html#l209">
- <tocsect2 name="17.1: Predefined function objects" url="cplusplus17.html#l210">
- <tocsect3 name="17.1.1: Arithmetic Function Objects" url="cplusplus17.html#l211"/>
- <tocsect3 name="17.1.2: Relational Function Objects" url="cplusplus17.html#l212"/>
- <tocsect3 name="17.1.3: Logical Function Objects" url="cplusplus17.html#l213"/>
- <tocsect3 name="17.1.4: Function Adaptors" url="cplusplus17.html#l214"/>
- </tocsect2>
- <tocsect2 name="17.2: Iterators" url="cplusplus17.html#l215">
- <tocsect3 name="17.2.1: Insert iterators" url="cplusplus17.html#l216"/>
- <tocsect3 name="17.2.2: istream iterators" url="cplusplus17.html#l217">
- <tocsect4 name="17.2.2.1: istreambuf iterators" url="cplusplus17.html#l218"/>
- </tocsect3>
- <tocsect3 name="17.2.3: ostream iterators" url="cplusplus17.html#l219">
- <tocsect4 name="17.2.3.1: ostreambuf iterators" url="cplusplus17.html#l220"/>
- </tocsect3>
- </tocsect2>
- <tocsect2 name="17.3: The 'auto_ptr' class" url="cplusplus17.html#l221">
- <tocsect3 name="17.3.1: Defining auto_ptr variables" url="cplusplus17.html#l222"/>
- <tocsect3 name="17.3.2: Pointing to a newly allocated object" url="cplusplus17.html#l223"/>
- <tocsect3 name="17.3.3: Pointing to another auto_ptr" url="cplusplus17.html#l224"/>
- <tocsect3 name="17.3.4: Creating a plain auto_ptr" url="cplusplus17.html#l225"/>
- <tocsect3 name="17.3.5: Auto_ptr: operators and members" url="cplusplus17.html#l226"/>
- </tocsect2>
- <tocsect2 name="17.4: The Generic Algorithms" url="cplusplus17.html#l227">
- <tocsect3 name="17.4.1: accumulate()" url="cplusplus17.html#l228"/>
- <tocsect3 name="17.4.2: adjacent_difference()" url="cplusplus17.html#l229"/>
- <tocsect3 name="17.4.3: adjacent_find()" url="cplusplus17.html#l230"/>
- <tocsect3 name="17.4.4: binary_search()" url="cplusplus17.html#l231"/>
- <tocsect3 name="17.4.5: copy()" url="cplusplus17.html#l232"/>
- <tocsect3 name="17.4.6: copy_backward()" url="cplusplus17.html#l233"/>
- <tocsect3 name="17.4.7: count()" url="cplusplus17.html#l234"/>
- <tocsect3 name="17.4.8: count_if()" url="cplusplus17.html#l235"/>
- <tocsect3 name="17.4.9: equal()" url="cplusplus17.html#l236"/>
- <tocsect3 name="17.4.10: equal_range()" url="cplusplus17.html#l237"/>
- <tocsect3 name="17.4.11: fill()" url="cplusplus17.html#l238"/>
- <tocsect3 name="17.4.12: fill_n()" url="cplusplus17.html#l239"/>
- <tocsect3 name="17.4.13: find()" url="cplusplus17.html#l240"/>
- <tocsect3 name="17.4.14: find_end()" url="cplusplus17.html#l241"/>
- <tocsect3 name="17.4.15: find_first_of()" url="cplusplus17.html#l242"/>
- <tocsect3 name="17.4.16: find_if()" url="cplusplus17.html#l243"/>
- <tocsect3 name="17.4.17: for_each()" url="cplusplus17.html#l244"/>
- <tocsect3 name="17.4.18: generate()" url="cplusplus17.html#l245"/>
- <tocsect3 name="17.4.19: generate_n()" url="cplusplus17.html#l246"/>
- <tocsect3 name="17.4.20: includes()" url="cplusplus17.html#l247"/>
- <tocsect3 name="17.4.21: inner_product()" url="cplusplus17.html#l248"/>
- <tocsect3 name="17.4.22: inplace_merge()" url="cplusplus17.html#l249"/>
- <tocsect3 name="17.4.23: iter_swap()" url="cplusplus17.html#l250"/>
- <tocsect3 name="17.4.24: lexicographical_compare()" url="cplusplus17.html#l251"/>
- <tocsect3 name="17.4.25: lower_bound()" url="cplusplus17.html#l252"/>
- <tocsect3 name="17.4.26: max()" url="cplusplus17.html#l253"/>
- <tocsect3 name="17.4.27: max_element()" url="cplusplus17.html#l254"/>
- <tocsect3 name="17.4.28: merge()" url="cplusplus17.html#l255"/>
- <tocsect3 name="17.4.29: min()" url="cplusplus17.html#l256"/>
- <tocsect3 name="17.4.30: min_element()" url="cplusplus17.html#l257"/>
- <tocsect3 name="17.4.31: mismatch()" url="cplusplus17.html#l258"/>
- <tocsect3 name="17.4.32: next_permutation()" url="cplusplus17.html#l259"/>
- <tocsect3 name="17.4.33: nth_element()" url="cplusplus17.html#l260"/>
- <tocsect3 name="17.4.34: partial_sort()" url="cplusplus17.html#l261"/>
- <tocsect3 name="17.4.35: partial_sort_copy()" url="cplusplus17.html#l262"/>
- <tocsect3 name="17.4.36: partial_sum()" url="cplusplus17.html#l263"/>
- <tocsect3 name="17.4.37: partition()" url="cplusplus17.html#l264"/>
- <tocsect3 name="17.4.38: prev_permutation()" url="cplusplus17.html#l265"/>
- <tocsect3 name="17.4.39: random_shuffle()" url="cplusplus17.html#l266"/>
- <tocsect3 name="17.4.40: remove()" url="cplusplus17.html#l267"/>
- <tocsect3 name="17.4.41: remove_copy()" url="cplusplus17.html#l268"/>
- <tocsect3 name="17.4.42: remove_if()" url="cplusplus17.html#l269"/>
- <tocsect3 name="17.4.43: remove_copy_if()" url="cplusplus17.html#l270"/>
- <tocsect3 name="17.4.44: replace()" url="cplusplus17.html#l271"/>
- <tocsect3 name="17.4.45: replace_copy()" url="cplusplus17.html#l272"/>
- <tocsect3 name="17.4.46: replace_if()" url="cplusplus17.html#l273"/>
- <tocsect3 name="17.4.47: replace_copy_if()" url="cplusplus17.html#l274"/>
- <tocsect3 name="17.4.48: reverse()" url="cplusplus17.html#l275"/>
- <tocsect3 name="17.4.49: reverse_copy()" url="cplusplus17.html#l276"/>
- <tocsect3 name="17.4.50: rotate()" url="cplusplus17.html#l277"/>
- <tocsect3 name="17.4.51: rotate_copy()" url="cplusplus17.html#l278"/>
- <tocsect3 name="17.4.52: search()" url="cplusplus17.html#l279"/>
- <tocsect3 name="17.4.53: search_n()" url="cplusplus17.html#l280"/>
- <tocsect3 name="17.4.54: set_difference()" url="cplusplus17.html#l281"/>
- <tocsect3 name="17.4.55: set_intersection()" url="cplusplus17.html#l282"/>
- <tocsect3 name="17.4.56: set_symmetric_difference()" url="cplusplus17.html#l283"/>
- <tocsect3 name="17.4.57: set_union()" url="cplusplus17.html#l284"/>
- <tocsect3 name="17.4.58: sort()" url="cplusplus17.html#l285"/>
- <tocsect3 name="17.4.59: stable_partition()" url="cplusplus17.html#l286"/>
- <tocsect3 name="17.4.60: stable_sort()" url="cplusplus17.html#l287"/>
- <tocsect3 name="17.4.61: swap()" url="cplusplus17.html#l288"/>
- <tocsect3 name="17.4.62: swap_ranges()" url="cplusplus17.html#l289"/>
- <tocsect3 name="17.4.63: transform()" url="cplusplus17.html#l290"/>
- <tocsect3 name="17.4.64: unique()" url="cplusplus17.html#l291"/>
- <tocsect3 name="17.4.65: unique_copy()" url="cplusplus17.html#l292"/>
- <tocsect3 name="17.4.66: upper_bound()" url="cplusplus17.html#l293"/>
- <tocsect3 name="17.4.67: Heap algorithms" url="cplusplus17.html#l294">
- <tocsect4 name="17.4.67.1: make_heap()" url="cplusplus17.html#l295"/>
- <tocsect4 name="17.4.67.2: pop_heap()" url="cplusplus17.html#l296"/>
- <tocsect4 name="17.4.67.3: push_heap()" url="cplusplus17.html#l297"/>
- <tocsect4 name="17.4.67.4: sort_heap()" url="cplusplus17.html#l298"/>
- <tocsect4 name="17.4.67.5: An example using the heap algorithms" url="cplusplus17.html#l299"/>
+<tocsect1 name="Chapter 19: The STL Generic Algorithms" url="cplusplus19.html#l373">
+ <tocsect2 name="19.1: The Generic Algorithms" url="cplusplus19.html#l374">
+ <tocsect3 name="19.1.1: accumulate" url="cplusplus19.html#l375"/>
+ <tocsect3 name="19.1.2: adjacent_difference" url="cplusplus19.html#l376"/>
+ <tocsect3 name="19.1.3: adjacent_find" url="cplusplus19.html#l377"/>
+ <tocsect3 name="19.1.4: binary_search" url="cplusplus19.html#l378"/>
+ <tocsect3 name="19.1.5: copy" url="cplusplus19.html#l379"/>
+ <tocsect3 name="19.1.6: copy_backward" url="cplusplus19.html#l380"/>
+ <tocsect3 name="19.1.7: count" url="cplusplus19.html#l381"/>
+ <tocsect3 name="19.1.8: count_if" url="cplusplus19.html#l382"/>
+ <tocsect3 name="19.1.9: equal" url="cplusplus19.html#l383"/>
+ <tocsect3 name="19.1.10: equal_range" url="cplusplus19.html#l384"/>
+ <tocsect3 name="19.1.11: fill" url="cplusplus19.html#l385"/>
+ <tocsect3 name="19.1.12: fill_n" url="cplusplus19.html#l386"/>
+ <tocsect3 name="19.1.13: find" url="cplusplus19.html#l387"/>
+ <tocsect3 name="19.1.14: find_end" url="cplusplus19.html#l388"/>
+ <tocsect3 name="19.1.15: find_first_of" url="cplusplus19.html#l389"/>
+ <tocsect3 name="19.1.16: find_if" url="cplusplus19.html#l390"/>
+ <tocsect3 name="19.1.17: for_each" url="cplusplus19.html#l391"/>
+ <tocsect3 name="19.1.18: generate" url="cplusplus19.html#l392"/>
+ <tocsect3 name="19.1.19: generate_n" url="cplusplus19.html#l393"/>
+ <tocsect3 name="19.1.20: includes" url="cplusplus19.html#l394"/>
+ <tocsect3 name="19.1.21: inner_product" url="cplusplus19.html#l395"/>
+ <tocsect3 name="19.1.22: inplace_merge" url="cplusplus19.html#l396"/>
+ <tocsect3 name="19.1.23: iter_swap" url="cplusplus19.html#l397"/>
+ <tocsect3 name="19.1.24: lexicographical_compare" url="cplusplus19.html#l398"/>
+ <tocsect3 name="19.1.25: lower_bound" url="cplusplus19.html#l399"/>
+ <tocsect3 name="19.1.26: max" url="cplusplus19.html#l400"/>
+ <tocsect3 name="19.1.27: max_element" url="cplusplus19.html#l401"/>
+ <tocsect3 name="19.1.28: merge" url="cplusplus19.html#l402"/>
+ <tocsect3 name="19.1.29: min" url="cplusplus19.html#l403"/>
+ <tocsect3 name="19.1.30: min_element" url="cplusplus19.html#l404"/>
+ <tocsect3 name="19.1.31: mismatch" url="cplusplus19.html#l405"/>
+ <tocsect3 name="19.1.32: next_permutation" url="cplusplus19.html#l406"/>
+ <tocsect3 name="19.1.33: nth_element" url="cplusplus19.html#l407"/>
+ <tocsect3 name="19.1.34: partial_sort" url="cplusplus19.html#l408"/>
+ <tocsect3 name="19.1.35: partial_sort_copy" url="cplusplus19.html#l409"/>
+ <tocsect3 name="19.1.36: partial_sum" url="cplusplus19.html#l410"/>
+ <tocsect3 name="19.1.37: partition" url="cplusplus19.html#l411"/>
+ <tocsect3 name="19.1.38: prev_permutation" url="cplusplus19.html#l412"/>
+ <tocsect3 name="19.1.39: random_shuffle" url="cplusplus19.html#l413"/>
+ <tocsect3 name="19.1.40: remove" url="cplusplus19.html#l414"/>
+ <tocsect3 name="19.1.41: remove_copy" url="cplusplus19.html#l415"/>
+ <tocsect3 name="19.1.42: remove_copy_if" url="cplusplus19.html#l416"/>
+ <tocsect3 name="19.1.43: remove_if" url="cplusplus19.html#l417"/>
+ <tocsect3 name="19.1.44: replace" url="cplusplus19.html#l418"/>
+ <tocsect3 name="19.1.45: replace_copy" url="cplusplus19.html#l419"/>
+ <tocsect3 name="19.1.46: replace_copy_if" url="cplusplus19.html#l420"/>
+ <tocsect3 name="19.1.47: replace_if" url="cplusplus19.html#l421"/>
+ <tocsect3 name="19.1.48: reverse" url="cplusplus19.html#l422"/>
+ <tocsect3 name="19.1.49: reverse_copy" url="cplusplus19.html#l423"/>
+ <tocsect3 name="19.1.50: rotate" url="cplusplus19.html#l424"/>
+ <tocsect3 name="19.1.51: rotate_copy" url="cplusplus19.html#l425"/>
+ <tocsect3 name="19.1.52: search" url="cplusplus19.html#l426"/>
+ <tocsect3 name="19.1.53: search_n" url="cplusplus19.html#l427"/>
+ <tocsect3 name="19.1.54: set_difference" url="cplusplus19.html#l428"/>
+ <tocsect3 name="19.1.55: set_intersection" url="cplusplus19.html#l429"/>
+ <tocsect3 name="19.1.56: set_symmetric_difference" url="cplusplus19.html#l430"/>
+ <tocsect3 name="19.1.57: set_union" url="cplusplus19.html#l431"/>
+ <tocsect3 name="19.1.58: sort" url="cplusplus19.html#l432"/>
+ <tocsect3 name="19.1.59: stable_partition" url="cplusplus19.html#l433"/>
+ <tocsect3 name="19.1.60: stable_sort" url="cplusplus19.html#l434"/>
+ <tocsect3 name="19.1.61: swap" url="cplusplus19.html#l435"/>
+ <tocsect3 name="19.1.62: swap_ranges" url="cplusplus19.html#l436"/>
+ <tocsect3 name="19.1.63: transform" url="cplusplus19.html#l437"/>
+ <tocsect3 name="19.1.64: unique" url="cplusplus19.html#l438"/>
+ <tocsect3 name="19.1.65: unique_copy" url="cplusplus19.html#l439"/>
+ <tocsect3 name="19.1.66: upper_bound" url="cplusplus19.html#l440"/>
+ <tocsect3 name="19.1.67: Heap algorithms" url="cplusplus19.html#l441">
+ <tocsect4 name="19.1.67.1: The `make_heap' function" url="cplusplus19.html#l442"/>
+ <tocsect4 name="19.1.67.2: The `pop_heap' function" url="cplusplus19.html#l443"/>
+ <tocsect4 name="19.1.67.3: The `push_heap' function" url="cplusplus19.html#l444"/>
+ <tocsect4 name="19.1.67.4: The `sort_heap' function" url="cplusplus19.html#l445"/>
+ <tocsect4 name="19.1.67.5: An example using the heap functions" url="cplusplus19.html#l446"/>
</tocsect3>
</tocsect2>
+ <tocsect2 name="19.2: STL: More function adaptors" url="cplusplus19.html#l447">
+ <tocsect3 name="19.2.1: Member function adaptors" url="cplusplus19.html#l448"/>
+ <tocsect3 name="19.2.2: Adaptable functions" url="cplusplus19.html#l449"/>
+ </tocsect2>
</tocsect1>
-<tocsect1 name="Chapter 18: Templates" url="cplusplus18.html#l300">
- <tocsect2 name="18.1: Template functions" url="cplusplus18.html#l301">
- <tocsect3 name="18.1.1: Template function definitions" url="cplusplus18.html#l302"/>
- <tocsect3 name="18.1.2: Instantiations of template functions" url="cplusplus18.html#l303">
- <tocsect4 name="18.1.2.1: Declaring template functions" url="cplusplus18.html#l304"/>
- </tocsect3>
- <tocsect3 name="18.1.3: Argument deduction" url="cplusplus18.html#l305">
- <tocsect4 name="18.1.3.1: Lvalue transformations" url="cplusplus18.html#l306"/>
- <tocsect4 name="18.1.3.2: Qualification conversions" url="cplusplus18.html#l307"/>
- <tocsect4 name="18.1.3.3: Conversion to a base class" url="cplusplus18.html#l308"/>
- <tocsect4 name="18.1.3.4: Summary: the template argument deduction algorithm" url="cplusplus18.html#l309"/>
- </tocsect3>
- <tocsect3 name="18.1.4: Explicit arguments" url="cplusplus18.html#l310">
- <tocsect4 name="18.1.4.1: Template explicit instantiation declarations" url="cplusplus18.html#l311"/>
- </tocsect3>
- <tocsect3 name="18.1.5: Template explicit specialization " url="cplusplus18.html#l312"/>
- <tocsect3 name="18.1.6: Overloading template functions" url="cplusplus18.html#l313"/>
- <tocsect3 name="18.1.7: Selecting an overloaded (template) function" url="cplusplus18.html#l314"/>
- <tocsect3 name="18.1.8: Name resolution within template functions" url="cplusplus18.html#l315"/>
- </tocsect2>
- <tocsect2 name="18.2: Template classes" url="cplusplus18.html#l316">
- <tocsect3 name="18.2.1: Template class definitions" url="cplusplus18.html#l317"/>
- <tocsect3 name="18.2.2: Template class instantiations" url="cplusplus18.html#l318"/>
- <tocsect3 name="18.2.3: Non-type parameters" url="cplusplus18.html#l319"/>
- <tocsect3 name="18.2.4: Template class member functions" url="cplusplus18.html#l320"/>
- <tocsect3 name="18.2.5: Template classes and friend declarations" url="cplusplus18.html#l321">
- <tocsect4 name="18.2.5.1: Non-template friends" url="cplusplus18.html#l322"/>
- <tocsect4 name="18.2.5.2: Bound friends" url="cplusplus18.html#l323"/>
- <tocsect4 name="18.2.5.3: Unbound friends" url="cplusplus18.html#l324"/>
- </tocsect3>
- <tocsect3 name="18.2.6: Template classes and static data" url="cplusplus18.html#l325"/>
- <tocsect3 name="18.2.7: Derived Template Classes" url="cplusplus18.html#l326"/>
- <tocsect3 name="18.2.8: Nesting and template classes" url="cplusplus18.html#l327"/>
- <tocsect3 name="18.2.9: Member templates" url="cplusplus18.html#l328"/>
- <tocsect3 name="18.2.10: Template class specializations" url="cplusplus18.html#l329"/>
- <tocsect3 name="18.2.11: Template class partial specializations" url="cplusplus18.html#l330"/>
- <tocsect3 name="18.2.12: Name resolution within template classes" url="cplusplus18.html#l331"/>
- </tocsect2>
- <tocsect2 name="18.3: Constructing iterators" url="cplusplus18.html#l332">
- <tocsect3 name="18.3.0.1: The implementation of a Random Access Iterator " url="cplusplus18.html#l333"/>
- <tocsect3 name="18.3.0.2: The implementation of a reverse_iterator" url="cplusplus18.html#l334"/>
+<tocsect1 name="Chapter 20: Function Templates" url="cplusplus20.html#l450">
+ <tocsect2 name="20.1: Defining function templates" url="cplusplus20.html#l451">
+ <tocsect3 name="20.1.1: Considerations regarding template parameters" url="cplusplus20.html#l452"/>
+ <tocsect3 name="20.1.2: Late-specified return type" url="cplusplus20.html#l453"/>
+ </tocsect2>
+ <tocsect2 name="20.2: Passing arguments by reference (reference wrappers)" url="cplusplus20.html#l454"/>
+ <tocsect2 name="20.3: Using Local and unnamed types as template arguments" url="cplusplus20.html#l455"/>
+ <tocsect2 name="20.4: Template parameter deduction" url="cplusplus20.html#l456">
+ <tocsect3 name="20.4.1: Lvalue transformations" url="cplusplus20.html#l457"/>
+ <tocsect3 name="20.4.2: Qualification transformations" url="cplusplus20.html#l458"/>
+ <tocsect3 name="20.4.3: Transformation to a base class" url="cplusplus20.html#l459"/>
+ <tocsect3 name="20.4.4: The template parameter deduction algorithm" url="cplusplus20.html#l460"/>
+ <tocsect3 name="20.4.5: Template type contractions" url="cplusplus20.html#l461"/>
+ </tocsect2>
+ <tocsect2 name="20.5: Declaring function templates" url="cplusplus20.html#l462">
+ <tocsect3 name="20.5.1: Instantiation declarations" url="cplusplus20.html#l463"/>
+ </tocsect2>
+ <tocsect2 name="20.6: Instantiating function templates" url="cplusplus20.html#l464">
+ <tocsect3 name="20.6.1: Instantiations: no `code bloat'" url="cplusplus20.html#l465"/>
+ </tocsect2>
+ <tocsect2 name="20.7: Using explicit template types" url="cplusplus20.html#l466"/>
+ <tocsect2 name="20.8: Overloading function templates" url="cplusplus20.html#l467">
+ <tocsect3 name="20.8.1: An example using overloaded function templates" url="cplusplus20.html#l468"/>
+ <tocsect3 name="20.8.2: Ambiguities when overloading function templates" url="cplusplus20.html#l469"/>
+ <tocsect3 name="20.8.3: Declaring overloaded function templates" url="cplusplus20.html#l470"/>
+ </tocsect2>
+ <tocsect2 name="20.9: Specializing templates for deviating types" url="cplusplus20.html#l471">
+ <tocsect3 name="20.9.1: Avoiding too many specializations" url="cplusplus20.html#l472"/>
+ <tocsect3 name="20.9.2: Declaring specializations" url="cplusplus20.html#l473"/>
+ <tocsect3 name="20.9.3: Complications when using the insertion operator" url="cplusplus20.html#l474"/>
+ </tocsect2>
+ <tocsect2 name="20.10: Static assertions" url="cplusplus20.html#l475"/>
+ <tocsect2 name="20.11: Numeric limits" url="cplusplus20.html#l476"/>
+ <tocsect2 name="20.12: Polymorphous wrappers for function objects" url="cplusplus20.html#l477"/>
+ <tocsect2 name="20.13: Compiling template definitions and instantiations" url="cplusplus20.html#l478"/>
+ <tocsect2 name="20.14: The function selection mechanism" url="cplusplus20.html#l479"/>
+ <tocsect2 name="20.15: Determining the template type parameters" url="cplusplus20.html#l480"/>
+ <tocsect2 name="20.16: SFINAE: Substitution Failure Is Not An Error" url="cplusplus20.html#l481"/>
+ <tocsect2 name="20.17: Summary of the template declaration syntax" url="cplusplus20.html#l482"/>
+</tocsect1>
+
+<tocsect1 name="Chapter 21: Class Templates" url="cplusplus21.html#l483">
+ <tocsect2 name="21.1: Defining class templates" url="cplusplus21.html#l484">
+ <tocsect3 name="21.1.1: Constructing the circular queue: CirQue" url="cplusplus21.html#l485"/>
+ <tocsect3 name="21.1.2: Non-type parameters" url="cplusplus21.html#l486"/>
+ <tocsect3 name="21.1.3: Member templates" url="cplusplus21.html#l487"/>
+ <tocsect3 name="21.1.4: CirQue's constructors and member functions" url="cplusplus21.html#l488"/>
+ <tocsect3 name="21.1.5: Using CirQue objects" url="cplusplus21.html#l489"/>
+ <tocsect3 name="21.1.6: Default class template parameters" url="cplusplus21.html#l490"/>
+ <tocsect3 name="21.1.7: Declaring class templates" url="cplusplus21.html#l491"/>
+ <tocsect3 name="21.1.8: Preventing template instantiations" url="cplusplus21.html#l492"/>
+ </tocsect2>
+ <tocsect2 name="21.2: Static data members" url="cplusplus21.html#l493">
+ <tocsect3 name="21.2.1: Extended use of the keyword `typename'" url="cplusplus21.html#l494"/>
+ </tocsect2>
+ <tocsect2 name="21.3: Specializing class templates for deviating types" url="cplusplus21.html#l495">
+ <tocsect3 name="21.3.1: Example of a class specialization" url="cplusplus21.html#l496"/>
+ </tocsect2>
+ <tocsect2 name="21.4: Partial specializations" url="cplusplus21.html#l497">
+ <tocsect3 name="21.4.1: Intermezzo: some simple matrix algebraic concepts" url="cplusplus21.html#l498"/>
+ <tocsect3 name="21.4.2: The Matrix class template" url="cplusplus21.html#l499"/>
+ <tocsect3 name="21.4.3: The MatrixRow partial specialization" url="cplusplus21.html#l500"/>
+ <tocsect3 name="21.4.4: The MatrixColumn partial specialization" url="cplusplus21.html#l501"/>
+ <tocsect3 name="21.4.5: The 1x1 matrix: avoid ambiguity" url="cplusplus21.html#l502"/>
+ </tocsect2>
+ <tocsect2 name="21.5: Variadic templates" url="cplusplus21.html#l503">
+ <tocsect3 name="21.5.1: Defining and using variadic templates" url="cplusplus21.html#l504"/>
+ <tocsect3 name="21.5.2: Perfect forwarding" url="cplusplus21.html#l505">
+ <tocsect4 name="21.5.2.1: References to references" url="cplusplus21.html#l506"/>
+ </tocsect3>
+ <tocsect3 name="21.5.3: The unpack operator" url="cplusplus21.html#l507"/>
+ <tocsect3 name="21.5.4: Non-type variadic templates" url="cplusplus21.html#l508"/>
+ </tocsect2>
+ <tocsect2 name="21.6: Tuples" url="cplusplus21.html#l509"/>
+ <tocsect2 name="21.7: Computing the return type of function objects" url="cplusplus21.html#l510"/>
+ <tocsect2 name="21.8: Instantiating class templates" url="cplusplus21.html#l511"/>
+ <tocsect2 name="21.9: Processing class templates and instantiations" url="cplusplus21.html#l512"/>
+ <tocsect2 name="21.10: Declaring friends" url="cplusplus21.html#l513">
+ <tocsect3 name="21.10.1: Non-templates used as friends in templates" url="cplusplus21.html#l514"/>
+ <tocsect3 name="21.10.2: Templates instantiated for specific types as friends" url="cplusplus21.html#l515"/>
+ <tocsect3 name="21.10.3: Unbound templates as friends" url="cplusplus21.html#l516"/>
+ <tocsect3 name="21.10.4: Extended friend declarations" url="cplusplus21.html#l517"/>
+ </tocsect2>
+ <tocsect2 name="21.11: Class template derivation" url="cplusplus21.html#l518">
+ <tocsect3 name="21.11.1: Deriving ordinary classes from class templates" url="cplusplus21.html#l519"/>
+ <tocsect3 name="21.11.2: Deriving class templates from class templates" url="cplusplus21.html#l520"/>
+ <tocsect3 name="21.11.3: Deriving class templates from ordinary classes" url="cplusplus21.html#l521"/>
+ </tocsect2>
+ <tocsect2 name="21.12: Static Polymorphism" url="cplusplus21.html#l522">
+ <tocsect3 name="21.12.1: An example of static polymorphism" url="cplusplus21.html#l523"/>
+ <tocsect3 name="21.12.2: Converting dynamic polymorphic classes to static polymorphic classes" url="cplusplus21.html#l524"/>
+ <tocsect3 name="21.12.3: Using static polymorphism to avoid reimplementations" url="cplusplus21.html#l525"/>
+ </tocsect2>
+ <tocsect2 name="21.13: Class templates and nesting" url="cplusplus21.html#l526"/>
+ <tocsect2 name="21.14: Constructing iterators" url="cplusplus21.html#l527">
+ <tocsect3 name="21.14.1: Implementing a `RandomAccessIterator'" url="cplusplus21.html#l528"/>
+ <tocsect3 name="21.14.2: Implementing a `reverse_iterator'" url="cplusplus21.html#l529"/>
+ </tocsect2>
+</tocsect1>
+
+<tocsect1 name="Chapter 22: Advanced Template Use" url="cplusplus22.html#l530">
+ <tocsect2 name="22.1: Subtleties" url="cplusplus22.html#l531">
+ <tocsect3 name="22.1.1: Returning types nested under class templates" url="cplusplus22.html#l532"/>
+ <tocsect3 name="22.1.2: Type resolution for base class members" url="cplusplus22.html#l533"/>
+ <tocsect3 name="22.1.3: ::template, .template and ->template" url="cplusplus22.html#l534"/>
+ </tocsect2>
+ <tocsect2 name="22.2: Template Meta Programming" url="cplusplus22.html#l535">
+ <tocsect3 name="22.2.1: Values according to templates" url="cplusplus22.html#l536">
+ <tocsect4 name="22.2.1.1: Converting integral types to types" url="cplusplus22.html#l537"/>
+ </tocsect3>
+ <tocsect3 name="22.2.2: Selecting alternatives using templates" url="cplusplus22.html#l538">
+ <tocsect4 name="22.2.2.1: Defining overloading members" url="cplusplus22.html#l539"/>
+ <tocsect4 name="22.2.2.2: Class structure as a function of template parameters" url="cplusplus22.html#l540"/>
+ <tocsect4 name="22.2.2.3: An illustrative example" url="cplusplus22.html#l541"/>
+ </tocsect3>
+ <tocsect3 name="22.2.3: Templates: Iterations by Recursion" url="cplusplus22.html#l542"/>
+ </tocsect2>
+ <tocsect2 name="22.3: User-defined literals" url="cplusplus22.html#l543"/>
+ <tocsect2 name="22.4: Template template parameters" url="cplusplus22.html#l544">
+ <tocsect3 name="22.4.1: Policy classes - I" url="cplusplus22.html#l545"/>
+ <tocsect3 name="22.4.2: Policy classes - II: template template parameters" url="cplusplus22.html#l546">
+ <tocsect4 name="22.4.2.1: The destructor of Policy classes" url="cplusplus22.html#l547"/>
+ </tocsect3>
+ <tocsect3 name="22.4.3: Structure by Policy" url="cplusplus22.html#l548"/>
+ </tocsect2>
+ <tocsect2 name="22.5: Template aliases" url="cplusplus22.html#l549"/>
+ <tocsect2 name="22.6: Trait classes" url="cplusplus22.html#l550">
+ <tocsect3 name="22.6.1: Distinguishing class from non-class types" url="cplusplus22.html#l551"/>
+ <tocsect3 name="22.6.2: Available type traits" url="cplusplus22.html#l552"/>
+ </tocsect2>
+ <tocsect2 name="22.7: Using `noexcept' when offering the `strong guarantee'" url="cplusplus22.html#l553"/>
+ <tocsect2 name="22.8: More conversions to class types" url="cplusplus22.html#l554">
+ <tocsect3 name="22.8.1: Types to types" url="cplusplus22.html#l555"/>
+ <tocsect3 name="22.8.2: An empty type" url="cplusplus22.html#l556"/>
+ <tocsect3 name="22.8.3: Type convertibility" url="cplusplus22.html#l557">
+ <tocsect4 name="22.8.3.1: Determining inheritance" url="cplusplus22.html#l558"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="22.9: Template TypeList processing" url="cplusplus22.html#l559">
+ <tocsect3 name="22.9.1: The length of a TypeList" url="cplusplus22.html#l560"/>
+ <tocsect3 name="22.9.2: Searching a TypeList" url="cplusplus22.html#l561"/>
+ <tocsect3 name="22.9.3: Selecting from a TypeList" url="cplusplus22.html#l562"/>
+ <tocsect3 name="22.9.4: Prefixing/Appending to a TypeList" url="cplusplus22.html#l563"/>
+ <tocsect3 name="22.9.5: Erasing from a TypeList" url="cplusplus22.html#l564">
+ <tocsect4 name="22.9.5.1: Erasing the first occurrence" url="cplusplus22.html#l565"/>
+ <tocsect4 name="22.9.5.2: Erasing a type by its index" url="cplusplus22.html#l566"/>
+ <tocsect4 name="22.9.5.3: Erasing all occurrences of a type" url="cplusplus22.html#l567"/>
+ <tocsect4 name="22.9.5.4: Erasing duplicates" url="cplusplus22.html#l568"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="22.10: Using a TypeList" url="cplusplus22.html#l569">
+ <tocsect3 name="22.10.1: The Wrap and Multi class templates" url="cplusplus22.html#l570"/>
+ <tocsect3 name="22.10.2: The MultiBase class template" url="cplusplus22.html#l571"/>
+ <tocsect3 name="22.10.3: Support templates" url="cplusplus22.html#l572"/>
+ <tocsect3 name="22.10.4: Using Multi" url="cplusplus22.html#l573"/>
</tocsect2>
</tocsect1>
-<tocsect1 name="Chapter 19: Concrete examples of C++" url="cplusplus19.html#l335">
- <tocsect2 name="19.1: Function objects performing bitwise operations" url="cplusplus19.html#l336"/>
- <tocsect2 name="19.2: Implementing a reverse_iterator" url="cplusplus19.html#l337"/>
- <tocsect2 name="19.3: A text to anything converter" url="cplusplus19.html#l338"/>
- <tocsect2 name="19.4: `streambuf' classes using file descriptors" url="cplusplus19.html#l339">
- <tocsect3 name="19.4.1: A class for output operations" url="cplusplus19.html#l340"/>
- <tocsect3 name="19.4.2: Classes for input operations" url="cplusplus19.html#l341">
- <tocsect4 name="19.4.2.1: Using a one-character buffer" url="cplusplus19.html#l342"/>
- <tocsect4 name="19.4.2.2: Using an n-character buffer" url="cplusplus19.html#l343"/>
- <tocsect4 name="19.4.2.3: Seeking positions in `streambuf' objects" url="cplusplus19.html#l344"/>
- <tocsect4 name="19.4.2.4: Multiple `unget()' calls in `streambuf' objects" url="cplusplus19.html#l345"/>
- </tocsect3>
- </tocsect2>
- <tocsect2 name="19.5: Using form() with ostream objects" url="cplusplus19.html#l346"/>
- <tocsect2 name="19.6: Redirection revisited" url="cplusplus19.html#l347"/>
- <tocsect2 name="19.7: The fork() system call" url="cplusplus19.html#l348">
- <tocsect3 name="19.7.1: The `Daemon' program" url="cplusplus19.html#l349"/>
- <tocsect3 name="19.7.2: The `Pipe' class" url="cplusplus19.html#l350"/>
- <tocsect3 name="19.7.3: The `ParentSlurp' class" url="cplusplus19.html#l351"/>
- <tocsect3 name="19.7.4: Communicating with multiple children" url="cplusplus19.html#l352">
- <tocsect4 name="19.7.4.1: The `Select' class" url="cplusplus19.html#l353"/>
- <tocsect4 name="19.7.4.2: The `Child' class" url="cplusplus19.html#l354"/>
- <tocsect4 name="19.7.4.3: The `Monitor' class" url="cplusplus19.html#l355"/>
- </tocsect3>
- </tocsect2>
- <tocsect2 name="19.8: Using Bison and Flex" url="cplusplus19.html#l356">
- <tocsect3 name="19.8.1: Using Flex++ to create a scanner" url="cplusplus19.html#l357">
- <tocsect4 name="19.8.1.1: The flex++ specification file" url="cplusplus19.html#l358"/>
- <tocsect4 name="19.8.1.2: The derived class: Scanner" url="cplusplus19.html#l359"/>
- <tocsect4 name="19.8.1.3: The main() function" url="cplusplus19.html#l360"/>
- <tocsect4 name="19.8.1.4: Building the scanner-program" url="cplusplus19.html#l361"/>
- </tocsect3>
- <tocsect3 name="19.8.2: Using both bison++ and flex++" url="cplusplus19.html#l362">
- <tocsect4 name="19.8.2.1: The bison++ specification file" url="cplusplus19.html#l363"/>
- <tocsect4 name="19.8.2.2: The bison++ header section" url="cplusplus19.html#l364"/>
- <tocsect4 name="19.8.2.3: The bison++ definition section" url="cplusplus19.html#l365"/>
- <tocsect4 name="19.8.2.4: The bison++ grammar rules" url="cplusplus19.html#l366"/>
- <tocsect4 name="19.8.2.5: The flex++ specification file" url="cplusplus19.html#l367"/>
- <tocsect4 name="19.8.2.6: The generation of the code" url="cplusplus19.html#l368"/>
+<tocsect1 name="Chapter 23: Concrete Examples" url="cplusplus23.html#l574">
+ <tocsect2 name="23.1: Using file descriptors with `streambuf' classes" url="cplusplus23.html#l575">
+ <tocsect3 name="23.1.1: Classes for output operations" url="cplusplus23.html#l576"/>
+ <tocsect3 name="23.1.2: Classes for input operations" url="cplusplus23.html#l577">
+ <tocsect4 name="23.1.2.1: Using a one-character buffer" url="cplusplus23.html#l578"/>
+ <tocsect4 name="23.1.2.2: Using an n-character buffer" url="cplusplus23.html#l579"/>
+ <tocsect4 name="23.1.2.3: Seeking positions in `streambuf' objects" url="cplusplus23.html#l580"/>
+ <tocsect4 name="23.1.2.4: Multiple `unget' calls in `streambuf' objects" url="cplusplus23.html#l581"/>
+ </tocsect3>
+ <tocsect3 name="23.1.3: Fixed-sized field extraction from istream objects" url="cplusplus23.html#l582">
+ <tocsect4 name="23.1.3.1: Member functions and example" url="cplusplus23.html#l583"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="23.2: The `fork' system call" url="cplusplus23.html#l584">
+ <tocsect3 name="23.2.1: A basic Fork class" url="cplusplus23.html#l585"/>
+ <tocsect3 name="23.2.2: Parents and Children" url="cplusplus23.html#l586"/>
+ <tocsect3 name="23.2.3: Redirection revisited" url="cplusplus23.html#l587"/>
+ <tocsect3 name="23.2.4: The `Daemon' program" url="cplusplus23.html#l588"/>
+ <tocsect3 name="23.2.5: The class `Pipe'" url="cplusplus23.html#l589"/>
+ <tocsect3 name="23.2.6: The class `ParentSlurp'" url="cplusplus23.html#l590"/>
+ <tocsect3 name="23.2.7: Communicating with multiple children" url="cplusplus23.html#l591">
+ <tocsect4 name="23.2.7.1: The class `Selector': interface" url="cplusplus23.html#l592"/>
+ <tocsect4 name="23.2.7.2: The class `Selector': implementation" url="cplusplus23.html#l593"/>
+ <tocsect4 name="23.2.7.3: The class `Monitor': interface" url="cplusplus23.html#l594"/>
+ <tocsect4 name="23.2.7.4: The class `Monitor': s_handler" url="cplusplus23.html#l595"/>
+ <tocsect4 name="23.2.7.5: The class `Monitor': the member `run'" url="cplusplus23.html#l596"/>
+ <tocsect4 name="23.2.7.6: The class `Monitor': example" url="cplusplus23.html#l597"/>
+ <tocsect4 name="23.2.7.7: The class `Child'" url="cplusplus23.html#l598"/>
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="23.3: Function objects performing bitwise operations" url="cplusplus23.html#l599"/>
+ <tocsect2 name="23.4: Adding binary operators to classes" url="cplusplus23.html#l600">
+ <tocsect3 name="23.4.1: Binary operators allowing promotions" url="cplusplus23.html#l601">
+ </tocsect3>
+ </tocsect2>
+ <tocsect2 name="23.5: Range-based for-loops and pointer-ranges" url="cplusplus23.html#l602"/>
+ <tocsect2 name="23.6: Distinguishing lvalues from rvalues with operator[]()" url="cplusplus23.html#l603"/>
+ <tocsect2 name="23.7: Implementing a `reverse_iterator'" url="cplusplus23.html#l604"/>
+ <tocsect2 name="23.8: Using `bisonc++' and `flexc++'" url="cplusplus23.html#l605">
+ <tocsect3 name="23.8.1: Using `flexc++' to create a scanner" url="cplusplus23.html#l606">
+ <tocsect4 name="23.8.1.1: The derived class `Scanner'" url="cplusplus23.html#l607"/>
+ <tocsect4 name="23.8.1.2: The lexical scanner specification file" url="cplusplus23.html#l608"/>
+ <tocsect4 name="23.8.1.3: Implementing `Scanner'" url="cplusplus23.html#l609"/>
+ <tocsect4 name="23.8.1.4: Using a `Scanner' object" url="cplusplus23.html#l610"/>
+ <tocsect4 name="23.8.1.5: Building the program" url="cplusplus23.html#l611"/>
+ </tocsect3>
+ <tocsect3 name="23.8.2: Using `bisonc++' and `flexc++'" url="cplusplus23.html#l612">
+ <tocsect4 name="23.8.2.1: The `bisonc++' specification file" url="cplusplus23.html#l613"/>
+ <tocsect4 name="23.8.2.2: The `flexc++' specification file" url="cplusplus23.html#l614"/>
+ <tocsect4 name="23.8.2.3: Building the program" url="cplusplus23.html#l615"/>
+ </tocsect3>
+ <tocsect3 name="23.8.3: Bisonc++: using polymorphic semantic values" url="cplusplus23.html#l616">
+ <tocsect4 name="23.8.3.1: The parser using a polymorphic semantic value type" url="cplusplus23.html#l617"/>
+ <tocsect4 name="23.8.3.2: Tagging the actual semantic type: the `enum class Tag'" url="cplusplus23.html#l618"/>
+ <tocsect4 name="23.8.3.3: (Im)mutable semantic data: two base-structs" url="cplusplus23.html#l619"/>
+ <tocsect4 name="23.8.3.4: Traits of semantic type tags: the `TagTrait' trait class" url="cplusplus23.html#l620"/>
+ <tocsect4 name="23.8.3.5: Accessing data from derived classes" url="cplusplus23.html#l621"/>
+ <tocsect4 name="23.8.3.6: The polymorphic base class `SemBase'" url="cplusplus23.html#l622"/>
+ <tocsect4 name="23.8.3.7: The class template `Semantic', derived from `SemBase'" url="cplusplus23.html#l623"/>
+ <tocsect4 name="23.8.3.8: Adding new semantic data types" url="cplusplus23.html#l624"/>
+ <tocsect4 name="23.8.3.9: The parser's semantic value: `spSemBase'" url="cplusplus23.html#l625"/>
+ <tocsect4 name="23.8.3.10: The parser specification file" url="cplusplus23.html#l626"/>
+ <tocsect4 name="23.8.3.11: The scanner using a polymorphic semantic value type" url="cplusplus23.html#l627"/>
</tocsect3>
</tocsect2>
</tocsect1>