BS ISO/IEC 14882:2011
$215.11
Information technology. Programming Languages. C++
Published By | Publication Date | Number of Pages |
BSI | 2011 | 1360 |
PDF Catalog
PDF Pages | PDF Title |
---|---|
5 | Contents |
13 | List of Tables |
17 | List of Figures |
18 | Blank Page |
19 | 1 General 1.1 Scope 1.2 Normative references |
20 | 1.3 Terms and definitions |
23 | 1.4 Implementation compliance |
24 | 1.5 Structure of this International Standard 1.6 Syntax notation |
25 | 1.7 The C++ memory model 1.8 The C++ object model |
26 | 1.9 Program execution |
30 | 1.10 Multi-threaded executions and data races |
34 | 1.11 Acknowledgments |
35 | 2 Lexical conventions 2.1 Separate translation 2.2 Phases of translation |
36 | 2.3 Character sets |
37 | 2.4 Trigraph sequences |
38 | 2.5 Preprocessing tokens |
39 | 2.6 Alternative tokens 2.7 Tokens 2.8 Comments |
40 | 2.9 Header names 2.10 Preprocessing numbers 2.11 Identifiers |
41 | 2.12 Keywords |
42 | 2.13 Operators and punctuators 2.14 Literals 2.14.1 Kinds of literals 2.14.2 Integer literals |
44 | 2.14.3 Character literals |
46 | 2.14.4 Floating literals 2.14.5 String literals |
49 | 2.14.6 Boolean literals 2.14.7 Pointer literals 2.14.8 User-defined literals |
52 | 3 Basic concepts 3.1 Declarations and definitions |
54 | 3.2 One definition rule |
56 | 3.3 Scope 3.3.1 Declarative regions and scopes |
57 | 3.3.2 Point of declaration |
59 | 3.3.3 Block scope 3.3.4 Function prototype scope 3.3.5 Function scope 3.3.6 Namespace scope |
60 | 3.3.7 Class scope |
61 | 3.3.8 Enumeration scope 3.3.9 Template parameter scope |
62 | 3.3.10 Name hiding |
63 | 3.4 Name lookup 3.4.1 Unqualified name lookup |
67 | 3.4.2 Argument-dependent name lookup |
69 | 3.4.3 Qualified name lookup |
70 | 3.4.3.1 Class members |
71 | 3.4.3.2 Namespace members |
74 | 3.4.4 Elaborated type specifiers |
75 | 3.4.5 Class member access |
77 | 3.4.6 Using-directives and namespace aliases 3.5 Program and linkage |
80 | 3.6 Start and termination 3.6.1 Main function 3.6.2 Initialization of non-local variables |
82 | 3.6.3 Termination |
83 | 3.7 Storage duration |
84 | 3.7.1 Static storage duration 3.7.2 Thread storage duration 3.7.3 Automatic storage duration 3.7.4 Dynamic storage duration |
85 | 3.7.4.1 Allocation functions 3.7.4.2 Deallocation functions |
86 | 3.7.4.3 Safely-derived pointers |
87 | 3.7.5 Duration of subobjects 3.8 Object lifetime |
90 | 3.9 Types |
93 | 3.9.1 Fundamental types |
94 | 3.9.2 Compound types |
95 | 3.9.3 CV-qualifiers |
96 | 3.10 Lvalues and rvalues |
98 | 3.11 Alignment |
99 | 4 Standard conversions |
100 | 4.1 Lvalue-to-rvalue conversion 4.2 Array-to-pointer conversion 4.3 Function-to-pointer conversion 4.4 Qualification conversions |
101 | 4.5 Integral promotions |
102 | 4.6 Floating point promotion 4.7 Integral conversions 4.8 Floating point conversions |
103 | 4.9 Floating-integral conversions 4.10 Pointer conversions 4.11 Pointer to member conversions |
104 | 4.12 Boolean conversions 4.13 Integer conversion rank |
105 | 5 Expressions |
107 | 5.1 Primary expressions 5.1.1 General |
110 | 5.1.2 Lambda expressions |
115 | 5.2 Postfix expressions |
116 | 5.2.1 Subscripting 5.2.2 Function call |
118 | 5.2.3 Explicit type conversion (functional notation) 5.2.4 Pseudo destructor call 5.2.5 Class member access |
120 | 5.2.6 Increment and decrement 5.2.7 Dynamic cast |
121 | 5.2.8 Type identification |
122 | 5.2.9 Static cast |
124 | 5.2.10 Reinterpret cast |
125 | 5.2.11 Const cast |
127 | 5.3 Unary expressions 5.3.1 Unary operators |
128 | 5.3.2 Increment and decrement |
129 | 5.3.3 Sizeof 5.3.4 New |
133 | 5.3.5 Delete |
134 | 5.3.6 Alignof 5.3.7 noexcept operator |
135 | 5.4 Explicit type conversion (cast notation) |
136 | 5.5 Pointer-to-member operators |
137 | 5.6 Multiplicative operators 5.7 Additive operators |
139 | 5.8 Shift operators 5.9 Relational operators |
140 | 5.10 Equality operators |
141 | 5.11 Bitwise AND operator 5.12 Bitwise exclusive OR operator 5.13 Bitwise inclusive OR operator 5.14 Logical AND operator |
142 | 5.15 Logical OR operator 5.16 Conditional operator |
143 | 5.17 Assignment and compound assignment operators |
145 | 5.18 Comma operator 5.19 Constant expressions |
148 | 6 Statements 6.1 Labeled statement 6.2 Expression statement 6.3 Compound statement or block |
149 | 6.4 Selection statements |
150 | 6.4.1 The if statement 6.4.2 The switch statement |
151 | 6.5 Iteration statements 6.5.1 The while statement |
152 | 6.5.2 The do statement 6.5.3 The for statement |
153 | 6.5.4 The range-based for statement |
154 | 6.6 Jump statements 6.6.1 The break statement 6.6.2 The continue statement 6.6.3 The return statement |
155 | 6.6.4 The goto statement 6.7 Declaration statement |
156 | 6.8 Ambiguity resolution |
158 | 7 Declarations |
160 | 7.1 Specifiers 7.1.1 Storage class specifiers |
162 | 7.1.2 Function specifiers |
163 | 7.1.3 The typedef specifier |
165 | 7.1.4 The friend specifier 7.1.5 The constexpr specifier |
169 | 7.1.6 Type specifiers |
170 | 7.1.6.1 The cv-qualifiers |
171 | 7.1.6.2 Simple type specifiers |
174 | 7.1.6.3 Elaborated type specifiers 7.1.6.4 auto specifier |
175 | 7.2 Enumeration declarations |
179 | 7.3 Namespaces 7.3.1 Namespace definition |
180 | 7.3.1.1 Unnamed namespaces |
181 | 7.3.1.2 Namespace member definitions |
182 | 7.3.2 Namespace alias |
183 | 7.3.3 The using declaration |
189 | 7.3.4 Using directive |
191 | 7.4 The asm declaration |
192 | 7.5 Linkage specifications |
195 | 7.6 Attributes 7.6.1 Attribute syntax and semantics |
196 | 7.6.2 Alignment specifier |
197 | 7.6.3 Noreturn attribute |
198 | 7.6.4 Carries dependency attribute |
200 | 8 Declarators |
201 | 8.1 Type names |
202 | 8.2 Ambiguity resolution |
204 | 8.3 Meaning of declarators 8.3.1 Pointers |
205 | 8.3.2 References |
207 | 8.3.3 Pointers to members |
208 | 8.3.4 Arrays |
209 | 8.3.5 Functions |
213 | 8.3.6 Default arguments |
216 | 8.4 Function definitions 8.4.1 In general |
217 | 8.4.2 Explicitly-defaulted functions |
219 | 8.4.3 Deleted definitions |
220 | 8.5 Initializers |
223 | 8.5.1 Aggregates |
226 | 8.5.2 Character arrays |
227 | 8.5.3 References |
229 | 8.5.4 List-initialization |
234 | 9 Classes |
236 | 9.1 Class names |
238 | 9.2 Class members |
240 | 9.3 Member functions |
241 | 9.3.1 Nonstatic member functions |
242 | 9.3.2 The this pointer |
243 | 9.4 Static members |
244 | 9.4.1 Static member functions 9.4.2 Static data members |
245 | 9.5 Unions |
247 | 9.6 Bit-fields 9.7 Nested class declarations |
249 | 9.8 Local class declarations 9.9 Nested type names |
251 | 10 Derived classes |
252 | 10.1 Multiple base classes |
254 | 10.2 Member name lookup |
258 | 10.3 Virtual functions |
262 | 10.4 Abstract classes |
264 | 11 Member access control |
266 | 11.1 Access specifiers |
267 | 11.2 Accessibility of base classes and base class members |
269 | 11.3 Friends |
272 | 11.4 Protected member access |
273 | 11.5 Access to virtual functions |
274 | 11.6 Multiple access 11.7 Nested classes |
275 | 12 Special member functions 12.1 Constructors |
278 | 12.2 Temporary objects |
280 | 12.3 Conversions |
281 | 12.3.1 Conversion by constructor 12.3.2 Conversion functions |
283 | 12.4 Destructors |
285 | 12.5 Free store |
287 | 12.6 Initialization 12.6.1 Explicit initialization |
289 | 12.6.2 Initializing bases and members |
293 | 12.7 Construction and destruction |
296 | 12.8 Copying and moving class objects |
304 | 12.9 Inheriting constructors |
307 | 13 Overloading 13.1 Overloadable declarations |
309 | 13.2 Declaration matching |
310 | 13.3 Overload resolution |
311 | 13.3.1 Candidate functions and argument lists |
313 | 13.3.1.1 Function call syntax 13.3.1.1.1 Call to named function |
314 | 13.3.1.1.2 Call to object of class type |
315 | 13.3.1.2 Operators in expressions |
317 | 13.3.1.3 Initialization by constructor 13.3.1.4 Copy-initialization of class by user-defined conversion 13.3.1.5 Initialization by conversion function |
318 | 13.3.1.6 Initialization by conversion function for direct reference binding 13.3.1.7 Initialization by list-initialization 13.3.2 Viable functions |
319 | 13.3.3 Best viable function |
321 | 13.3.3.1 Implicit conversion sequences |
322 | 13.3.3.1.1 Standard conversion sequences 13.3.3.1.2 User-defined conversion sequences |
323 | 13.3.3.1.3 Ellipsis conversion sequences 13.3.3.1.4 Reference binding |
324 | 13.3.3.1.5 List-initialization sequence |
326 | 13.3.3.2 Ranking implicit conversion sequences |
329 | 13.4 Address of overloaded function |
331 | 13.5 Overloaded operators |
332 | 13.5.1 Unary operators 13.5.2 Binary operators 13.5.3 Assignment |
333 | 13.5.4 Function call 13.5.5 Subscripting 13.5.6 Class member access |
334 | 13.5.7 Increment and decrement 13.5.8 User-defined literals |
335 | 13.6 Built-in operators |
339 | 14 Templates |
340 | 14.1 Template parameters |
343 | 14.2 Names of template specializations |
345 | 14.3 Template arguments |
347 | 14.3.1 Template type arguments |
348 | 14.3.2 Template non-type arguments |
350 | 14.3.3 Template template arguments |
351 | 14.4 Type equivalence |
352 | 14.5 Template declarations 14.5.1 Class templates |
353 | 14.5.1.1 Member functions of class templates |
354 | 14.5.1.2 Member classes of class templates 14.5.1.3 Static data members of class templates |
355 | 14.5.1.4 Enumeration members of class templates 14.5.2 Member templates |
357 | 14.5.3 Variadic templates |
359 | 14.5.4 Friends |
361 | 14.5.5 Class template partial specializations |
363 | 14.5.5.1 Matching of class template partial specializations 14.5.5.2 Partial ordering of class template specializations |
364 | 14.5.5.3 Members of class template specializations |
365 | 14.5.6 Function templates 14.5.6.1 Function template overloading |
367 | 14.5.6.2 Partial ordering of function templates |
369 | 14.5.7 Alias templates |
370 | 14.6 Name resolution |
373 | 14.6.1 Locally declared names |
376 | 14.6.2 Dependent names |
377 | 14.6.2.1 Dependent types |
380 | 14.6.2.2 Type-dependent expressions |
381 | 14.6.2.3 Value-dependent expressions |
382 | 14.6.2.4 Dependent template arguments 14.6.3 Non-dependent names 14.6.4 Dependent name resolution 14.6.4.1 Point of instantiation |
383 | 14.6.4.2 Candidate functions 14.6.5 Friend names declared within a class template |
384 | 14.7 Template instantiation and specialization |
385 | 14.7.1 Implicit instantiation |
388 | 14.7.2 Explicit instantiation |
391 | 14.7.3 Explicit specialization |
396 | 14.8 Function template specializations |
397 | 14.8.1 Explicit template argument specification |
399 | 14.8.2 Template argument deduction |
403 | 14.8.2.1 Deducing template arguments from a function call |
406 | 14.8.2.2 Deducing template arguments taking the address of a function template 14.8.2.3 Deducing conversion function template arguments |
407 | 14.8.2.4 Deducing template arguments during partial ordering |
408 | 14.8.2.5 Deducing template arguments from a type |
415 | 14.8.2.6 Deducing template arguments from a function declaration 14.8.3 Overload resolution |
418 | 15 Exception handling |
419 | 15.1 Throwing an exception |
421 | 15.2 Constructors and destructors 15.3 Handling an exception |
423 | 15.4 Exception specifications |
427 | 15.5 Special functions 15.5.1 The std::terminate() function |
428 | 15.5.2 The std::unexpected() function 15.5.3 The std::uncaught_exception() function |
429 | 16 Preprocessing directives |
431 | 16.1 Conditional inclusion |
432 | 16.2 Source file inclusion |
433 | 16.3 Macro replacement |
434 | 16.3.1 Argument substitution |
435 | 16.3.2 The # operator 16.3.3 The ## operator |
436 | 16.3.4 Rescanning and further replacement 16.3.5 Scope of macro definitions |
438 | 16.4 Line control |
439 | 16.5 Error directive 16.6 Pragma directive 16.7 Null directive 16.8 Predefined macro names |
441 | 16.9 Pragma operator |
442 | 17 Library introduction 17.1 General |
443 | 17.2 The C standard library 17.3 Definitions |
446 | 17.4 Additional definitions 17.5 Method of description (Informative) 17.5.1 Structure of each clause 17.5.1.1 Elements 17.5.1.2 Summary |
447 | 17.5.1.3 Requirements 17.5.1.4 Detailed specifications |
449 | 17.5.1.5 C library 17.5.2 Other conventions 17.5.2.1 Type descriptions 17.5.2.1.1 General 17.5.2.1.2 Enumerated types 17.5.2.1.3 Bitmask types |
450 | 17.5.2.1.4 Character sequences |
451 | 17.5.2.1.4.1 Byte strings 17.5.2.1.4.2 Multibyte strings 17.5.2.2 Functions within classes 17.5.2.3 Private members |
452 | 17.6 Library-wide requirements 17.6.1 Library contents and organization 17.6.1.1 Library contents 17.6.1.2 Headers |
453 | 17.6.1.3 Freestanding implementations |
454 | 17.6.2 Using the library 17.6.2.1 Overview 17.6.2.2 Headers 17.6.2.3 Linkage |
455 | 17.6.3 Requirements on types and expressions 17.6.3.1 Template argument requirements |
456 | 17.6.3.2 Swappable requirements |
458 | 17.6.3.3 NullablePointer requirements 17.6.3.4 Hash requirements |
459 | 17.6.3.5 Allocator requirements |
463 | 17.6.4 Constraints on programs 17.6.4.1 Overview 17.6.4.2 Namespace use 17.6.4.2.1 Namespace std |
464 | 17.6.4.2.2 Namespace posix 17.6.4.3 Reserved names 17.6.4.3.1 Macro names 17.6.4.3.2 Global names 17.6.4.3.3 External linkage |
465 | 17.6.4.3.4 Types 17.6.4.3.5 User-defined literal suffixes 17.6.4.4 Headers 17.6.4.5 Derived classes 17.6.4.6 Replacement functions |
466 | 17.6.4.7 Handler functions 17.6.4.8 Other functions |
467 | 17.6.4.9 Function arguments 17.6.4.10 Shared objects and the library 17.6.4.11 Requires paragraph 17.6.5 Conforming implementations 17.6.5.1 Overview 17.6.5.2 Headers |
468 | 17.6.5.3 Restrictions on macro definitions 17.6.5.4 Global and non-member functions 17.6.5.5 Member functions |
469 | 17.6.5.6 constexpr functions and constructors 17.6.5.7 Requirements for stable algorithms 17.6.5.8 Reentrancy 17.6.5.9 Data race avoidance |
470 | 17.6.5.10 Protection within classes 17.6.5.11 Derived classes 17.6.5.12 Restrictions on exception handling 17.6.5.13 Restrictions on storage of pointers |
471 | 17.6.5.14 Value of error codes 17.6.5.15 Moved-from state of library types |
472 | 18 Language support library 18.1 General 18.2 Types |
473 | 18.3 Implementation properties 18.3.1 In general 18.3.2 Numeric limits 18.3.2.1 Class template numeric_limits |
474 | 18.3.2.2 Header synopsis 18.3.2.3 Class template numeric_limits |
475 | 18.3.2.4 numeric_limits members |
479 | 18.3.2.5 Type float_round_style |
480 | 18.3.2.6 Type float_denorm_style 18.3.2.7 numeric_limits specializations |
482 | 18.3.3 C library 18.4 Integer types 18.4.1 Header synopsis |
483 | 18.5 Start and termination |
485 | 18.6 Dynamic memory management |
486 | 18.6.1 Storage allocation and deallocation 18.6.1.1 Single-object forms |
487 | 18.6.1.2 Array forms |
488 | 18.6.1.3 Placement forms |
489 | 18.6.1.4 Data races 18.6.2 Storage allocation errors 18.6.2.1 Class bad_alloc |
490 | 18.6.2.2 Class bad_array_new_length 18.6.2.3 Type new_handler 18.6.2.4 set_new_handler 18.6.2.5 get_new_handler |
491 | 18.7 Type identification 18.7.1 Class type_info |
492 | 18.7.2 Class bad_cast 18.7.3 Class bad_typeid |
493 | 18.8 Exception handling 18.8.1 Class exception |
494 | 18.8.2 Class bad_exception |
495 | 18.8.3 Abnormal termination 18.8.3.1 Type terminate_handler 18.8.3.2 set_terminate 18.8.3.3 get_terminate 18.8.3.4 terminate |
496 | 18.8.4 uncaught_exception 18.8.5 Exception propagation |
497 | 18.8.6 nested_exception |
498 | 18.9 Initializer lists 18.9.1 Initializer list constructors 18.9.2 Initializer list access |
499 | 18.9.3 Initializer list range access 18.10 Other runtime support |
502 | 19 Diagnostics library 19.1 General 19.2 Exception classes 19.2.1 Class logic_error |
503 | 19.2.2 Class domain_error 19.2.3 Class invalid_argument |
504 | 19.2.4 Class length_error 19.2.5 Class out_of_range |
505 | 19.2.6 Class runtime_error 19.2.7 Class range_error 19.2.8 Class overflow_error |
506 | 19.2.9 Class underflow_error 19.3 Assertions |
507 | 19.4 Error numbers 19.5 System error support |
509 | 19.5.1 Class error_category 19.5.1.1 Class error_category overview |
510 | 19.5.1.2 Class error_category virtual members 19.5.1.3 Class error_category non-virtual members |
511 | 19.5.1.4 Program defined classes derived from error_category 19.5.1.5 Error category objects 19.5.2 Class error_code 19.5.2.1 Class error_code overview |
512 | 19.5.2.2 Class error_code constructors |
513 | 19.5.2.3 Class error_code modifiers 19.5.2.4 Class error_code observers 19.5.2.5 Class error_code non-member functions |
514 | 19.5.3 Class error_condition 19.5.3.1 Class error_condition overview 19.5.3.2 Class error_condition constructors |
515 | 19.5.3.3 Class error_condition modifiers 19.5.3.4 Class error_condition observers 19.5.3.5 Class error_condition non-member functions |
516 | 19.5.4 Comparison operators 19.5.5 System error hash support 19.5.6 Class system_error 19.5.6.1 Class system_error overview |
517 | 19.5.6.2 Class system_error members |
518 | 20 General utilities library 20.1 General 20.2 Utility components |
520 | 20.2.1 Operators 20.2.2 swap |
521 | 20.2.3 forward/move helpers |
522 | 20.2.4 Function template declval 20.3 Pairs 20.3.1 In general 20.3.2 Class template pair |
525 | 20.3.3 Specialized algorithms |
526 | 20.3.4 Tuple-like access to pair 20.3.5 Piecewise construction 20.4 Tuples 20.4.1 In general |
528 | 20.4.2 Class template tuple |
529 | 20.4.2.1 Construction |
531 | 20.4.2.2 Assignment |
532 | 20.4.2.3 swap 20.4.2.4 Tuple creation functions |
533 | 20.4.2.5 Tuple helper classes |
534 | 20.4.2.6 Element access |
535 | 20.4.2.7 Relational operators 20.4.2.8 Tuple traits |
536 | 20.4.2.9 Tuple specialized algorithms 20.5 Class template bitset |
538 | 20.5.1 bitset constructors |
539 | 20.5.2 bitset members |
542 | 20.5.3 bitset hash support 20.5.4 bitset operators |
543 | 20.6 Memory 20.6.1 In general 20.6.2 Header synopsis |
547 | 20.6.3 Pointer traits 20.6.3.1 Pointer traits member types |
548 | 20.6.3.2 Pointer traits member functions 20.6.4 Pointer safety |
549 | 20.6.5 Align |
550 | 20.6.6 Allocator argument tag 20.6.7 uses_allocator 20.6.7.1 uses_allocator trait 20.6.7.2 uses-allocator construction 20.6.8 Allocator traits |
551 | 20.6.8.1 Allocator traits member types |
552 | 20.6.8.2 Allocator traits static member functions |
553 | 20.6.9 The default allocator |
554 | 20.6.9.1 allocator members 20.6.9.2 allocator globals |
555 | 20.6.10 Raw storage iterator 20.6.11 Temporary buffers |
556 | 20.6.12 Specialized algorithms 20.6.12.1 addressof 20.6.12.2 uninitialized_copy 20.6.12.3 uninitialized_fill |
557 | 20.6.12.4 uninitialized_fill_n 20.6.13 C library |
558 | 20.7 Smart pointers 20.7.1 Class template unique_ptr |
559 | 20.7.1.1 Default deleters 20.7.1.1.1 In general 20.7.1.1.2 default_delete |
560 | 20.7.1.1.3 default_delete 20.7.1.2 unique_ptr for single objects |
561 | 20.7.1.2.1 unique_ptr constructors |
563 | 20.7.1.2.2 unique_ptr destructor |
564 | 20.7.1.2.3 unique_ptr assignment 20.7.1.2.4 unique_ptr observers |
565 | 20.7.1.2.5 unique_ptr modifiers 20.7.1.3 unique_ptr for array objects with a runtime length |
566 | 20.7.1.3.1 unique_ptr constructors 20.7.1.3.2 unique_ptr observers |
567 | 20.7.1.3.3 unique_ptr modifiers 20.7.1.4 unique_ptr specialized algorithms |
568 | 20.7.2 Shared-ownership pointers 20.7.2.1 Class bad_weak_ptr |
569 | 20.7.2.2 Class template shared_ptr |
571 | 20.7.2.2.1 shared_ptr constructors |
573 | 20.7.2.2.2 shared_ptr destructor 20.7.2.2.3 shared_ptr assignment |
574 | 20.7.2.2.4 shared_ptr modifiers 20.7.2.2.5 shared_ptr observers |
575 | 20.7.2.2.6 shared_ptr creation 20.7.2.2.7 shared_ptr comparison |
576 | 20.7.2.2.8 shared_ptr specialized algorithms 20.7.2.2.9 shared_ptr casts |
577 | 20.7.2.2.10 get_deleter 20.7.2.2.11 shared_ptr I/O |
578 | 20.7.2.3 Class template weak_ptr 20.7.2.3.1 weak_ptr constructors |
579 | 20.7.2.3.2 weak_ptr destructor 20.7.2.3.3 weak_ptr assignment 20.7.2.3.4 weak_ptr modifiers 20.7.2.3.5 weak_ptr observers |
580 | 20.7.2.3.6 weak_ptr specialized algorithms 20.7.2.3.7 Class template owner_less 20.7.2.4 Class template enable_shared_from_this |
582 | 20.7.2.5 shared_ptr atomic access |
584 | 20.7.2.6 Smart pointer hash support 20.8 Function objects |
588 | 20.8.1 Definitions 20.8.2 Requirements |
589 | 20.8.3 Class template reference_wrapper |
590 | 20.8.3.1 reference_wrapper construct/copy/destroy 20.8.3.2 reference_wrapper assignment 20.8.3.3 reference_wrapper access 20.8.3.4 reference_wrapper invocation |
591 | 20.8.3.5 reference_wrapper helper functions 20.8.4 Arithmetic operations |
592 | 20.8.5 Comparisons |
593 | 20.8.6 Logical operations 20.8.7 Bitwise operations |
594 | 20.8.8 Negators |
595 | 20.8.9 Function template bind 20.8.9.1 Function object binders 20.8.9.1.1 Class template is_bind_expression 20.8.9.1.2 Function template bind |
596 | 20.8.9.1.3 Placeholders |
597 | 20.8.10 Function template mem_fn |
598 | 20.8.11 Polymorphic function wrappers 20.8.11.1 Class bad_function_call 20.8.11.1.1 bad_function_call constructor 20.8.11.2 Class template function |
600 | 20.8.11.2.1 function construct/copy/destroy |
601 | 20.8.11.2.2 function modifiers 20.8.11.2.3 function capacity 20.8.11.2.4 function invocation |
602 | 20.8.11.2.5 function target access 20.8.11.2.6 null pointer comparison operators 20.8.11.2.7 specialized algorithms 20.8.12 Class template hash |
603 | 20.9 Metaprogramming and type traits 20.9.1 Requirements |
604 | 20.9.2 Header synopsis |
606 | 20.9.3 Helper classes 20.9.4 Unary type traits 20.9.4.1 Primary type categories |
607 | 20.9.4.2 Composite type traits |
608 | 20.9.4.3 Type properties |
613 | 20.9.5 Type property queries |
614 | 20.9.6 Relationships between types |
615 | 20.9.7 Transformations between types 20.9.7.1 Const-volatile modifications |
616 | 20.9.7.2 Reference modifications 20.9.7.3 Sign modifications |
617 | 20.9.7.4 Array modifications 20.9.7.5 Pointer modifications |
618 | 20.9.7.6 Other transformations |
620 | 20.10 Compile-time rational arithmetic 20.10.1 In general 20.10.2 Header synopsis |
621 | 20.10.3 Class template ratio 20.10.4 Arithmetic on ratios |
622 | 20.10.5 Comparison of ratios |
623 | 20.10.6 SI types for ratio 20.11 Time utilities 20.11.1 In general 20.11.2 Header synopsis |
625 | 20.11.3 Clock requirements |
626 | 20.11.4 Time-related traits 20.11.4.1 treat_as_floating_point |
627 | 20.11.4.2 duration_values 20.11.4.3 Specializations of common_type |
628 | 20.11.5 Class template duration |
629 | 20.11.5.1 duration constructors |
630 | 20.11.5.2 duration observer 20.11.5.3 duration arithmetic |
631 | 20.11.5.4 duration special values 20.11.5.5 duration non-member arithmetic |
632 | 20.11.5.6 duration comparisons |
633 | 20.11.5.7 duration_cast 20.11.6 Class template time_point |
634 | 20.11.6.1 time_point constructors 20.11.6.2 time_point observer 20.11.6.3 time_point arithmetic |
635 | 20.11.6.4 time_point special values 20.11.6.5 time_point non-member arithmetic 20.11.6.6 time_point comparisons |
636 | 20.11.6.7 time_point_cast 20.11.7 Clocks 20.11.7.1 Class system_clock |
637 | 20.11.7.2 Class steady_clock 20.11.7.3 Class high_resolution_clock 20.11.8 Date and time functions |
638 | 20.12 Class template scoped_allocator_adaptor 20.12.1 Header synopsis |
640 | 20.12.2 Scoped allocator adaptor member types 20.12.3 Scoped allocator adaptor constructors |
641 | 20.12.4 Scoped allocator adaptor members |
643 | 20.12.5 Scoped allocator operators 20.13 Class type_index 20.13.1 Header synopsis 20.13.2 type_index overview |
644 | 20.13.3 type_index members 20.13.4 Hash support |
646 | 21 Strings library 21.1 General 21.2 Character traits 21.2.1 Character traits requirements |
648 | 21.2.2 traits typedefs |
649 | 21.2.3 char_traits specializations 21.2.3.1 struct char_traits |
650 | 21.2.3.2 struct char_traits 21.2.3.3 struct char_traits |
651 | 21.2.3.4 struct char_traits |
652 | 21.3 String classes |
656 | 21.4 Class template basic_string |
660 | 21.4.1 basic_string general requirements 21.4.2 basic_string constructors and assignment operators |
664 | 21.4.3 basic_string iterator support 21.4.4 basic_string capacity |
665 | 21.4.5 basic_string element access |
666 | 21.4.6 basic_string modifiers 21.4.6.1 basic_string::operator+= 21.4.6.2 basic_string::append |
668 | 21.4.6.3 basic_string::assign |
669 | 21.4.6.4 basic_string::insert |
670 | 21.4.6.5 basic_string::erase |
671 | 21.4.6.6 basic_string::replace |
673 | 21.4.6.7 basic_string::copy 21.4.6.8 basic_string::swap 21.4.7 basic_string string operations 21.4.7.1 basic_string accessors 21.4.7.2 basic_string::find |
674 | 21.4.7.3 basic_string::rfind 21.4.7.4 basic_string::find_first_of |
675 | 21.4.7.5 basic_string::find_last_of 21.4.7.6 basic_string::find_first_not_of |
676 | 21.4.7.7 basic_string::find_last_not_of 21.4.7.8 basic_string::substr |
677 | 21.4.7.9 basic_string::compare 21.4.8 basic_string non-member functions 21.4.8.1 operator+ |
679 | 21.4.8.2 operator== 21.4.8.3 operator!= |
680 | 21.4.8.4 operator< 21.4.8.5 operator> 21.4.8.6 operator<= |
681 | 21.4.8.7 operator>= 21.4.8.8 swap 21.4.8.9 Inserters and extractors |
683 | 21.5 Numeric conversions |
684 | 21.6 Hash support |
685 | 21.7 Null-terminated sequence utilities |
689 | 22 Localization library 22.1 General 22.2 Header synopsis |
690 | 22.3 Locales 22.3.1 Class locale |
692 | 22.3.1.1 locale types 22.3.1.1.1 Type locale::category |
693 | 22.3.1.1.2 Class locale::facet |
694 | 22.3.1.1.3 Class locale::id |
695 | 22.3.1.2 locale constructors and destructor |
696 | 22.3.1.3 locale members 22.3.1.4 locale operators |
697 | 22.3.1.5 locale static members 22.3.2 locale globals 22.3.3 Convenience interfaces 22.3.3.1 Character classification |
698 | 22.3.3.2 Conversions 22.3.3.2.1 Character conversions 22.3.3.2.2 string conversions |
701 | 22.3.3.2.3 Buffer conversions |
702 | 22.4 Standard locale categories 22.4.1 The ctype category |
703 | 22.4.1.1 Class template ctype |
704 | 22.4.1.1.1 ctype members 22.4.1.1.2 ctype virtual functions |
706 | 22.4.1.2 Class template ctype_byname 22.4.1.3 ctype specializations |
707 | 22.4.1.3.1 ctype destructor 22.4.1.3.2 ctype members |
708 | 22.4.1.3.3 ctype static members |
709 | 22.4.1.3.4 ctype virtual functions 22.4.1.4 Class template codecvt |
710 | 22.4.1.4.1 codecvt members |
711 | 22.4.1.4.2 codecvt virtual functions |
713 | 22.4.1.5 Class template codecvt_byname 22.4.2 The numeric category 22.4.2.1 Class template num_get |
715 | 22.4.2.1.1 num_get members 22.4.2.1.2 num_get virtual functions |
718 | 22.4.2.2 Class template num_put |
719 | 22.4.2.2.1 num_put members 22.4.2.2.2 num_put virtual functions |
722 | 22.4.3 The numeric punctuation facet 22.4.3.1 Class template numpunct |
723 | 22.4.3.1.1 numpunct members |
724 | 22.4.3.1.2 numpunct virtual functions 22.4.3.2 Class template numpunct_byname 22.4.4 The collate category 22.4.4.1 Class template collate |
725 | 22.4.4.1.1 collate members 22.4.4.1.2 collate virtual functions |
726 | 22.4.4.2 Class template collate_byname 22.4.5 The time category 22.4.5.1 Class template time_get |
727 | 22.4.5.1.1 time_get members |
729 | 22.4.5.1.2 time_get virtual functions |
730 | 22.4.5.2 Class template time_get_byname 22.4.5.3 Class template time_put |
731 | 22.4.5.3.1 time_put members 22.4.5.3.2 time_put virtual functions |
732 | 22.4.5.4 Class template time_put_byname 22.4.6 The monetary category 22.4.6.1 Class template money_get |
733 | 22.4.6.1.1 money_get members 22.4.6.1.2 money_get virtual functions |
734 | 22.4.6.2 Class template money_put |
735 | 22.4.6.2.1 money_put members 22.4.6.2.2 money_put virtual functions 22.4.6.3 Class template moneypunct |
737 | 22.4.6.3.1 moneypunct members 22.4.6.3.2 moneypunct virtual functions |
738 | 22.4.6.4 Class template moneypunct_byname 22.4.7 The message retrieval category 22.4.7.1 Class template messages |
739 | 22.4.7.1.1 messages members 22.4.7.1.2 messages virtual functions |
740 | 22.4.7.2 Class template messages_byname 22.4.8 Program-defined facets |
743 | 22.5 Standard code conversion facets |
744 | 22.6 C library locales |
746 | 23 Containers library 23.1 General 23.2 Container requirements 23.2.1 General container requirements |
752 | 23.2.2 Container data races 23.2.3 Sequence containers |
757 | 23.2.4 Associative containers |
762 | 23.2.4.1 Exception safety guarantees |
763 | 23.2.5 Unordered associative containers |
772 | 23.2.5.1 Exception safety guarantees 23.3 Sequence containers 23.3.1 In general |
774 | 23.3.2 Class template array 23.3.2.1 Class template array overview |
776 | 23.3.2.2 array constructors, copy, and assignment 23.3.2.3 array specialized algorithms 23.3.2.4 array::size 23.3.2.5 array::data 23.3.2.6 array::fill |
777 | 23.3.2.7 array::swap 23.3.2.8 Zero sized arrays 23.3.2.9 Tuple interface to class template array 23.3.3 Class template deque 23.3.3.1 Class template deque overview |
780 | 23.3.3.2 deque constructors, copy, and assignment |
781 | 23.3.3.3 deque capacity 23.3.3.4 deque modifiers |
782 | 23.3.3.5 deque specialized algorithms 23.3.4 Class template forward_list 23.3.4.1 Class template forward_list overview |
785 | 23.3.4.2 forward_list constructors, copy, assignment 23.3.4.3 forward_list iterators |
786 | 23.3.4.4 forward_list element access 23.3.4.5 forward_list modifiers |
787 | 23.3.4.6 forward_list operations |
789 | 23.3.4.7 forward_list specialized algorithms 23.3.5 Class template list 23.3.5.1 Class template list overview |
792 | 23.3.5.2 list constructors, copy, and assignment |
793 | 23.3.5.3 list capacity 23.3.5.4 list modifiers |
794 | 23.3.5.5 list operations |
796 | 23.3.5.6 list specialized algorithms 23.3.6 Class template vector 23.3.6.1 Class template vector overview |
799 | 23.3.6.2 vector constructors, copy, and assignment |
800 | 23.3.6.3 vector capacity |
801 | 23.3.6.4 vector data 23.3.6.5 vector modifiers 23.3.6.6 vector specialized algorithms |
802 | 23.3.7 Class vector |
804 | 23.4 Associative containers 23.4.1 In general 23.4.2 Header |
805 | 23.4.3 Header synopsis |
806 | 23.4.4 Class template map 23.4.4.1 Class template map overview |
809 | 23.4.4.2 map constructors, copy, and assignment 23.4.4.3 map element access |
810 | 23.4.4.4 map modifiers 23.4.4.5 map operations |
811 | 23.4.4.6 map specialized algorithms 23.4.5 Class template multimap 23.4.5.1 Class template multimap overview |
814 | 23.4.5.2 multimap constructors 23.4.5.3 multimap modifiers 23.4.5.4 multimap operations |
815 | 23.4.5.5 multimap specialized algorithms 23.4.6 Class template set 23.4.6.1 Class template set overview |
817 | 23.4.6.2 set constructors, copy, and assignment |
818 | 23.4.6.3 set specialized algorithms 23.4.7 Class template multiset 23.4.7.1 Class template multiset overview |
821 | 23.4.7.2 multiset constructors 23.4.7.3 multiset specialized algorithms 23.5 Unordered associative containers 23.5.1 In general 23.5.2 Header synopsis |
822 | 23.5.3 Header synopsis |
823 | 23.5.4 Class template unordered_map 23.5.4.1 Class template unordered_map overview |
826 | 23.5.4.2 unordered_map constructors 23.5.4.3 unordered_map element access 23.5.4.4 unordered_map modifiers |
827 | 23.5.4.5 unordered_map swap 23.5.5 Class template unordered_multimap 23.5.5.1 Class template unordered_multimap overview |
830 | 23.5.5.2 unordered_multimap constructors 23.5.5.3 unordered_multimap modifiers |
831 | 23.5.5.4 unordered_multimap swap 23.5.6 Class template unordered_set 23.5.6.1 Class template unordered_set overview |
833 | 23.5.6.2 unordered_set constructors |
834 | 23.5.6.3 unordered_set swap 23.5.7 Class template unordered_multiset 23.5.7.1 Class template unordered_multiset overview |
837 | 23.5.7.2 unordered_multiset constructors 23.5.7.3 unordered_multiset swap 23.6 Container adaptors 23.6.1 In general |
838 | 23.6.2 Header synopsis 23.6.3 Class template queue 23.6.3.1 queue definition |
839 | 23.6.3.2 queue constructors 23.6.3.3 queue constructors with allocators |
840 | 23.6.3.4 queue operators |
841 | 23.6.3.5 queue specialized algorithms 23.6.4 Class template priority_queue |
842 | 23.6.4.1 priority_queue constructors 23.6.4.2 priority_queue constructors with allocators |
843 | 23.6.4.3 priority_queue members 23.6.4.4 priority_queue specialized algorithms |
844 | 23.6.5 Class template stack 23.6.5.1 Header synopsis 23.6.5.2 stack definition |
845 | 23.6.5.3 stack constructors 23.6.5.4 stack constructors with allocators |
846 | 23.6.5.5 stack operators 23.6.5.6 stack specialized algorithms |
847 | 24 Iterators library 24.1 General 24.2 Iterator requirements 24.2.1 In general |
848 | 24.2.2 Iterator |
849 | 24.2.3 Input iterators |
850 | 24.2.4 Output iterators 24.2.5 Forward iterators |
851 | 24.2.6 Bidirectional iterators |
852 | 24.2.7 Random access iterators 24.3 Header synopsis |
855 | 24.4 Iterator primitives 24.4.1 Iterator traits |
857 | 24.4.2 Basic iterator 24.4.3 Standard iterator tags |
858 | 24.4.4 Iterator operations |
859 | 24.5 Iterator adaptors 24.5.1 Reverse iterators 24.5.1.1 Class template reverse_iterator |
860 | 24.5.1.2 reverse_iterator requirements |
861 | 24.5.1.3 reverse_iterator operations 24.5.1.3.1 reverse_iterator constructor 24.5.1.3.2 reverse_iterator::operator= 24.5.1.3.3 Conversion 24.5.1.3.4 operator* 24.5.1.3.5 operator-> |
862 | 24.5.1.3.6 operator++ 24.5.1.3.7 operator– 24.5.1.3.8 operator+ 24.5.1.3.9 operator+= 24.5.1.3.10 operator- |
863 | 24.5.1.3.11 operator-= 24.5.1.3.12 operator[] 24.5.1.3.13 operator== 24.5.1.3.14 operator< 24.5.1.3.15 operator!= 24.5.1.3.16 operator> |
864 | 24.5.1.3.17 operator>= 24.5.1.3.18 operator<= 24.5.1.3.19 operator- 24.5.1.3.20 operator+ 24.5.2 Insert iterators |
865 | 24.5.2.1 Class template back_insert_iterator 24.5.2.2 back_insert_iterator operations 24.5.2.2.1 back_insert_iterator constructor 24.5.2.2.2 back_insert_iterator::operator= 24.5.2.2.3 back_insert_iterator::operator* |
866 | 24.5.2.2.4 back_insert_iterator::operator++ 24.5.2.2.5 back_inserter 24.5.2.3 Class template front_insert_iterator 24.5.2.4 front_insert_iterator operations 24.5.2.4.1 front_insert_iterator constructor 24.5.2.4.2 front_insert_iterator::operator= |
867 | 24.5.2.4.3 front_insert_iterator::operator* 24.5.2.4.4 front_insert_iterator::operator++ 24.5.2.4.5 front_inserter 24.5.2.5 Class template insert_iterator |
868 | 24.5.2.6 insert_iterator operations 24.5.2.6.1 insert_iterator constructor 24.5.2.6.2 insert_iterator::operator= 24.5.2.6.3 insert_iterator::operator* 24.5.2.6.4 insert_iterator::operator++ 24.5.2.6.5 inserter |
869 | 24.5.3 Move iterators 24.5.3.1 Class template move_iterator |
870 | 24.5.3.2 move_iterator requirements 24.5.3.3 move_iterator operations 24.5.3.3.1 move_iterator constructors 24.5.3.3.2 move_iterator::operator= |
871 | 24.5.3.3.3 move_iterator conversion 24.5.3.3.4 move_iterator::operator* 24.5.3.3.5 move_iterator::operator-> 24.5.3.3.6 move_iterator::operator++ 24.5.3.3.7 move_iterator::operator– |
872 | 24.5.3.3.8 move_iterator::operator+ 24.5.3.3.9 move_iterator::operator+= 24.5.3.3.10 move_iterator::operator- 24.5.3.3.11 move_iterator::operator-= 24.5.3.3.12 move_iterator::operator[] 24.5.3.3.13 move_iterator comparisons |
873 | 24.5.3.3.14 move_iterator non-member functions 24.6 Stream iterators 24.6.1 Class template istream_iterator |
874 | 24.6.1.1 istream_iterator constructors and destructor |
875 | 24.6.1.2 istream_iterator operations 24.6.2 Class template ostream_iterator |
876 | 24.6.2.1 ostream_iterator constructors and destructor 24.6.2.2 ostream_iterator operations |
877 | 24.6.3 Class template istreambuf_iterator 24.6.3.1 Class template istreambuf_iterator::proxy |
878 | 24.6.3.2 istreambuf_iterator constructors 24.6.3.3 istreambuf_iterator::operator* 24.6.3.4 istreambuf_iterator::operator++ 24.6.3.5 istreambuf_iterator::equal |
879 | 24.6.3.6 operator== 24.6.3.7 operator!= 24.6.4 Class template ostreambuf_iterator 24.6.4.1 ostreambuf_iterator constructors |
880 | 24.6.4.2 ostreambuf_iterator operations 24.6.5 range access |
881 | 25 Algorithms library 25.1 General |
891 | 25.2 Non-modifying sequence operations 25.2.1 All of |
892 | 25.2.2 Any of 25.2.3 None of 25.2.4 For each 25.2.5 Find |
893 | 25.2.6 Find end 25.2.7 Find first 25.2.8 Adjacent find |
894 | 25.2.9 Count 25.2.10 Mismatch 25.2.11 Equal |
895 | 25.2.12 Is permutation 25.2.13 Search |
896 | 25.3 Mutating sequence operations 25.3.1 Copy |
897 | 25.3.2 Move |
898 | 25.3.3 swap 25.3.4 Transform |
899 | 25.3.5 Replace 25.3.6 Fill |
900 | 25.3.7 Generate 25.3.8 Remove |
901 | 25.3.9 Unique |
902 | 25.3.10 Reverse 25.3.11 Rotate |
903 | 25.3.12 Random shuffle 25.3.13 Partitions |
905 | 25.4 Sorting and related operations 25.4.1 Sorting 25.4.1.1 sort |
906 | 25.4.1.2 stable_sort 25.4.1.3 partial_sort 25.4.1.4 partial_sort_copy |
907 | 25.4.1.5 is_sorted 25.4.2 Nth element |
908 | 25.4.3 Binary search 25.4.3.1 lower_bound 25.4.3.2 upper_bound |
909 | 25.4.3.3 equal_range 25.4.3.4 binary_search |
910 | 25.4.4 Merge |
911 | 25.4.5 Set operations on sorted structures 25.4.5.1 includes 25.4.5.2 set_union 25.4.5.3 set_intersection |
912 | 25.4.5.4 set_difference |
913 | 25.4.5.5 set_symmetric_difference 25.4.6 Heap operations 25.4.6.1 push_heap |
914 | 25.4.6.2 pop_heap 25.4.6.3 make_heap 25.4.6.4 sort_heap |
915 | 25.4.6.5 is_heap 25.4.7 Minimum and maximum |
917 | 25.4.8 Lexicographical comparison 25.4.9 Permutation generators |
918 | 25.5 C library algorithms |
920 | 26 Numerics library 26.1 General 26.2 Numeric type requirements |
921 | 26.3 The floating-point environment 26.3.1 Header synopsis |
922 | 26.4 Complex numbers 26.4.1 Header synopsis |
924 | 26.4.2 Class template complex |
925 | 26.4.3 complex specializations |
926 | 26.4.4 complex member functions 26.4.5 complex member operators |
927 | 26.4.6 complex non-member operations |
929 | 26.4.7 complex value operations |
930 | 26.4.8 complex transcendentals |
931 | 26.4.9 Additional overloads |
932 | 26.4.10 Header 26.5 Random number generation 26.5.1 Requirements 26.5.1.1 General requirements |
933 | 26.5.1.2 Seed sequence requirements |
934 | 26.5.1.3 Uniform random number generator requirements |
935 | 26.5.1.4 Random number engine requirements |
937 | 26.5.1.5 Random number engine adaptor requirements |
938 | 26.5.1.6 Random number distribution requirements |
941 | 26.5.2 Header synopsis |
943 | 26.5.3 Random number engine class templates |
944 | 26.5.3.1 Class template linear_congruential_engine |
945 | 26.5.3.2 Class template mersenne_twister_engine |
946 | 26.5.3.3 Class template subtract_with_carry_engine |
948 | 26.5.4 Random number engine adaptor class templates 26.5.4.1 In general 26.5.4.2 Class template discard_block_engine |
949 | 26.5.4.3 Class template independent_bits_engine |
950 | 26.5.4.4 Class template shuffle_order_engine |
951 | 26.5.5 Engines and engine adaptors with predefined parameters |
953 | 26.5.6 Class random_device |
954 | 26.5.7 Utilities 26.5.7.1 Class seed_seq |
956 | 26.5.7.2 Function template generate_canonical 26.5.8 Random number distribution class templates 26.5.8.1 In general 26.5.8.2 Uniform distributions 26.5.8.2.1 Class template uniform_int_distribution |
957 | 26.5.8.2.2 Class template uniform_real_distribution |
958 | 26.5.8.3 Bernoulli distributions 26.5.8.3.1 Class bernoulli_distribution |
959 | 26.5.8.3.2 Class template binomial_distribution |
960 | 26.5.8.3.3 Class template geometric_distribution |
961 | 26.5.8.3.4 Class template negative_binomial_distribution |
962 | 26.5.8.4 Poisson distributions 26.5.8.4.1 Class template poisson_distribution |
963 | 26.5.8.4.2 Class template exponential_distribution 26.5.8.4.3 Class template gamma_distribution |
964 | 26.5.8.4.4 Class template weibull_distribution |
965 | 26.5.8.4.5 Class template extreme_value_distribution |
966 | 26.5.8.5 Normal distributions 26.5.8.5.1 Class template normal_distribution |
967 | 26.5.8.5.2 Class template lognormal_distribution |
968 | 26.5.8.5.3 Class template chi_squared_distribution |
969 | 26.5.8.5.4 Class template cauchy_distribution |
970 | 26.5.8.5.5 Class template fisher_f_distribution |
971 | 26.5.8.5.6 Class template student_t_distribution |
972 | 26.5.8.6 Sampling distributions 26.5.8.6.1 Class template discrete_distribution |
973 | 26.5.8.6.2 Class template piecewise_constant_distribution |
975 | 26.5.8.6.3 Class template piecewise_linear_distribution |
977 | 26.6 Numeric arrays 26.6.1 Header synopsis |
979 | 26.6.2 Class template valarray 26.6.2.1 Class template valarray overview |
981 | 26.6.2.2 valarray constructors |
982 | 26.6.2.3 valarray assignment |
983 | 26.6.2.4 valarray element access |
984 | 26.6.2.5 valarray subset operations |
985 | 26.6.2.6 valarray unary operators |
986 | 26.6.2.7 valarray computed assignment |
987 | 26.6.2.8 valarray member functions |
988 | 26.6.3 valarray non-member operations 26.6.3.1 valarray binary operators |
989 | 26.6.3.2 valarray logical operators |
990 | 26.6.3.3 valarray transcendentals 26.6.3.4 valarray specialized algorithms 26.6.4 Class slice 26.6.4.1 Class slice overview |
991 | 26.6.4.2 slice constructors 26.6.4.3 slice access functions 26.6.5 Class template slice_array 26.6.5.1 Class template slice_array overview |
992 | 26.6.5.2 slice_array assignment 26.6.5.3 slice_array computed assignment 26.6.5.4 slice_array fill function 26.6.6 The gslice class 26.6.6.1 The gslice class overview |
994 | 26.6.6.2 gslice constructors 26.6.6.3 gslice access functions 26.6.7 Class template gslice_array 26.6.7.1 Class template gslice_array overview |
995 | 26.6.7.2 gslice_array assignment 26.6.7.3 gslice_array 26.6.7.4 gslice_array fill function |
996 | 26.6.8 Class template mask_array 26.6.8.1 Class template mask_array overview 26.6.8.2 mask_array assignment 26.6.8.3 mask_array computed assignment |
997 | 26.6.8.4 mask_array fill function 26.6.9 Class template indirect_array 26.6.9.1 Class template indirect_array overview 26.6.9.2 indirect_array assignment |
998 | 26.6.9.3 indirect_array computed assignment 26.6.9.4 indirect_array fill function 26.6.10 valarray range access |
999 | 26.7 Generalized numeric operations 26.7.1 Header synopsis |
1000 | 26.7.2 Accumulate 26.7.3 Inner product 26.7.4 Partial sum |
1001 | 26.7.5 Adjacent difference 26.7.6 Iota |
1002 | 26.8 C library |
1007 | 27 Input/output library 27.1 General |
1008 | 27.2 Iostreams requirements 27.2.1 Imbue limitations 27.2.2 Positioning type limitations 27.2.3 Thread safety 27.3 Forward declarations |
1010 | 27.4 Standard iostream objects 27.4.1 Overview |
1011 | 27.4.2 Narrow stream objects |
1012 | 27.4.3 Wide stream objects 27.5 Iostreams base classes 27.5.1 Overview |
1013 | 27.5.2 Types |
1014 | 27.5.3 Class ios_base |
1016 | 27.5.3.1 Types 27.5.3.1.1 Class ios_base::failure 27.5.3.1.2 Type ios_base::fmtflags |
1017 | 27.5.3.1.3 Type ios_base::iostate 27.5.3.1.4 Type ios_base::openmode |
1018 | 27.5.3.1.5 Type ios_base::seekdir 27.5.3.1.6 Class ios_base::Init |
1019 | 27.5.3.2 ios_base state functions 27.5.3.3 ios_base functions |
1020 | 27.5.3.4 ios_base static members 27.5.3.5 ios_base storage functions |
1021 | 27.5.3.6 ios_base callbacks 27.5.3.7 ios_base constructors/destructor |
1022 | 27.5.4 Class template fpos 27.5.4.1 fpos members 27.5.4.2 fpos requirements |
1023 | 27.5.5 Class template basic_ios 27.5.5.1 Overview |
1024 | 27.5.5.2 basic_ios constructors 27.5.5.3 Member functions |
1027 | 27.5.5.4 basic_ios flags functions |
1028 | 27.5.6 ios_base manipulators 27.5.6.1 fmtflags manipulators |
1029 | 27.5.6.2 adjustfield manipulators 27.5.6.3 basefield manipulators |
1030 | 27.5.6.4 floatfield manipulators 27.5.6.5 Error reporting |
1031 | 27.6 Stream buffers 27.6.1 Overview 27.6.2 Stream buffer requirements |
1032 | 27.6.3 Class template basic_streambuf |
1034 | 27.6.3.1 basic_streambuf constructors 27.6.3.2 basic_streambuf public member functions 27.6.3.2.1 Locales |
1035 | 27.6.3.2.2 Buffer management and positioning 27.6.3.2.3 Get area 27.6.3.2.4 Putback |
1036 | 27.6.3.2.5 Put area 27.6.3.3 basic_streambuf protected member functions 27.6.3.3.1 Assignment 27.6.3.3.2 Get area access |
1037 | 27.6.3.3.3 Put area access 27.6.3.4 basic_streambuf virtual functions 27.6.3.4.1 Locales 27.6.3.4.2 Buffer management and positioning |
1038 | 27.6.3.4.3 Get area |
1039 | 27.6.3.4.4 Putback |
1040 | 27.6.3.4.5 Put area |
1041 | 27.7 Formatting and manipulators 27.7.1 Overview |
1042 | 27.7.2 Input streams 27.7.2.1 Class template basic_istream |
1044 | 27.7.2.1.1 basic_istream constructors 27.7.2.1.2 Class basic_istream assign and swap |
1045 | 27.7.2.1.3 Class basic_istream::sentry |
1046 | 27.7.2.2 Formatted input functions 27.7.2.2.1 Common requirements 27.7.2.2.2 Arithmetic extractors |
1047 | 27.7.2.2.3 basic_istream::operator>> |
1049 | 27.7.2.3 Unformatted input functions |
1053 | 27.7.2.4 Standard basic_istream manipulators 27.7.2.5 Class template basic_iostream |
1054 | 27.7.2.5.1 basic_iostream constructors 27.7.2.5.2 basic_iostream destructor 27.7.2.5.3 basic_iostream assign and swap |
1055 | 27.7.2.6 Rvalue stream extraction 27.7.3 Output streams 27.7.3.1 Class template basic_ostream |
1057 | 27.7.3.2 basic_ostream constructors 27.7.3.3 Class basic_ostream assign and swap |
1058 | 27.7.3.4 Class basic_ostream::sentry 27.7.3.5 basic_ostream seek members |
1059 | 27.7.3.6 Formatted output functions 27.7.3.6.1 Common requirements 27.7.3.6.2 Arithmetic inserters |
1060 | 27.7.3.6.3 basic_ostream::operator<< |
1061 | 27.7.3.6.4 Character inserter function templates |
1062 | 27.7.3.7 Unformatted output functions |
1063 | 27.7.3.8 Standard basic_ostream manipulators 27.7.3.9 Rvalue stream insertion |
1064 | 27.7.4 Standard manipulators |
1065 | 27.7.5 Extended manipulators |
1067 | 27.8 String-based streams 27.8.1 Overview |
1068 | 27.8.2 Class template basic_stringbuf |
1069 | 27.8.2.1 basic_stringbuf constructors |
1070 | 27.8.2.2 Assign and swap 27.8.2.3 Member functions |
1071 | 27.8.2.4 Overridden virtual functions |
1073 | 27.8.3 Class template basic_istringstream |
1074 | 27.8.3.1 basic_istringstream constructors 27.8.3.2 Assign and swap 27.8.3.3 Member functions |
1075 | 27.8.4 Class template basic_ostringstream 27.8.4.1 basic_ostringstream constructors |
1076 | 27.8.4.2 Assign and swap 27.8.4.3 Member functions 27.8.5 Class template basic_stringstream |
1077 | 27.8.6 basic_stringstream constructors |
1078 | 27.8.6.1 Assign and swap 27.8.7 Member functions |
1079 | 27.9 File-based streams 27.9.1 File streams 27.9.1.1 Class template basic_filebuf |
1081 | 27.9.1.2 basic_filebuf constructors 27.9.1.3 Assign and swap |
1082 | 27.9.1.4 Member functions |
1083 | 27.9.1.5 Overridden virtual functions |
1086 | 27.9.1.6 Class template basic_ifstream |
1087 | 27.9.1.7 basic_ifstream constructors 27.9.1.8 Assign and swap 27.9.1.9 Member functions |
1088 | 27.9.1.10 Class template basic_ofstream |
1089 | 27.9.1.11 basic_ofstream constructors 27.9.1.12 Assign and swap 27.9.1.13 Member functions |
1090 | 27.9.1.14 Class template basic_fstream |
1091 | 27.9.1.15 basic_fstream constructors 27.9.1.16 Assign and swap |
1092 | 27.9.1.17 Member functions 27.9.2 C library files |
1094 | 28 Regular expressions library 28.1 General 28.2 Definitions |
1095 | 28.3 Requirements |
1097 | 28.4 Header synopsis |
1104 | 28.5 Namespace std::regex_constants 28.5.1 Bitmask type syntax_option_type 28.5.2 Bitmask type regex_constants::match_flag_type |
1106 | 28.5.3 Implementation-defined error_type |
1107 | 28.6 Class regex_error 28.7 Class template regex_traits |
1110 | 28.8 Class template basic_regex |
1111 | 28.8.1 basic_regex constants |
1112 | 28.8.2 basic_regex constructors |
1113 | 28.8.3 basic_regex assign |
1114 | 28.8.4 basic_regex constant operations |
1115 | 28.8.5 basic_regex locale 28.8.6 basic_regex swap 28.8.7 basic_regex non-member functions 28.8.7.1 basic_regex non-member swap 28.9 Class template sub_match |
1116 | 28.9.1 sub_match members 28.9.2 sub_match non-member operators |
1121 | 28.10 Class template match_results |
1122 | 28.10.1 match_results constructors |
1123 | 28.10.2 match_results state 28.10.3 match_results size |
1124 | 28.10.4 match_results element access 28.10.5 match_results formatting |
1125 | 28.10.6 match_results allocator 28.10.7 match_results swap |
1126 | 28.10.8 match_results non-member functions 28.11 Regular expression algorithms 28.11.1 exceptions 28.11.2 regex_match |
1128 | 28.11.3 regex_search |
1130 | 28.11.4 regex_replace |
1131 | 28.12 Regular expression iterators 28.12.1 Class template regex_iterator |
1132 | 28.12.1.1 regex_iterator constructors 28.12.1.2 regex_iterator comparisons |
1133 | 28.12.1.3 regex_iterator dereference 28.12.1.4 regex_iterator increment |
1134 | 28.12.2 Class template regex_token_iterator |
1135 | 28.12.2.1 regex_token_iterator constructors |
1136 | 28.12.2.2 regex_token_iterator comparisons 28.12.2.3 regex_token_iterator dereference |
1137 | 28.12.2.4 regex_token_iterator increment 28.13 Modified ECMAScript regular expression grammar |
1140 | 29 Atomic operations library 29.1 General 29.2 Header synopsis |
1143 | 29.3 Order and consistency |
1146 | 29.4 Lock-free property 29.5 Atomic types |
1150 | 29.6 Operations on atomic types 29.6.1 General operations on atomic types 29.6.2 Templated operations on atomic types 29.6.3 Arithmetic operations on atomic types 29.6.4 Operations on atomic pointer types |
1151 | 29.6.5 Requirements for operations on atomic types |
1155 | 29.7 Flag type and operations |
1156 | 29.8 Fences |
1158 | 30 Thread support library 30.1 General 30.2 Requirements 30.2.1 Template parameter names 30.2.2 Exceptions 30.2.3 Native handles |
1159 | 30.2.4 Timing specifications 30.2.5 Requirements for Lockable types 30.2.5.1 In general |
1160 | 30.2.5.2 BasicLockable requirements 30.2.5.3 Lockable requirements 30.2.5.4 TimedLockable requirements |
1161 | 30.2.6 decay_copy 30.3 Threads 30.3.1 Class thread |
1162 | 30.3.1.1 Class thread::id |
1163 | 30.3.1.2 thread constructors |
1164 | 30.3.1.3 thread destructor 30.3.1.4 thread assignment |
1165 | 30.3.1.5 thread members 30.3.1.6 thread static members |
1166 | 30.3.1.7 thread specialized algorithms 30.3.2 Namespace this_thread |
1167 | 30.4 Mutual exclusion 30.4.1 Mutex requirements 30.4.1.1 In general 30.4.1.2 Mutex types |
1169 | 30.4.1.2.1 Class mutex |
1170 | 30.4.1.2.2 Class recursive_mutex 30.4.1.3 Timed mutex types |
1171 | 30.4.1.3.1 Class timed_mutex |
1172 | 30.4.1.3.2 Class recursive_timed_mutex |
1173 | 30.4.2 Locks 30.4.2.1 Class template lock_guard |
1174 | 30.4.2.2 Class template unique_lock |
1175 | 30.4.2.2.1 unique_lock constructors, destructor, and assignment |
1177 | 30.4.2.2.2 unique_lock locking |
1178 | 30.4.2.2.3 unique_lock modifiers 30.4.2.2.4 unique_lock observers 30.4.3 Generic locking algorithms |
1179 | 30.4.4 Call once 30.4.4.1 Struct once_flag 30.4.4.2 Function call_once |
1180 | 30.5 Condition variables |
1181 | 30.5.1 Class condition_variable |
1185 | 30.5.2 Class condition_variable_any |
1188 | 30.6 Futures 30.6.1 Overview |
1190 | 30.6.2 Error handling 30.6.3 Class future_error 30.6.4 Shared state |
1191 | 30.6.5 Class template promise |
1194 | 30.6.6 Class template future |
1197 | 30.6.7 Class template shared_future |
1199 | 30.6.8 Function template async |
1201 | 30.6.9 Class template packaged_task |
1202 | 30.6.9.1 packaged_task member functions |
1204 | 30.6.9.2 packaged_task globals |
1205 | A Grammar summary A.1 Keywords A.2 Lexical conventions |
1210 | A.3 Basic concepts A.4 Expressions |
1213 | A.5 Statements |
1214 | A.6 Declarations |
1218 | A.7 Declarators |
1220 | A.8 Classes |
1221 | A.9 Derived classes A.10 Special member functions |
1222 | A.11 Overloading A.12 Templates |
1223 | A.13 Exception handling A.14 Preprocessing directives |
1225 | B Implementation quantities |
1227 | C Compatibility C.1 C++ and ISO C C.1.1 Clause 2: lexical conventions |
1228 | C.1.2 Clause 3: basic concepts |
1229 | C.1.3 Clause 4: standard conversions C.1.4 Clause 5: expressions |
1230 | C.1.5 Clause 6: statements |
1231 | C.1.6 Clause 7: declarations |
1233 | C.1.7 Clause 8: declarators |
1234 | C.1.8 Clause 9: classes |
1235 | C.1.9 Clause 12: special member functions |
1236 | C.1.10 Clause 16: preprocessing directives C.2 C++ and ISO C++ 2003 C.2.1 Clause 2: lexical conventions |
1237 | C.2.2 Clause 5: expressions C.2.3 Clause 7: declarations C.2.4 Clause 8: declarators C.2.5 Clause 12: special member functions |
1238 | C.2.6 Clause 14: templates C.2.7 Clause 17: library introduction |
1239 | C.2.8 Clause 18: language support library |
1240 | C.2.9 Clause 19: diagnostics library C.2.10 Clause 20: general utilities library C.2.11 Clause 21: strings library C.2.12 Clause 23: containers library |
1242 | C.2.13 Clause 25: algorithms library C.2.14 Clause 26: numerics library C.2.15 Clause 27: Input/output library |
1243 | C.3 C standard library |
1245 | C.3.1 Modifications to headers C.3.2 Modifications to definitions C.3.2.1 Types char16_t and char32_t C.3.2.2 Type wchar_t C.3.2.3 Header C.3.2.4 Macro NULL C.3.3 Modifications to declarations C.3.4 Modifications to behavior |
1246 | C.3.4.1 Macro offsetof(type, member-designator) C.3.4.2 Memory allocation functions |
1247 | D Compatibility features D.1 Increment operator with bool operand D.2 register keyword D.3 Implicit declaration of copy functions D.4 Dynamic exception specifications D.5 C standard library headers |
1248 | D.6 Old iostreams members |
1249 | D.7 char* streams D.7.1 Class strstreambuf |
1251 | D.7.1.1 strstreambuf constructors |
1252 | D.7.1.2 Member functions |
1253 | D.7.1.3 strstreambuf overridden virtual functions |
1255 | D.7.2 Class istrstream D.7.2.1 istrstream constructors |
1256 | D.7.2.2 Member functions D.7.3 Class ostrstream D.7.3.1 ostrstream constructors |
1257 | D.7.3.2 Member functions D.7.4 Class strstream |
1258 | D.7.4.1 strstream constructors D.7.4.2 strstream destructor D.7.4.3 strstream operations D.8 Function objects D.8.1 Base |
1259 | D.8.2 Function adaptors D.8.2.1 Adaptors for pointers to functions |
1260 | D.8.2.2 Adaptors for pointers to members |
1261 | D.9 Binders |
1262 | D.9.1 Class template binder1st D.9.2 bind1st D.9.3 Class template binder2nd D.9.4 bind2nd |
1263 | D.10 auto_ptr D.10.1 Class template auto_ptr |
1264 | D.10.1.1 auto_ptr constructors |
1265 | D.10.1.2 auto_ptr members D.10.1.3 auto_ptr conversions D.11 Violating exception-specifications D.11.1 Type unexpected_handler |
1266 | D.11.2 set_unexpected D.11.3 get_unexpected D.11.4 unexpected |
1267 | E Universal character names for identifier characters E.1 Ranges of characters allowed E.2 Ranges of characters disallowed initially |
1268 | F Cross references |
1286 | Index |
1315 | Index of grammar productions |
1318 | Index of library names |
1354 | Index of implementation-defined behavior |