Shopping Cart

No products in the cart.

BS ISO/IEC 14882:2011

$215.11

Information technology. Programming Languages. C++

Published By Publication Date Number of Pages
BSI 2011 1360
Guaranteed Safe Checkout
Category:

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. We’re here to assist you 24/7.
Email:[email protected]

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

synopsis
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
BS ISO/IEC 14882:2011
$215.11