BS ISO/IEC 14882:2014:2015 Edition
$215.11
Information technology. Programming languages. C++
Published By | Publication Date | Number of Pages |
BSI | 2015 | 1378 |
PDF Catalog
PDF Pages | PDF Title |
---|---|
5 | Contents |
13 | List of Tables |
17 | List of Figures |
18 | Foreword |
19 | 1 General 1.1 Scope 1.2 Normative references |
20 | 1.3 Terms and definitions |
23 | 1.4 Implementation compliance 1.5 Structure of this International Standard |
24 | 1.6 Syntax notation 1.7 The C++ memory model |
25 | 1.8 The C++ object model |
26 | 1.9 Program execution |
29 | 1.10 Multi-threaded executions and data races |
33 | 1.11 Acknowledgments |
34 | 2 Lexical conventions 2.1 Separate translation 2.2 Phases of translation |
35 | 2.3 Character sets |
36 | 2.4 Trigraph sequences |
37 | 2.5 Preprocessing tokens |
38 | 2.6 Alternative tokens 2.7 Tokens 2.8 Comments 2.9 Header names |
39 | 2.10 Preprocessing numbers 2.11 Identifiers |
40 | 2.12 Keywords 2.13 Operators and punctuators |
41 | 2.14 Literals 2.14.1 Kinds of literals 2.14.2 Integer literals |
43 | 2.14.3 Character literals |
44 | 2.14.4 Floating literals |
45 | 2.14.5 String literals |
48 | 2.14.6 Boolean literals 2.14.7 Pointer literals 2.14.8 User-defined literals |
50 | 3 Basic concepts 3.1 Declarations and definitions |
52 | 3.2 One definition rule |
55 | 3.3 Scope 3.3.1 Declarative regions and scopes 3.3.2 Point of declaration |
57 | 3.3.3 Block scope 3.3.4 Function prototype scope 3.3.5 Function scope 3.3.6 Namespace scope |
58 | 3.3.7 Class scope |
59 | 3.3.8 Enumeration scope 3.3.9 Template parameter scope |
60 | 3.3.10 Name hiding 3.4 Name lookup |
61 | 3.4.1 Unqualified name lookup |
64 | 3.4.2 Argument-dependent name lookup |
66 | 3.4.3 Qualified name lookup |
67 | 3.4.3.1 Class members |
68 | 3.4.3.2 Namespace members |
72 | 3.4.4 Elaborated type specifiers |
73 | 3.4.5 Class member access |
74 | 3.4.6 Using-directives and namespace aliases 3.5 Program and linkage |
77 | 3.6 Start and termination 3.6.1 Main function 3.6.2 Initialization of non-local variables |
79 | 3.6.3 Termination |
80 | 3.7 Storage duration 3.7.1 Static storage duration |
81 | 3.7.2 Thread storage duration 3.7.3 Automatic storage duration 3.7.4 Dynamic storage duration 3.7.4.1 Allocation functions |
82 | 3.7.4.2 Deallocation functions |
83 | 3.7.4.3 Safely-derived pointers |
84 | 3.7.5 Duration of subobjects 3.8 Object lifetime |
87 | 3.9 Types |
89 | 3.9.1 Fundamental types |
91 | 3.9.2 Compound types |
92 | 3.9.3 CV-qualifiers |
93 | 3.10 Lvalues and rvalues |
94 | 3.11 Alignment |
96 | 4 Standard conversions |
97 | 4.1 Lvalue-to-rvalue conversion 4.2 Array-to-pointer conversion 4.3 Function-to-pointer conversion |
98 | 4.4 Qualification conversions |
99 | 4.5 Integral promotions 4.6 Floating point promotion 4.7 Integral conversions |
100 | 4.8 Floating point conversions 4.9 Floating-integral conversions 4.10 Pointer conversions 4.11 Pointer to member conversions |
101 | 4.12 Boolean conversions 4.13 Integer conversion rank |
102 | 5 Expressions |
105 | 5.1 Primary expressions 5.1.1 General |
108 | 5.1.2 Lambda expressions |
115 | 5.2 Postfix expressions 5.2.1 Subscripting |
116 | 5.2.2 Function call |
117 | 5.2.3 Explicit type conversion (functional notation) |
118 | 5.2.4 Pseudo destructor call 5.2.5 Class member access |
119 | 5.2.6 Increment and decrement 5.2.7 Dynamic cast |
121 | 5.2.8 Type identification 5.2.9 Static cast |
123 | 5.2.10 Reinterpret cast |
125 | 5.2.11 Const cast |
126 | 5.3 Unary expressions 5.3.1 Unary operators |
127 | 5.3.2 Increment and decrement 5.3.3 Sizeof |
128 | 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 5.6 Multiplicative operators |
137 | 5.7 Additive operators |
138 | 5.8 Shift operators 5.9 Relational operators |
139 | 5.10 Equality operators |
140 | 5.11 Bitwise AND operator 5.12 Bitwise exclusive OR operator 5.13 Bitwise inclusive OR operator |
141 | 5.14 Logical AND operator 5.15 Logical OR operator 5.16 Conditional operator |
143 | 5.17 Assignment and compound assignment operators |
144 | 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 6.5 Iteration statements |
151 | 6.5.1 The while statement 6.5.2 The do statement |
152 | 6.5.3 The for statement 6.5.4 The range-based for statement |
153 | 6.6 Jump statements 6.6.1 The break statement 6.6.2 The continue statement |
154 | 6.6.3 The return statement 6.6.4 The goto statement 6.7 Declaration statement |
155 | 6.8 Ambiguity resolution |
157 | 7 Declarations |
158 | 7.1 Specifiers |
159 | 7.1.1 Storage class specifiers |
161 | 7.1.2 Function specifiers 7.1.3 The typedef specifier |
163 | 7.1.4 The friend specifier 7.1.5 The constexpr specifier |
166 | 7.1.6 Type specifiers |
167 | 7.1.6.1 The cv-qualifiers |
168 | 7.1.6.2 Simple type specifiers |
172 | 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 7.3.3 The using declaration |
188 | 7.3.4 Using directive |
191 | 7.4 The asm declaration 7.5 Linkage specifications |
194 | 7.6 Attributes 7.6.1 Attribute syntax and semantics |
195 | 7.6.2 Alignment specifier |
196 | 7.6.3 Noreturn attribute 7.6.4 Carries dependency attribute |
197 | 7.6.5 Deprecated attribute |
199 | 8 Declarators |
200 | 8.1 Type names |
201 | 8.2 Ambiguity resolution |
202 | 8.3 Meaning of declarators |
203 | 8.3.1 Pointers |
204 | 8.3.2 References |
205 | 8.3.3 Pointers to members |
206 | 8.3.4 Arrays |
207 | 8.3.5 Functions |
211 | 8.3.6 Default arguments |
214 | 8.4 Function definitions 8.4.1 In general |
215 | 8.4.2 Explicitly-defaulted functions |
216 | 8.4.3 Deleted definitions |
217 | 8.5 Initializers |
221 | 8.5.1 Aggregates |
224 | 8.5.2 Character arrays 8.5.3 References |
227 | 8.5.4 List-initialization |
232 | 9 Classes |
234 | 9.1 Class names |
236 | 9.2 Class members |
238 | 9.3 Member functions |
239 | 9.3.1 Nonstatic member functions |
240 | 9.3.2 The this pointer |
241 | 9.4 Static members 9.4.1 Static member functions |
242 | 9.4.2 Static data members 9.5 Unions |
244 | 9.6 Bit-fields |
245 | 9.7 Nested class declarations |
246 | 9.8 Local class declarations 9.9 Nested type names |
248 | 10 Derived classes |
249 | 10.1 Multiple base classes |
251 | 10.2 Member name lookup |
254 | 10.3 Virtual functions |
258 | 10.4 Abstract classes |
260 | 11 Member access control |
261 | 11.1 Access specifiers |
262 | 11.2 Accessibility of base classes and base class members |
265 | 11.3 Friends |
268 | 11.4 Protected member access |
269 | 11.5 Access to virtual functions 11.6 Multiple access 11.7 Nested classes |
271 | 12 Special member functions 12.1 Constructors |
273 | 12.2 Temporary objects |
276 | 12.3 Conversions 12.3.1 Conversion by constructor |
277 | 12.3.2 Conversion functions |
278 | 12.4 Destructors |
281 | 12.5 Free store |
283 | 12.6 Initialization 12.6.1 Explicit initialization |
284 | 12.6.2 Initializing bases and members |
288 | 12.7 Construction and destruction |
291 | 12.8 Copying and moving class objects |
298 | 12.9 Inheriting constructors |
302 | 13 Overloading 13.1 Overloadable declarations |
304 | 13.2 Declaration matching |
305 | 13.3 Overload resolution |
306 | 13.3.1 Candidate functions and argument lists |
308 | 13.3.1.1 Function call syntax 13.3.1.1.1 Call to named function 13.3.1.1.2 Call to object of class type |
309 | 13.3.1.2 Operators in expressions |
312 | 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 |
313 | 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 |
314 | 13.3.3 Best viable function |
316 | 13.3.3.1 Implicit conversion sequences |
318 | 13.3.3.1.1 Standard conversion sequences 13.3.3.1.2 User-defined conversion sequences |
319 | 13.3.3.1.3 Ellipsis conversion sequences 13.3.3.1.4 Reference binding 13.3.3.1.5 List-initialization sequence |
322 | 13.3.3.2 Ranking implicit conversion sequences |
325 | 13.4 Address of overloaded function |
326 | 13.5 Overloaded operators |
327 | 13.5.1 Unary operators 13.5.2 Binary operators 13.5.3 Assignment |
328 | 13.5.4 Function call 13.5.5 Subscripting 13.5.6 Class member access 13.5.7 Increment and decrement |
329 | 13.5.8 User-defined literals |
330 | 13.6 Built-in operators |
334 | 14 Templates |
335 | 14.1 Template parameters |
338 | 14.2 Names of template specializations |
340 | 14.3 Template arguments |
342 | 14.3.1 Template type arguments 14.3.2 Template non-type arguments |
344 | 14.3.3 Template template arguments |
346 | 14.4 Type equivalence |
347 | 14.5 Template declarations 14.5.1 Class templates |
348 | 14.5.1.1 Member functions of class templates 14.5.1.2 Member classes of class templates 14.5.1.3 Static data members of class templates |
349 | 14.5.1.4 Enumeration members of class templates 14.5.2 Member templates |
351 | 14.5.3 Variadic templates |
353 | 14.5.4 Friends |
355 | 14.5.5 Class template partial specializations |
357 | 14.5.5.1 Matching of class template partial specializations 14.5.5.2 Partial ordering of class template specializations |
358 | 14.5.5.3 Members of class template specializations |
359 | 14.5.6 Function templates 14.5.6.1 Function template overloading |
361 | 14.5.6.2 Partial ordering of function templates |
363 | 14.5.7 Alias templates |
364 | 14.6 Name resolution |
367 | 14.6.1 Locally declared names |
369 | 14.6.2 Dependent names |
370 | 14.6.2.1 Dependent types |
373 | 14.6.2.2 Type-dependent expressions |
374 | 14.6.2.3 Value-dependent expressions |
375 | 14.6.2.4 Dependent template arguments 14.6.3 Non-dependent names 14.6.4 Dependent name resolution |
376 | 14.6.4.1 Point of instantiation 14.6.4.2 Candidate functions |
377 | 14.6.5 Friend names declared within a class template 14.7 Template instantiation and specialization |
378 | 14.7.1 Implicit instantiation |
381 | 14.7.2 Explicit instantiation |
384 | 14.7.3 Explicit specialization |
389 | 14.8 Function template specializations 14.8.1 Explicit template argument specification |
392 | 14.8.2 Template argument deduction |
396 | 14.8.2.1 Deducing template arguments from a function call |
398 | 14.8.2.2 Deducing template arguments taking the address of a function template 14.8.2.3 Deducing conversion function template arguments |
399 | 14.8.2.4 Deducing template arguments during partial ordering |
401 | 14.8.2.5 Deducing template arguments from a type |
407 | 14.8.2.6 Deducing template arguments from a function declaration 14.8.3 Overload resolution |
410 | 15 Exception handling |
411 | 15.1 Throwing an exception |
413 | 15.2 Constructors and destructors 15.3 Handling an exception |
415 | 15.4 Exception specifications |
418 | 15.5 Special functions |
419 | 15.5.1 The std::terminate() function |
420 | 15.5.2 The std::unexpected() function 15.5.3 The std::uncaught_exception() function |
421 | 16 Preprocessing directives |
422 | 16.1 Conditional inclusion |
423 | 16.2 Source file inclusion |
424 | 16.3 Macro replacement |
425 | 16.3.1 Argument substitution |
426 | 16.3.2 The # operator 16.3.3 The ## operator |
427 | 16.3.4 Rescanning and further replacement 16.3.5 Scope of macro definitions |
429 | 16.4 Line control |
430 | 16.5 Error directive 16.6 Pragma directive 16.7 Null directive 16.8 Predefined macro names |
431 | 16.9 Pragma operator |
432 | 17 Library introduction 17.1 General |
433 | 17.2 The C standard library 17.3 Definitions |
436 | 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 17.5.1.3 Requirements |
437 | 17.5.1.4 Detailed specifications |
438 | 17.5.1.5 C library 17.5.2 Other conventions 17.5.2.1 Type descriptions 17.5.2.1.1 General |
439 | 17.5.2.1.2 Enumerated types 17.5.2.1.3 Bitmask types |
440 | 17.5.2.1.4 Character sequences 17.5.2.1.4.1 Byte strings |
441 | 17.5.2.1.4.2 Multibyte strings 17.5.2.2 Functions within classes 17.5.2.3 Private members 17.6 Library-wide requirements 17.6.1 Library contents and organization 17.6.1.1 Library contents |
442 | 17.6.1.2 Headers |
443 | 17.6.1.3 Freestanding implementations 17.6.2 Using the library 17.6.2.1 Overview 17.6.2.2 Headers 17.6.2.3 Linkage |
444 | 17.6.3 Requirements on types and expressions 17.6.3.1 Template argument requirements |
446 | 17.6.3.2 Swappable requirements |
447 | 17.6.3.3 NullablePointer requirements |
448 | 17.6.3.4 Hash requirements 17.6.3.5 Allocator requirements |
453 | 17.6.4 Constraints on programs 17.6.4.1 Overview 17.6.4.2 Namespace use 17.6.4.2.1 Namespace std 17.6.4.2.2 Namespace posix 17.6.4.3 Reserved names |
454 | 17.6.4.3.1 Macro names 17.6.4.3.2 Global names 17.6.4.3.3 External linkage 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 |
455 | 17.6.4.7 Handler functions |
456 | 17.6.4.8 Other functions 17.6.4.9 Function arguments 17.6.4.10 Shared objects and the library |
457 | 17.6.4.11 Requires paragraph 17.6.5 Conforming implementations 17.6.5.1 Overview 17.6.5.2 Headers 17.6.5.3 Restrictions on macro definitions 17.6.5.4 Global and non-member functions 17.6.5.5 Member functions |
458 | 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 |
459 | 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 17.6.5.14 Value of error codes |
460 | 17.6.5.15 Moved-from state of library types |
461 | 18 Language support library 18.1 General 18.2 Types |
462 | 18.3 Implementation properties 18.3.1 In general 18.3.2 Numeric limits 18.3.2.1 Class template numeric_limits 18.3.2.2 Header synopsis |
463 | 18.3.2.3 Class template numeric_limits |
464 | 18.3.2.4 numeric_limits members |
468 | 18.3.2.5 Type float_round_style |
469 | 18.3.2.6 Type float_denorm_style 18.3.2.7 numeric_limits specializations |
471 | 18.3.3 C library 18.4 Integer types 18.4.1 Header synopsis |
473 | 18.5 Start and termination |
474 | 18.6 Dynamic memory management |
475 | 18.6.1 Storage allocation and deallocation 18.6.1.1 Single-object forms |
477 | 18.6.1.2 Array forms |
479 | 18.6.1.3 Placement forms 18.6.1.4 Data races 18.6.2 Storage allocation errors 18.6.2.1 Class bad_alloc |
480 | 18.6.2.2 Class bad_array_new_length 18.6.2.3 Type new_handler |
481 | 18.6.2.4 set_new_handler 18.6.2.5 get_new_handler 18.7 Type identification 18.7.1 Class type_info |
482 | 18.7.2 Class bad_cast |
483 | 18.7.3 Class bad_typeid 18.8 Exception handling |
484 | 18.8.1 Class exception |
485 | 18.8.2 Class bad_exception 18.8.3 Abnormal termination 18.8.3.1 Type terminate_handler 18.8.3.2 set_terminate 18.8.3.3 get_terminate |
486 | 18.8.3.4 terminate 18.8.4 uncaught_exception 18.8.5 Exception propagation |
487 | 18.8.6 nested_exception |
488 | 18.9 Initializer lists 18.9.1 Initializer list constructors |
489 | 18.9.2 Initializer list access 18.9.3 Initializer list range access 18.10 Other runtime support |
492 | 19 Diagnostics library 19.1 General 19.2 Exception classes 19.2.1 Class logic_error |
493 | 19.2.2 Class domain_error 19.2.3 Class invalid_argument |
494 | 19.2.4 Class length_error 19.2.5 Class out_of_range 19.2.6 Class runtime_error |
495 | 19.2.7 Class range_error 19.2.8 Class overflow_error |
496 | 19.2.9 Class underflow_error 19.3 Assertions 19.4 Error numbers 19.5 System error support |
499 | 19.5.1 Class error_category 19.5.1.1 Class error_category overview |
500 | 19.5.1.2 Class error_category virtual members 19.5.1.3 Class error_category non-virtual members |
501 | 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 |
502 | 19.5.2.2 Class error_code constructors |
503 | 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 |
504 | 19.5.3 Class error_condition 19.5.3.1 Class error_condition overview 19.5.3.2 Class error_condition constructors |
505 | 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 |
506 | 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 |
507 | 19.5.6.2 Class system_error members |
508 | 20 General utilities library 20.1 General 20.2 Utility components |
510 | 20.2.1 Operators |
511 | 20.2.2 swap 20.2.3 exchange 20.2.4 forward/move helpers |
512 | 20.2.5 Function template declval |
513 | 20.3 Pairs 20.3.1 In general 20.3.2 Class template pair |
516 | 20.3.3 Specialized algorithms |
517 | 20.3.4 Tuple-like access to pair |
518 | 20.3.5 Piecewise construction 20.4 Tuples 20.4.1 In general |
519 | 20.4.2 Class template tuple |
521 | 20.4.2.1 Construction |
523 | 20.4.2.2 Assignment |
524 | 20.4.2.3 swap 20.4.2.4 Tuple creation functions |
525 | 20.4.2.5 Tuple helper classes |
526 | 20.4.2.6 Element access |
527 | 20.4.2.7 Relational operators |
528 | 20.4.2.8 Tuple traits 20.4.2.9 Tuple specialized algorithms 20.5 Compile-time integer sequences 20.5.1 In general 20.5.2 Class template integer_sequence |
529 | 20.5.3 Alias template make_integer_sequence 20.6 Class template bitset |
531 | 20.6.1 bitset constructors |
532 | 20.6.2 bitset members |
535 | 20.6.3 bitset hash support |
536 | 20.6.4 bitset operators |
537 | 20.7 Memory 20.7.1 In general 20.7.2 Header synopsis |
541 | 20.7.3 Pointer traits 20.7.3.1 Pointer traits member types |
542 | 20.7.3.2 Pointer traits member functions 20.7.4 Pointer safety |
543 | 20.7.5 Align |
544 | 20.7.6 Allocator argument tag 20.7.7 uses_allocator 20.7.7.1 uses_allocator trait 20.7.7.2 uses-allocator construction 20.7.8 Allocator traits |
545 | 20.7.8.1 Allocator traits member types |
546 | 20.7.8.2 Allocator traits static member functions |
547 | 20.7.9 The default allocator |
548 | 20.7.9.1 allocator members |
549 | 20.7.9.2 allocator globals 20.7.10 Raw storage iterator |
550 | 20.7.11 Temporary buffers 20.7.12 Specialized algorithms 20.7.12.1 addressof 20.7.12.2 uninitialized_copy |
551 | 20.7.12.3 uninitialized_fill 20.7.12.4 uninitialized_fill_n 20.7.13 C library |
552 | 20.8 Smart pointers 20.8.1 Class template unique_ptr |
553 | 20.8.1.1 Default deleters 20.8.1.1.1 In general 20.8.1.1.2 default_delete |
554 | 20.8.1.1.3 default_delete 20.8.1.2 unique_ptr for single objects |
555 | 20.8.1.2.1 unique_ptr constructors |
558 | 20.8.1.2.2 unique_ptr destructor 20.8.1.2.3 unique_ptr assignment 20.8.1.2.4 unique_ptr observers |
559 | 20.8.1.2.5 unique_ptr modifiers 20.8.1.3 unique_ptr for array objects with a runtime length |
560 | 20.8.1.3.1 unique_ptr constructors |
561 | 20.8.1.3.2 unique_ptr observers 20.8.1.3.3 unique_ptr modifiers 20.8.1.4 unique_ptr creation 20.8.1.5 unique_ptr specialized algorithms |
563 | 20.8.2 Shared-ownership pointers 20.8.2.1 Class bad_weak_ptr 20.8.2.2 Class template shared_ptr |
566 | 20.8.2.2.1 shared_ptr constructors |
568 | 20.8.2.2.2 shared_ptr destructor 20.8.2.2.3 shared_ptr assignment 20.8.2.2.4 shared_ptr modifiers |
569 | 20.8.2.2.5 shared_ptr observers |
570 | 20.8.2.2.6 shared_ptr creation 20.8.2.2.7 shared_ptr comparison |
571 | 20.8.2.2.8 shared_ptr specialized algorithms 20.8.2.2.9 shared_ptr casts |
572 | 20.8.2.2.10 get_deleter 20.8.2.2.11 shared_ptr I/O |
573 | 20.8.2.3 Class template weak_ptr 20.8.2.3.1 weak_ptr constructors |
574 | 20.8.2.3.2 weak_ptr destructor 20.8.2.3.3 weak_ptr assignment 20.8.2.3.4 weak_ptr modifiers |
575 | 20.8.2.3.5 weak_ptr observers 20.8.2.3.6 weak_ptr specialized algorithms 20.8.2.4 Class template owner_less |
576 | 20.8.2.5 Class template enable_shared_from_this |
577 | 20.8.2.6 shared_ptr atomic access |
579 | 20.8.2.7 Smart pointer hash support |
580 | 20.9 Function objects |
583 | 20.9.1 Definitions 20.9.2 Requirements |
584 | 20.9.3 Class template reference_wrapper |
585 | 20.9.3.1 reference_wrapper construct/copy/destroy 20.9.3.2 reference_wrapper assignment |
586 | 20.9.3.3 reference_wrapper access 20.9.3.4 reference_wrapper invocation 20.9.3.5 reference_wrapper helper functions 20.9.4 Arithmetic operations |
588 | 20.9.5 Comparisons |
591 | 20.9.6 Logical operations |
592 | 20.9.7 Bitwise operations |
593 | 20.9.8 Negators |
594 | 20.9.9 Function template bind 20.9.9.1 Function object binders 20.9.9.1.1 Class template is_bind_expression 20.9.9.1.2 Class template is_placeholder 20.9.9.1.3 Function template bind |
596 | 20.9.9.1.4 Placeholders 20.9.10 Function template mem_fn 20.9.11 Polymorphic function wrappers 20.9.11.1 Class bad_function_call |
597 | 20.9.11.1.1 bad_function_call constructor 20.9.11.2 Class template function |
598 | 20.9.11.2.1 function construct/copy/destroy |
600 | 20.9.11.2.2 function modifiers 20.9.11.2.3 function capacity 20.9.11.2.4 function invocation |
601 | 20.9.11.2.5 function target access 20.9.11.2.6 null pointer comparison operators 20.9.11.2.7 specialized algorithms 20.9.12 Class template hash |
602 | 20.10 Metaprogramming and type traits 20.10.1 Requirements 20.10.2 Header synopsis |
606 | 20.10.3 Helper classes 20.10.4 Unary type traits 20.10.4.1 Primary type categories |
607 | 20.10.4.2 Composite type traits |
608 | 20.10.4.3 Type properties |
614 | 20.10.5 Type property queries |
615 | 20.10.6 Relationships between types |
616 | 20.10.7 Transformations between types 20.10.7.1 Const-volatile modifications 20.10.7.2 Reference modifications |
617 | 20.10.7.3 Sign modifications |
618 | 20.10.7.4 Array modifications 20.10.7.5 Pointer modifications |
619 | 20.10.7.6 Other transformations |
621 | 20.11 Compile-time rational arithmetic 20.11.1 In general 20.11.2 Header synopsis |
622 | 20.11.3 Class template ratio |
623 | 20.11.4 Arithmetic on ratios 20.11.5 Comparison of ratios |
624 | 20.11.6 SI types for ratio 20.12 Time utilities 20.12.1 In general 20.12.2 Header synopsis |
627 | 20.12.3 Clock requirements |
628 | 20.12.4 Time-related traits 20.12.4.1 treat_as_floating_point 20.12.4.2 duration_values |
629 | 20.12.4.3 Specializations of common_type 20.12.5 Class template duration |
630 | 20.12.5.1 duration constructors |
631 | 20.12.5.2 duration observer 20.12.5.3 duration arithmetic |
632 | 20.12.5.4 duration special values |
633 | 20.12.5.5 duration non-member arithmetic |
634 | 20.12.5.6 duration comparisons |
635 | 20.12.5.7 duration_cast 20.12.5.8 Suffixes for duration literals |
636 | 20.12.6 Class template time_point |
637 | 20.12.6.1 time_point constructors 20.12.6.2 time_point observer 20.12.6.3 time_point arithmetic 20.12.6.4 time_point special values |
638 | 20.12.6.5 time_point non-member arithmetic 20.12.6.6 time_point comparisons |
639 | 20.12.6.7 time_point_cast 20.12.7 Clocks 20.12.7.1 Class system_clock |
640 | 20.12.7.2 Class steady_clock 20.12.7.3 Class high_resolution_clock 20.12.8 Date and time functions 20.13 Class template scoped_allocator_adaptor 20.13.1 Header synopsis |
642 | 20.13.2 Scoped allocator adaptor member types |
643 | 20.13.3 Scoped allocator adaptor constructors |
644 | 20.13.4 Scoped allocator adaptor members |
646 | 20.13.5 Scoped allocator operators |
647 | 20.14 Class type_index 20.14.1 Header synopsis 20.14.2 type_index overview 20.14.3 type_index members |
648 | 20.14.4 Hash support |
649 | 21 Strings library 21.1 General 21.2 Character traits 21.2.1 Character traits requirements |
651 | 21.2.2 traits typedefs |
652 | 21.2.3 char_traits specializations 21.2.3.1 struct char_traits 21.2.3.2 struct char_traits |
653 | 21.2.3.3 struct char_traits |
654 | 21.2.3.4 struct char_traits |
655 | 21.3 String classes |
659 | 21.4 Class template basic_string |
663 | 21.4.1 basic_string general requirements 21.4.2 basic_string constructors and assignment operators |
667 | 21.4.3 basic_string iterator support 21.4.4 basic_string capacity |
669 | 21.4.5 basic_string element access 21.4.6 basic_string modifiers 21.4.6.1 basic_string::operator+= |
670 | 21.4.6.2 basic_string::append |
671 | 21.4.6.3 basic_string::assign |
672 | 21.4.6.4 basic_string::insert |
674 | 21.4.6.5 basic_string::erase 21.4.6.6 basic_string::replace |
676 | 21.4.6.7 basic_string::copy |
677 | 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 |
678 | 21.4.7.3 basic_string::rfind 21.4.7.4 basic_string::find_first_of |
679 | 21.4.7.5 basic_string::find_last_of 21.4.7.6 basic_string::find_first_not_of |
680 | 21.4.7.7 basic_string::find_last_not_of 21.4.7.8 basic_string::substr |
681 | 21.4.7.9 basic_string::compare 21.4.8 basic_string non-member functions 21.4.8.1 operator+ |
683 | 21.4.8.2 operator== |
684 | 21.4.8.3 operator!= 21.4.8.4 operator< 21.4.8.5 operator> |
685 | 21.4.8.6 operator<= 21.4.8.7 operator>= 21.4.8.8 swap |
686 | 21.4.8.9 Inserters and extractors |
687 | 21.5 Numeric conversions |
689 | 21.6 Hash support 21.7 Suffix for basic_string literals 21.8 Null-terminated sequence utilities |
693 | 22 Localization library 22.1 General 22.2 Header synopsis |
694 | 22.3 Locales 22.3.1 Class locale |
696 | 22.3.1.1 locale types 22.3.1.1.1 Type locale::category |
698 | 22.3.1.1.2 Class locale::facet 22.3.1.1.3 Class locale::id |
699 | 22.3.1.2 locale constructors and destructor |
700 | 22.3.1.3 locale members 22.3.1.4 locale operators |
701 | 22.3.1.5 locale static members 22.3.2 locale globals 22.3.3 Convenience interfaces 22.3.3.1 Character classification |
702 | 22.3.3.2 Conversions 22.3.3.2.1 Character conversions 22.3.3.2.2 string conversions |
705 | 22.3.3.2.3 Buffer conversions |
707 | 22.4 Standard locale categories 22.4.1 The ctype category 22.4.1.1 Class template ctype |
708 | 22.4.1.1.1 ctype members |
709 | 22.4.1.1.2 ctype virtual functions |
711 | 22.4.1.2 Class template ctype_byname 22.4.1.3 ctype specializations |
712 | 22.4.1.3.1 ctype destructor 22.4.1.3.2 ctype members |
713 | 22.4.1.3.3 ctype static members 22.4.1.3.4 ctype virtual functions |
714 | 22.4.1.4 Class template codecvt |
715 | 22.4.1.4.1 codecvt members |
716 | 22.4.1.4.2 codecvt virtual functions |
718 | 22.4.1.5 Class template codecvt_byname 22.4.2 The numeric category 22.4.2.1 Class template num_get |
720 | 22.4.2.1.1 num_get members 22.4.2.1.2 num_get virtual functions |
723 | 22.4.2.2 Class template num_put |
724 | 22.4.2.2.1 num_put members 22.4.2.2.2 num_put virtual functions |
727 | 22.4.3 The numeric punctuation facet 22.4.3.1 Class template numpunct |
728 | 22.4.3.1.1 numpunct members 22.4.3.1.2 numpunct virtual functions |
729 | 22.4.3.2 Class template numpunct_byname 22.4.4 The collate category 22.4.4.1 Class template collate |
730 | 22.4.4.1.1 collate members 22.4.4.1.2 collate virtual functions |
731 | 22.4.4.2 Class template collate_byname 22.4.5 The time category 22.4.5.1 Class template time_get |
732 | 22.4.5.1.1 time_get members |
733 | 22.4.5.1.2 time_get virtual functions |
735 | 22.4.5.2 Class template time_get_byname 22.4.5.3 Class template time_put |
736 | 22.4.5.3.1 time_put members 22.4.5.3.2 time_put virtual functions 22.4.5.4 Class template time_put_byname |
737 | 22.4.6 The monetary category 22.4.6.1 Class template money_get 22.4.6.1.1 money_get members |
738 | 22.4.6.1.2 money_get virtual functions |
739 | 22.4.6.2 Class template money_put 22.4.6.2.1 money_put members 22.4.6.2.2 money_put virtual functions |
740 | 22.4.6.3 Class template moneypunct |
741 | 22.4.6.3.1 moneypunct members |
742 | 22.4.6.3.2 moneypunct virtual functions |
743 | 22.4.6.4 Class template moneypunct_byname 22.4.7 The message retrieval category 22.4.7.1 Class template messages 22.4.7.1.1 messages members |
744 | 22.4.7.1.2 messages virtual functions 22.4.7.2 Class template messages_byname |
745 | 22.4.8 Program-defined facets |
747 | 22.5 Standard code conversion facets |
749 | 22.6 C library locales |
750 | 23 Containers library 23.1 General 23.2 Container requirements 23.2.1 General container requirements |
757 | 23.2.2 Container data races 23.2.3 Sequence containers |
762 | 23.2.4 Associative containers |
768 | 23.2.4.1 Exception safety guarantees |
769 | 23.2.5 Unordered associative containers |
778 | 23.2.5.1 Exception safety guarantees 23.3 Sequence containers 23.3.1 In general |
780 | 23.3.2 Class template array 23.3.2.1 Class template array overview |
782 | 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 23.3.2.7 array::swap 23.3.2.8 Zero sized arrays 23.3.2.9 Tuple interface to class template array |
783 | 23.3.3 Class template deque 23.3.3.1 Class template deque overview |
785 | 23.3.3.2 deque constructors, copy, and assignment |
786 | 23.3.3.3 deque capacity 23.3.3.4 deque modifiers |
787 | 23.3.3.5 deque specialized algorithms 23.3.4 Class template forward_list 23.3.4.1 Class template forward_list overview |
790 | 23.3.4.2 forward_list constructors, copy, assignment |
791 | 23.3.4.3 forward_list iterators 23.3.4.4 forward_list element access 23.3.4.5 forward_list modifiers |
793 | 23.3.4.6 forward_list operations |
795 | 23.3.4.7 forward_list specialized algorithms 23.3.5 Class template list 23.3.5.1 Class template list overview |
798 | 23.3.5.2 list constructors, copy, and assignment 23.3.5.3 list capacity |
799 | 23.3.5.4 list modifiers 23.3.5.5 list operations |
801 | 23.3.5.6 list specialized algorithms |
802 | 23.3.6 Class template vector 23.3.6.1 Class template vector overview |
804 | 23.3.6.2 vector constructors, copy, and assignment |
805 | 23.3.6.3 vector capacity |
806 | 23.3.6.4 vector data 23.3.6.5 vector modifiers 23.3.6.6 vector specialized algorithms |
807 | 23.3.7 Class vector |
809 | 23.4 Associative containers 23.4.1 In general 23.4.2 Header |
810 | 23.4.3 Header synopsis |
811 | 23.4.4 Class template map 23.4.4.1 Class template map overview |
814 | 23.4.4.2 map constructors, copy, and assignment |
815 | 23.4.4.3 map element access 23.4.4.4 map modifiers |
816 | 23.4.4.5 map specialized algorithms 23.4.5 Class template multimap 23.4.5.1 Class template multimap overview |
819 | 23.4.5.2 multimap constructors 23.4.5.3 multimap modifiers 23.4.5.4 multimap specialized algorithms |
820 | 23.4.6 Class template set 23.4.6.1 Class template set overview |
822 | 23.4.6.2 set constructors, copy, and assignment |
823 | 23.4.6.3 set specialized algorithms 23.4.7 Class template multiset 23.4.7.1 Class template multiset overview |
826 | 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 |
827 | 23.5.3 Header synopsis |
828 | 23.5.4 Class template unordered_map 23.5.4.1 Class template unordered_map overview |
831 | 23.5.4.2 unordered_map constructors 23.5.4.3 unordered_map element access |
832 | 23.5.4.4 unordered_map modifiers 23.5.4.5 unordered_map swap 23.5.5 Class template unordered_multimap 23.5.5.1 Class template unordered_multimap overview |
835 | 23.5.5.2 unordered_multimap constructors 23.5.5.3 unordered_multimap modifiers |
836 | 23.5.5.4 unordered_multimap swap 23.5.6 Class template unordered_set 23.5.6.1 Class template unordered_set overview |
839 | 23.5.6.2 unordered_set constructors 23.5.6.3 unordered_set swap 23.5.7 Class template unordered_multiset 23.5.7.1 Class template unordered_multiset overview |
842 | 23.5.7.2 unordered_multiset constructors |
843 | 23.5.7.3 unordered_multiset swap 23.6 Container adaptors 23.6.1 In general 23.6.2 Header synopsis |
844 | 23.6.3 Class template queue 23.6.3.1 queue definition |
845 | 23.6.3.2 queue constructors 23.6.3.3 queue constructors with allocators |
846 | 23.6.3.4 queue operators 23.6.3.5 queue specialized algorithms 23.6.4 Class template priority_queue |
847 | 23.6.4.1 priority_queue constructors |
848 | 23.6.4.2 priority_queue constructors with allocators |
849 | 23.6.4.3 priority_queue members 23.6.4.4 priority_queue specialized algorithms 23.6.5 Class template stack 23.6.5.1 Header synopsis |
850 | 23.6.5.2 stack definition |
851 | 23.6.5.3 stack constructors 23.6.5.4 stack constructors with allocators |
852 | 23.6.5.5 stack operators 23.6.5.6 stack specialized algorithms |
853 | 24 Iterators library 24.1 General 24.2 Iterator requirements 24.2.1 In general |
854 | 24.2.2 Iterator |
855 | 24.2.3 Input iterators 24.2.4 Output iterators |
856 | 24.2.5 Forward iterators |
857 | 24.2.6 Bidirectional iterators 24.2.7 Random access iterators |
858 | 24.3 Header synopsis |
861 | 24.4 Iterator primitives 24.4.1 Iterator traits |
863 | 24.4.2 Basic iterator 24.4.3 Standard iterator tags |
864 | 24.4.4 Iterator operations |
865 | 24.5 Iterator adaptors 24.5.1 Reverse iterators 24.5.1.1 Class template reverse_iterator |
866 | 24.5.1.2 reverse_iterator requirements 24.5.1.3 reverse_iterator operations 24.5.1.3.1 reverse_iterator constructor |
867 | 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-> 24.5.1.3.6 operator++ |
868 | 24.5.1.3.7 operator– 24.5.1.3.8 operator+ 24.5.1.3.9 operator+= 24.5.1.3.10 operator- 24.5.1.3.11 operator-= 24.5.1.3.12 operator[] 24.5.1.3.13 operator== |
869 | 24.5.1.3.14 operator< 24.5.1.3.15 operator!= 24.5.1.3.16 operator> 24.5.1.3.17 operator>= 24.5.1.3.18 operator<= 24.5.1.3.19 operator- 24.5.1.3.20 operator+ |
870 | 24.5.1.3.21 Non-member function make_reverse_iterator() 24.5.2 Insert iterators 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 |
871 | 24.5.2.2.2 back_insert_iterator::operator= 24.5.2.2.3 back_insert_iterator::operator* 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 |
872 | 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= 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 |
873 | 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 |
874 | 24.5.3 Move iterators 24.5.3.1 Class template move_iterator |
875 | 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= |
876 | 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– 24.5.3.3.8 move_iterator::operator+ 24.5.3.3.9 move_iterator::operator+= |
877 | 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 |
878 | 24.5.3.3.14 move_iterator non-member functions 24.6 Stream iterators 24.6.1 Class template istream_iterator |
879 | 24.6.1.1 istream_iterator constructors and destructor 24.6.1.2 istream_iterator operations |
880 | 24.6.2 Class template ostream_iterator |
881 | 24.6.2.1 ostream_iterator constructors and destructor 24.6.2.2 ostream_iterator operations |
882 | 24.6.3 Class template istreambuf_iterator 24.6.3.1 Class template istreambuf_iterator::proxy |
883 | 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 |
884 | 24.6.3.6 operator== 24.6.3.7 operator!= 24.6.4 Class template ostreambuf_iterator 24.6.4.1 ostreambuf_iterator constructors |
885 | 24.6.4.2 ostreambuf_iterator operations 24.7 range access |
887 | 25 Algorithms library 25.1 General |
898 | 25.2 Non-modifying sequence operations 25.2.1 All of 25.2.2 Any of 25.2.3 None of 25.2.4 For each |
899 | 25.2.5 Find 25.2.6 Find end 25.2.7 Find first |
900 | 25.2.8 Adjacent find 25.2.9 Count 25.2.10 Mismatch |
901 | 25.2.11 Equal |
902 | 25.2.12 Is permutation 25.2.13 Search |
903 | 25.3 Mutating sequence operations 25.3.1 Copy |
904 | 25.3.2 Move |
905 | 25.3.3 swap 25.3.4 Transform 25.3.5 Replace |
906 | 25.3.6 Fill |
907 | 25.3.7 Generate 25.3.8 Remove |
908 | 25.3.9 Unique 25.3.10 Reverse |
909 | 25.3.11 Rotate |
910 | 25.3.12 Shuffle 25.3.13 Partitions |
911 | 25.4 Sorting and related operations |
912 | 25.4.1 Sorting 25.4.1.1 sort 25.4.1.2 stable_sort |
913 | 25.4.1.3 partial_sort 25.4.1.4 partial_sort_copy 25.4.1.5 is_sorted |
914 | 25.4.2 Nth element 25.4.3 Binary search 25.4.3.1 lower_bound |
915 | 25.4.3.2 upper_bound 25.4.3.3 equal_range |
916 | 25.4.3.4 binary_search 25.4.4 Merge |
917 | 25.4.5 Set operations on sorted structures 25.4.5.1 includes 25.4.5.2 set_union |
918 | 25.4.5.3 set_intersection 25.4.5.4 set_difference |
919 | 25.4.5.5 set_symmetric_difference 25.4.6 Heap operations 25.4.6.1 push_heap |
920 | 25.4.6.2 pop_heap 25.4.6.3 make_heap 25.4.6.4 sort_heap 25.4.6.5 is_heap |
921 | 25.4.7 Minimum and maximum |
923 | 25.4.8 Lexicographical comparison 25.4.9 Permutation generators |
924 | 25.5 C library algorithms |
926 | 26 Numerics library 26.1 General 26.2 Numeric type requirements |
927 | 26.3 The floating-point environment 26.3.1 Header synopsis |
928 | 26.4 Complex numbers 26.4.1 Header synopsis |
930 | 26.4.2 Class template complex |
931 | 26.4.3 complex specializations |
932 | 26.4.4 complex member functions |
933 | 26.4.5 complex member operators |
934 | 26.4.6 complex non-member operations |
935 | 26.4.7 complex value operations |
936 | 26.4.8 complex transcendentals |
938 | 26.4.9 Additional overloads |
939 | 26.4.10 Suffixes for complex number literals 26.4.11 Header 26.5 Random number generation |
940 | 26.5.1 Requirements 26.5.1.1 General requirements 26.5.1.2 Seed sequence requirements |
941 | 26.5.1.3 Uniform random number generator requirements |
942 | 26.5.1.4 Random number engine requirements |
944 | 26.5.1.5 Random number engine adaptor requirements |
945 | 26.5.1.6 Random number distribution requirements |
948 | 26.5.2 Header synopsis |
950 | 26.5.3 Random number engine class templates |
951 | 26.5.3.1 Class template linear_congruential_engine |
952 | 26.5.3.2 Class template mersenne_twister_engine |
953 | 26.5.3.3 Class template subtract_with_carry_engine |
954 | 26.5.4 Random number engine adaptor class templates 26.5.4.1 In general |
955 | 26.5.4.2 Class template discard_block_engine |
956 | 26.5.4.3 Class template independent_bits_engine |
957 | 26.5.4.4 Class template shuffle_order_engine |
958 | 26.5.5 Engines and engine adaptors with predefined parameters |
959 | 26.5.6 Class random_device |
960 | 26.5.7 Utilities 26.5.7.1 Class seed_seq |
962 | 26.5.7.2 Function template generate_canonical |
963 | 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 |
964 | 26.5.8.2.2 Class template uniform_real_distribution |
965 | 26.5.8.3 Bernoulli distributions 26.5.8.3.1 Class bernoulli_distribution |
966 | 26.5.8.3.2 Class template binomial_distribution |
967 | 26.5.8.3.3 Class template geometric_distribution 26.5.8.3.4 Class template negative_binomial_distribution |
968 | 26.5.8.4 Poisson distributions 26.5.8.4.1 Class template poisson_distribution |
969 | 26.5.8.4.2 Class template exponential_distribution |
970 | 26.5.8.4.3 Class template gamma_distribution |
971 | 26.5.8.4.4 Class template weibull_distribution |
972 | 26.5.8.4.5 Class template extreme_value_distribution |
973 | 26.5.8.5 Normal distributions 26.5.8.5.1 Class template normal_distribution |
974 | 26.5.8.5.2 Class template lognormal_distribution |
975 | 26.5.8.5.3 Class template chi_squared_distribution |
976 | 26.5.8.5.4 Class template cauchy_distribution |
977 | 26.5.8.5.5 Class template fisher_f_distribution |
978 | 26.5.8.5.6 Class template student_t_distribution 26.5.8.6 Sampling distributions 26.5.8.6.1 Class template discrete_distribution |
980 | 26.5.8.6.2 Class template piecewise_constant_distribution |
982 | 26.5.8.6.3 Class template piecewise_linear_distribution |
984 | 26.6 Numeric arrays 26.6.1 Header synopsis |
986 | 26.6.2 Class template valarray 26.6.2.1 Class template valarray overview |
988 | 26.6.2.2 valarray constructors |
989 | 26.6.2.3 valarray assignment |
990 | 26.6.2.4 valarray element access 26.6.2.5 valarray subset operations |
992 | 26.6.2.6 valarray unary operators |
993 | 26.6.2.7 valarray computed assignment 26.6.2.8 valarray member functions |
995 | 26.6.3 valarray non-member operations 26.6.3.1 valarray binary operators |
996 | 26.6.3.2 valarray logical operators |
997 | 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 |
998 | 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 |
999 | 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 |
1001 | 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 |
1002 | 26.6.7.2 gslice_array assignment 26.6.7.3 gslice_array 26.6.7.4 gslice_array fill function 26.6.8 Class template mask_array 26.6.8.1 Class template mask_array overview |
1003 | 26.6.8.2 mask_array assignment 26.6.8.3 mask_array computed assignment 26.6.8.4 mask_array fill function 26.6.9 Class template indirect_array 26.6.9.1 Class template indirect_array overview |
1004 | 26.6.9.2 indirect_array assignment 26.6.9.3 indirect_array computed assignment |
1005 | 26.6.9.4 indirect_array fill function 26.6.10 valarray range access 26.7 Generalized numeric operations 26.7.1 Header synopsis |
1006 | 26.7.2 Accumulate 26.7.3 Inner product |
1007 | 26.7.4 Partial sum 26.7.5 Adjacent difference |
1008 | 26.7.6 Iota 26.8 C library |
1013 | 27 Input/output library 27.1 General 27.2 Iostreams requirements 27.2.1 Imbue limitations |
1014 | 27.2.2 Positioning type limitations 27.2.3 Thread safety 27.3 Forward declarations |
1016 | 27.4 Standard iostream objects 27.4.1 Overview |
1017 | 27.4.2 Narrow stream objects 27.4.3 Wide stream objects |
1018 | 27.5 Iostreams base classes 27.5.1 Overview |
1019 | 27.5.2 Types 27.5.3 Class ios_base |
1022 | 27.5.3.1 Types 27.5.3.1.1 Class ios_base::failure 27.5.3.1.2 Type ios_base::fmtflags 27.5.3.1.3 Type ios_base::iostate 27.5.3.1.4 Type ios_base::openmode 27.5.3.1.5 Type ios_base::seekdir |
1024 | 27.5.3.1.6 Class ios_base::Init 27.5.3.2 ios_base state functions |
1025 | 27.5.3.3 ios_base functions |
1026 | 27.5.3.4 ios_base static members 27.5.3.5 ios_base storage functions |
1027 | 27.5.3.6 ios_base callbacks 27.5.3.7 ios_base constructors/destructor 27.5.4 Class template fpos |
1028 | 27.5.4.1 fpos members 27.5.4.2 fpos requirements |
1029 | 27.5.5 Class template basic_ios 27.5.5.1 Overview |
1030 | 27.5.5.2 basic_ios constructors |
1031 | 27.5.5.3 Member functions |
1033 | 27.5.5.4 basic_ios flags functions |
1034 | 27.5.6 ios_base manipulators 27.5.6.1 fmtflags manipulators |
1036 | 27.5.6.2 adjustfield manipulators 27.5.6.3 basefield manipulators 27.5.6.4 floatfield manipulators |
1037 | 27.5.6.5 Error reporting 27.6 Stream buffers 27.6.1 Overview 27.6.2 Stream buffer requirements |
1038 | 27.6.3 Class template basic_streambuf |
1040 | 27.6.3.1 basic_streambuf constructors |
1041 | 27.6.3.2 basic_streambuf public member functions 27.6.3.2.1 Locales 27.6.3.2.2 Buffer management and positioning 27.6.3.2.3 Get area |
1042 | 27.6.3.2.4 Putback 27.6.3.2.5 Put area 27.6.3.3 basic_streambuf protected member functions 27.6.3.3.1 Assignment |
1043 | 27.6.3.3.2 Get area access 27.6.3.3.3 Put area access |
1044 | 27.6.3.4 basic_streambuf virtual functions 27.6.3.4.1 Locales 27.6.3.4.2 Buffer management and positioning 27.6.3.4.3 Get area |
1046 | 27.6.3.4.4 Putback 27.6.3.4.5 Put area |
1047 | 27.7 Formatting and manipulators 27.7.1 Overview |
1048 | 27.7.2 Input streams 27.7.2.1 Class template basic_istream |
1051 | 27.7.2.1.1 basic_istream constructors 27.7.2.1.2 Class basic_istream assign and swap 27.7.2.1.3 Class basic_istream::sentry |
1052 | 27.7.2.2 Formatted input functions 27.7.2.2.1 Common requirements 27.7.2.2.2 Arithmetic extractors |
1054 | 27.7.2.2.3 basic_istream::operator>> |
1055 | 27.7.2.3 Unformatted input functions |
1060 | 27.7.2.4 Standard basic_istream manipulators |
1061 | 27.7.2.5 Class template basic_iostream 27.7.2.5.1 basic_iostream constructors 27.7.2.5.2 basic_iostream destructor |
1062 | 27.7.2.5.3 basic_iostream assign and swap 27.7.2.6 Rvalue stream extraction 27.7.3 Output streams 27.7.3.1 Class template basic_ostream |
1064 | 27.7.3.2 basic_ostream constructors 27.7.3.3 Class basic_ostream assign and swap |
1065 | 27.7.3.4 Class basic_ostream::sentry 27.7.3.5 basic_ostream seek members |
1066 | 27.7.3.6 Formatted output functions 27.7.3.6.1 Common requirements 27.7.3.6.2 Arithmetic inserters |
1067 | 27.7.3.6.3 basic_ostream::operator<< |
1068 | 27.7.3.6.4 Character inserter function templates |
1069 | 27.7.3.7 Unformatted output functions |
1070 | 27.7.3.8 Standard basic_ostream manipulators 27.7.3.9 Rvalue stream insertion |
1071 | 27.7.4 Standard manipulators |
1073 | 27.7.5 Extended manipulators |
1075 | 27.7.6 Quoted manipulators |
1076 | 27.8 String-based streams 27.8.1 Overview 27.8.2 Class template basic_stringbuf |
1077 | 27.8.2.1 basic_stringbuf constructors |
1078 | 27.8.2.2 Assign and swap |
1079 | 27.8.2.3 Member functions 27.8.2.4 Overridden virtual functions |
1081 | 27.8.3 Class template basic_istringstream |
1082 | 27.8.3.1 basic_istringstream constructors 27.8.3.2 Assign and swap |
1083 | 27.8.3.3 Member functions 27.8.4 Class template basic_ostringstream |
1084 | 27.8.4.1 basic_ostringstream constructors 27.8.4.2 Assign and swap |
1085 | 27.8.4.3 Member functions 27.8.5 Class template basic_stringstream |
1086 | 27.8.6 basic_stringstream constructors 27.8.6.1 Assign and swap |
1087 | 27.8.7 Member functions 27.9 File-based streams 27.9.1 File streams 27.9.1.1 Class template basic_filebuf |
1089 | 27.9.1.2 basic_filebuf constructors |
1090 | 27.9.1.3 Assign and swap 27.9.1.4 Member functions |
1091 | 27.9.1.5 Overridden virtual functions |
1094 | 27.9.1.6 Class template basic_ifstream |
1095 | 27.9.1.7 basic_ifstream constructors |
1096 | 27.9.1.8 Assign and swap 27.9.1.9 Member functions |
1097 | 27.9.1.10 Class template basic_ofstream 27.9.1.11 basic_ofstream constructors |
1098 | 27.9.1.12 Assign and swap 27.9.1.13 Member functions |
1099 | 27.9.1.14 Class template basic_fstream |
1100 | 27.9.1.15 basic_fstream constructors 27.9.1.16 Assign and swap |
1101 | 27.9.1.17 Member functions 27.9.2 C library files |
1103 | 28 Regular expressions library 28.1 General 28.2 Definitions |
1104 | 28.3 Requirements |
1106 | 28.4 Header synopsis |
1113 | 28.5 Namespace std::regex_constants 28.5.1 Bitmask type syntax_option_type 28.5.2 Bitmask type regex_constants::match_flag_type |
1115 | 28.5.3 Implementation-defined error_type |
1116 | 28.6 Class regex_error 28.7 Class template regex_traits |
1119 | 28.8 Class template basic_regex |
1122 | 28.8.1 basic_regex constants 28.8.2 basic_regex constructors |
1123 | 28.8.3 basic_regex assign |
1125 | 28.8.4 basic_regex constant operations 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 |
1126 | 28.9 Class template sub_match 28.9.1 sub_match members |
1127 | 28.9.2 sub_match non-member operators |
1132 | 28.10 Class template match_results |
1134 | 28.10.1 match_results constructors 28.10.2 match_results state |
1135 | 28.10.3 match_results size 28.10.4 match_results element access |
1136 | 28.10.5 match_results formatting |
1137 | 28.10.6 match_results allocator 28.10.7 match_results swap 28.10.8 match_results non-member functions |
1138 | 28.11 Regular expression algorithms 28.11.1 exceptions 28.11.2 regex_match |
1140 | 28.11.3 regex_search |
1141 | 28.11.4 regex_replace |
1143 | 28.12 Regular expression iterators 28.12.1 Class template regex_iterator |
1144 | 28.12.1.1 regex_iterator constructors 28.12.1.2 regex_iterator comparisons |
1145 | 28.12.1.3 regex_iterator indirection 28.12.1.4 regex_iterator increment 28.12.2 Class template regex_token_iterator |
1147 | 28.12.2.1 regex_token_iterator constructors |
1148 | 28.12.2.2 regex_token_iterator comparisons 28.12.2.3 regex_token_iterator indirection |
1149 | 28.12.2.4 regex_token_iterator increment 28.13 Modified ECMAScript regular expression grammar |
1152 | 29 Atomic operations library 29.1 General 29.2 Header synopsis |
1155 | 29.3 Order and consistency |
1157 | 29.4 Lock-free property 29.5 Atomic types |
1161 | 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 29.6.5 Requirements for operations on atomic types |
1167 | 29.7 Flag type and operations |
1168 | 29.8 Fences |
1169 | 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 30.2.4 Timing specifications |
1170 | 30.2.5 Requirements for Lockable types 30.2.5.1 In general |
1171 | 30.2.5.2 BasicLockable requirements 30.2.5.3 Lockable requirements 30.2.5.4 TimedLockable requirements |
1172 | 30.2.6 decay_copy 30.3 Threads 30.3.1 Class thread |
1173 | 30.3.1.1 Class thread::id |
1174 | 30.3.1.2 thread constructors |
1175 | 30.3.1.3 thread destructor 30.3.1.4 thread assignment 30.3.1.5 thread members |
1176 | 30.3.1.6 thread static members 30.3.1.7 thread specialized algorithms |
1177 | 30.3.2 Namespace this_thread 30.4 Mutual exclusion |
1178 | 30.4.1 Mutex requirements 30.4.1.1 In general 30.4.1.2 Mutex types |
1180 | 30.4.1.2.1 Class mutex 30.4.1.2.2 Class recursive_mutex |
1181 | 30.4.1.3 Timed mutex types |
1182 | 30.4.1.3.1 Class timed_mutex |
1183 | 30.4.1.3.2 Class recursive_timed_mutex 30.4.1.4 Shared timed mutex types |
1185 | 30.4.1.4.1 Class shared_timed_mutex |
1186 | 30.4.2 Locks 30.4.2.1 Class template lock_guard |
1187 | 30.4.2.2 Class template unique_lock |
1188 | 30.4.2.2.1 unique_lock constructors, destructor, and assignment |
1190 | 30.4.2.2.2 unique_lock locking |
1191 | 30.4.2.2.3 unique_lock modifiers 30.4.2.2.4 unique_lock observers |
1192 | 30.4.2.3 Class template shared_lock |
1193 | 30.4.2.3.1 shared_lock constructors, destructor, and assignment |
1194 | 30.4.2.3.2 shared_lock locking |
1195 | 30.4.2.3.3 shared_lock modifiers |
1196 | 30.4.2.3.4 shared_lock observers 30.4.3 Generic locking algorithms 30.4.4 Call once 30.4.4.1 Struct once_flag |
1197 | 30.4.4.2 Function call_once 30.5 Condition variables |
1199 | 30.5.1 Class condition_variable |
1202 | 30.5.2 Class condition_variable_any |
1205 | 30.6 Futures 30.6.1 Overview |
1207 | 30.6.2 Error handling 30.6.3 Class future_error 30.6.4 Shared state |
1209 | 30.6.5 Class template promise |
1212 | 30.6.6 Class template future |
1214 | 30.6.7 Class template shared_future |
1217 | 30.6.8 Function template async |
1219 | 30.6.9 Class template packaged_task |
1220 | 30.6.9.1 packaged_task member functions |
1222 | 30.6.9.2 packaged_task globals |
1223 | A Grammar summary A.1 Keywords A.2 Lexical conventions |
1227 | A.3 Basic concepts |
1228 | A.4 Expressions |
1231 | A.5 Statements |
1232 | A.6 Declarations |
1236 | A.7 Declarators |
1238 | A.8 Classes A.9 Derived classes |
1239 | A.10 Special member functions A.11 Overloading |
1240 | A.12 Templates A.13 Exception handling |
1241 | A.14 Preprocessing directives |
1243 | B Implementation quantities |
1245 | C Compatibility C.1 C++ and ISO C C.1.1 Clause 2: lexical conventions |
1246 | C.1.2 Clause 3: basic concepts |
1247 | C.1.3 Clause 4: standard conversions C.1.4 Clause 5: expressions |
1248 | C.1.5 Clause 6: statements C.1.6 Clause 7: declarations |
1250 | C.1.7 Clause 8: declarators |
1251 | C.1.8 Clause 9: classes |
1253 | C.1.9 Clause 12: special member functions C.1.10 Clause 16: preprocessing directives C.2 C++ and ISO C++ 2003 C.2.1 Clause 2: lexical conventions |
1254 | C.2.2 Clause 4: standard conversions C.2.3 Clause 5: expressions C.2.4 Clause 7: declarations |
1255 | C.2.5 Clause 8: declarators C.2.6 Clause 12: special member functions C.2.7 Clause 14: templates |
1256 | C.2.8 Clause 17: library introduction C.2.9 Clause 18: language support library |
1257 | C.2.10 Clause 19: diagnostics library C.2.11 Clause 20: general utilities library C.2.12 Clause 21: strings library |
1258 | C.2.13 Clause 23: containers library |
1259 | C.2.14 Clause 25: algorithms library C.2.15 Clause 26: numerics library C.2.16 Clause 27: Input/output library |
1260 | C.3 C++ and ISO C++ 2011 C.3.1 Clause 2: lexical conventions C.3.2 Clause 3: basic concepts C.3.3 Clause 7: declarations |
1261 | C.3.4 Clause 27: input/output library C.4 C standard library |
1262 | C.4.1 Modifications to headers C.4.2 Modifications to definitions C.4.2.1 Types char16_t and char32_t C.4.2.2 Type wchar_t C.4.2.3 Header C.4.2.4 Macro NULL C.4.3 Modifications to declarations C.4.4 Modifications to behavior |
1264 | C.4.4.1 Macro offsetof(type, member-designator) C.4.4.2 Memory allocation functions |
1265 | 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 |
1266 | D.6 Old iostreams members |
1267 | D.7 char* streams D.7.1 Class strstreambuf |
1269 | D.7.1.1 strstreambuf constructors |
1270 | D.7.1.2 Member functions |
1271 | D.7.1.3 strstreambuf overridden virtual functions |
1273 | D.7.2 Class istrstream D.7.2.1 istrstream constructors |
1274 | D.7.2.2 Member functions D.7.3 Class ostrstream D.7.3.1 ostrstream constructors |
1275 | D.7.3.2 Member functions D.7.4 Class strstream |
1276 | 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 |
1277 | D.8.2 Function adaptors D.8.2.1 Adaptors for pointers to functions |
1278 | D.8.2.2 Adaptors for pointers to members |
1280 | D.9 Binders D.9.1 Class template binder1st D.9.2 bind1st D.9.3 Class template binder2nd |
1281 | D.9.4 bind2nd D.10 auto_ptr D.10.1 Class template auto_ptr |
1282 | D.10.1.1 auto_ptr constructors |
1283 | D.10.1.2 auto_ptr members D.10.1.3 auto_ptr conversions |
1284 | D.11 Violating exception-specifications D.11.1 Type unexpected_handler D.11.2 set_unexpected D.11.3 get_unexpected D.11.4 unexpected D.12 Random shuffle |
1286 | E Universal character names for identifier characters E.1 Ranges of characters allowed E.2 Ranges of characters disallowed initially |
1287 | F Cross references |
1305 | Index |
1334 | Index of grammar productions |
1337 | Index of library names |
1374 | Index of implementation-defined behavior |