blob: 81f7f04d506e367dd1926517798bb87c57fca982 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
|
<!DOCTYPE tdeveloptoc>
<tdeveloptoc>
<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 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"/>
</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>
</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>
<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"/>
</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"/>
</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"/>
</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>
<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>
<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>
<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"/>
</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>
<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"/>
</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>
<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>
<tocsect2 name="7.6: Conclusion" url="cplusplus07.html#l125"/>
</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"/>
</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>
<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"/>
</tocsect2>
<tocsect2 name="8.6: Declaring exception throwers" url="cplusplus08.html#l136"/>
<tocsect2 name="8.7: Iostreams and exceptions" url="cplusplus08.html#l137"/>
</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>
<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"/>
</tocsect2>
<tocsect2 name="10.2: Static member functions" url="cplusplus10.html#l155"/>
</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>
<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>
<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"/>
</tocsect2>
</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>
<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>
<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"/>
</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"/>
</tocsect3>
</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"/>
</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 tqchildren" 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"/>
</tocsect3>
</tocsect2>
</tocsect1>
<tocsect1 name="Index" url="cppindex.html" />
</tdeveloptoc>
|