Standard for Programming Language C++
Book information
Description
Contents List of Tables List of Figures 1 General 1.1 Scope 1.2 Normative references 1.3 Terms and definitions 1.3.1 access 1.3.2 argument 1.3.3 argument 1.3.4 argument 1.3.5 argument 1.3.6 block 1.3.7 conditionally-supported 1.3.8 diagnostic message 1.3.9 dynamic type 1.3.10 dynamic type 1.3.11 ill-formed program 1.3.12 implementation-defined behavior 1.3.13 implementation limits 1.3.14 locale-specific behavior 1.3.15 multibyte character 1.3.16 parameter 1.3.17 parameter 1.3.18 parameter 1.3.19 signature 1.3.20 signature 1.3.21 signature 1.3.22 signature 1.3.23 signature 1.3.24 signature 1.3.25 static type 1.3.26 unblock 1.3.27 undefined behavior 1.3.28 unspecified behavior 1.3.29 well-formed program 1.4 Implementation compliance 1.5 Structure of this International Standard 1.6 Syntax notation 1.7 The C++ memory model 1.8 The C++ object model 1.9 Program execution 1.10 Multi-threaded executions and data races 1.10.1 Data races 1.10.2 Forward progress 1.11 Acknowledgments 2 Lexical conventions 2.1 Separate translation 2.2 Phases of translation 2.3 Character sets 2.4 Preprocessing tokens 2.5 Alternative tokens 2.6 Tokens 2.7 Comments 2.8 Header names 2.9 Preprocessing numbers 2.10 Identifiers 2.11 Keywords 2.12 Operators and punctuators 2.13 Literals 2.13.1 Kinds of literals 2.13.2 Integer literals 2.13.3 Character literals 2.13.4 Floating literals 2.13.5 String literals 2.13.6 Boolean literals 2.13.7 Pointer literals 2.13.8 User-defined literals 3 Basic concepts 3.1 Declarations and definitions 3.2 One-definition rule 3.3 Scope 3.3.1 Declarative regions and scopes 3.3.2 Point of declaration 3.3.3 Block scope 3.3.4 Function prototype scope 3.3.5 Function scope 3.3.6 Namespace scope 3.3.7 Class scope 3.3.8 Enumeration scope 3.3.9 Template parameter scope 3.3.10 Name hiding 3.4 Name lookup 3.4.1 Unqualified name lookup 3.4.2 Argument-dependent name lookup 3.4.3 Qualified name lookup 3.4.3.1 Class members 3.4.3.2 Namespace members 3.4.4 Elaborated type specifiers 3.4.5 Class member access 3.4.6 Using-directives and namespace aliases 3.5 Program and linkage 3.6 Start and termination 3.6.1 main function 3.6.2 Static initialization 3.6.3 Dynamic initialization of non-local variables 3.6.4 Termination 3.7 Storage duration 3.7.1 Static storage duration 3.7.2 Thread storage duration 3.7.3 Automatic storage duration 3.7.4 Dynamic storage duration 3.7.4.1 Allocation functions 3.7.4.2 Deallocation functions 3.7.4.3 Safely-derived pointers 3.7.5 Duration of subobjects 3.8 Object lifetime 3.9 Types 3.9.1 Fundamental types 3.9.2 Compound types 3.9.3 CV-qualifiers 3.10 Lvalues and rvalues 3.11 Alignment 4 Standard conversions 4.1 Lvalue-to-rvalue conversion 4.2 Array-to-pointer conversion 4.3 Function-to-pointer conversion 4.4 Temporary materialization conversion 4.5 Qualification conversions 4.6 Integral promotions 4.7 Floating-point promotion 4.8 Integral conversions 4.9 Floating-point conversions 4.10 Floating-integral conversions 4.11 Pointer conversions 4.12 Pointer to member conversions 4.13 Function pointer conversions 4.14 Boolean conversions 4.15 Integer conversion rank 5 Expressions 5.1 Primary expressions 5.1.1 Literals 5.1.2 This 5.1.3 Parentheses 5.1.4 Names 5.1.4.1 Unqualified names 5.1.4.2 Qualified names 5.1.5 Lambda expressions 5.1.6 Fold expressions 5.2 Postfix expressions 5.2.1 Subscripting 5.2.2 Function call 5.2.3 Explicit type conversion (functional notation) 5.2.4 Pseudo destructor call 5.2.5 Class member access 5.2.6 Increment and decrement 5.2.7 Dynamic cast 5.2.8 Type identification 5.2.9 Static cast 5.2.10 Reinterpret cast 5.2.11 Const cast 5.3 Unary expressions 5.3.1 Unary operators 5.3.2 Increment and decrement 5.3.3 Sizeof 5.3.4 New 5.3.5 Delete 5.3.6 Alignof 5.3.7 noexcept operator 5.4 Explicit type conversion (cast notation) 5.5 Pointer-to-member operators 5.6 Multiplicative operators 5.7 Additive operators 5.8 Shift operators 5.9 Relational operators 5.10 Equality operators 5.11 Bitwise AND operator 5.12 Bitwise exclusive OR operator 5.13 Bitwise inclusive OR operator 5.14 Logical AND operator 5.15 Logical OR operator 5.16 Conditional operator 5.17 Throwing an exception 5.18 Assignment and compound assignment operators 5.19 Comma operator 5.20 Constant expressions 6 Statements 6.1 Labeled statement 6.2 Expression statement 6.3 Compound statement or block 6.4 Selection statements 6.4.1 The if statement 6.4.2 The switch statement 6.5 Iteration statements 6.5.1 The while statement 6.5.2 The do statement 6.5.3 The for statement 6.5.4 The range-based for statement 6.6 Jump statements 6.6.1 The break statement 6.6.2 The continue statement 6.6.3 The return statement 6.6.4 The goto statement 6.7 Declaration statement 6.8 Ambiguity resolution 7 Declarations 7.1 Specifiers 7.1.1 Storage class specifiers 7.1.2 Function specifiers 7.1.3 The typedef specifier 7.1.4 The friend specifier 7.1.5 The constexpr specifier 7.1.6 The inline specifier 7.1.7 Type specifiers 7.1.7.1 The cv-qualifiers 7.1.7.2 Simple type specifiers 7.1.7.3 Elaborated type specifiers 7.1.7.4 The auto specifier 7.1.7.4.1 Placeholder type deduction 7.1.7.5 Deduced class template specialization types 7.2 Enumeration declarations 7.3 Namespaces 7.3.1 Namespace definition 7.3.1.1 Unnamed namespaces 7.3.1.2 Namespace member definitions 7.3.2 Namespace alias 7.3.3 The using declaration 7.3.4 Using directive 7.4 The asm declaration 7.5 Linkage specifications 7.6 Attributes 7.6.1 Attribute syntax and semantics 7.6.2 Alignment specifier 7.6.3 Carries dependency attribute 7.6.4 Deprecated attribute 7.6.5 Fallthrough attribute 7.6.6 Maybe unused attribute 7.6.7 Nodiscard attribute 7.6.8 Noreturn attribute 8 Declarators 8.1 Type names 8.2 Ambiguity resolution 8.3 Meaning of declarators 8.3.1 Pointers 8.3.2 References 8.3.3 Pointers to members 8.3.4 Arrays 8.3.5 Functions 8.3.6 Default arguments 8.4 Function definitions 8.4.1 In general 8.4.2 Explicitly-defaulted functions 8.4.3 Deleted definitions 8.5 Decomposition declarations 8.6 Initializers 8.6.1 Aggregates 8.6.2 Character arrays 8.6.3 References 8.6.4 List-initialization 9 Classes 9.1 Class names 9.2 Class members 9.2.1 Member functions 9.2.2 Non-static member functions 9.2.2.1 The this pointer 9.2.3 Static members 9.2.3.1 Static member functions 9.2.3.2 Static data members 9.2.4 Bit-fields 9.2.5 Nested class declarations 9.2.6 Nested type names 9.3 Unions 9.3.1 Anonymous unions 9.4 Local class declarations 10 Derived classes 10.1 Multiple base classes 10.2 Member name lookup 10.3 Virtual functions 10.4 Abstract classes 11 Member access control 11.1 Access specifiers 11.2 Accessibility of base classes and base class members 11.3 Friends 11.4 Protected member access 11.5 Access to virtual functions 11.6 Multiple access 11.7 Nested classes 12 Special member functions 12.1 Constructors 12.2 Temporary objects 12.3 Conversions 12.3.1 Conversion by constructor 12.3.2 Conversion functions 12.4 Destructors 12.5 Free store 12.6 Initialization 12.6.1 Explicit initialization 12.6.2 Initializing bases and members 12.6.3 Initialization by inherited constructor 12.7 Construction and destruction 12.8 Copying and moving class objects 12.8.1 Copy/move constructors 12.8.2 Copy/move assignment operator 12.8.3 Copy/move elision 13 Overloading 13.1 Overloadable declarations 13.2 Declaration matching 13.3 Overload resolution 13.3.1 Candidate functions and argument lists 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 13.3.1.2 Operators in expressions 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 13.3.1.6 Initialization by conversion function for direct reference binding 13.3.1.7 Initialization by list-initialization 13.3.1.8 Class template argument deduction 13.3.2 Viable functions 13.3.3 Best viable function 13.3.3.1 Implicit conversion sequences 13.3.3.1.1 Standard conversion sequences 13.3.3.1.2 User-defined conversion sequences 13.3.3.1.3 Ellipsis conversion sequences 13.3.3.1.4 Reference binding 13.3.3.1.5 List-initialization sequence 13.3.3.2 Ranking implicit conversion sequences 13.4 Address of overloaded function 13.5 Overloaded operators 13.5.1 Unary operators 13.5.2 Binary operators 13.5.3 Assignment 13.5.4 Function call 13.5.5 Subscripting 13.5.6 Class member access 13.5.7 Increment and decrement 13.5.8 User-defined literals 13.6 Built-in operators 14 Templates 14.1 Template parameters 14.2 Names of template specializations 14.3 Template arguments 14.3.1 Template type arguments 14.3.2 Template non-type arguments 14.3.3 Template template arguments 14.4 Type equivalence 14.5 Template declarations 14.5.1 Class templates 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 14.5.1.4 Enumeration members of class templates 14.5.2 Member templates 14.5.3 Variadic templates 14.5.4 Friends 14.5.5 Class template partial specializations 14.5.5.1 Matching of class template partial specializations 14.5.5.2 Partial ordering of class template specializations 14.5.5.3 Members of class template specializations 14.5.6 Function templates 14.5.6.1 Function template overloading 14.5.6.2 Partial ordering of function templates 14.5.7 Alias templates 14.6 Name resolution 14.6.1 Locally declared names 14.6.2 Dependent names 14.6.2.1 Dependent types 14.6.2.2 Type-dependent expressions 14.6.2.3 Value-dependent expressions 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 14.6.4.2 Candidate functions 14.6.5 Friend names declared within a class template 14.7 Template instantiation and specialization 14.7.1 Implicit instantiation 14.7.2 Explicit instantiation 14.7.3 Explicit specialization 14.8 Function template specializations 14.8.1 Explicit template argument specification 14.8.2 Template argument deduction 14.8.2.1 Deducing template arguments from a function call 14.8.2.2 Deducing template arguments taking the address of a function template 14.8.2.3 Deducing conversion function template arguments 14.8.2.4 Deducing template arguments during partial ordering 14.8.2.5 Deducing template arguments from a type 14.8.2.6 Deducing template arguments from a function declaration 14.8.3 Overload resolution 14.9 Deduction guides 15 Exception handling 15.1 Throwing an exception 15.2 Constructors and destructors 15.3 Handling an exception 15.4 Exception specifications 15.5 Special functions 15.5.1 The std::terminate() function 15.5.2 The std::uncaught_exceptions() function 16 Preprocessing directives 16.1 Conditional inclusion 16.2 Source file inclusion 16.3 Macro replacement 16.3.1 Argument substitution 16.3.2 The # operator 16.3.3 The ## operator 16.3.4 Rescanning and further replacement 16.3.5 Scope of macro definitions 16.4 Line control 16.5 Error directive 16.6 Pragma directive 16.7 Null directive 16.8 Predefined macro names 16.9 Pragma operator 17 Library introduction 17.1 General 17.2 The C standard library 17.3 Definitions 17.3.1 arbitrary-positional stream 17.3.2 character 17.3.3 character container type 17.3.4 comparison function 17.3.5 component 17.3.6 constant subexpression 17.3.7 deadlock 17.3.8 default behavior 17.3.9 default behavior 17.3.10 handler function 17.3.11 iostream class templates 17.3.12 modifier function 17.3.13 move assignment 17.3.14 move construction 17.3.15 NTCTS 17.3.16 object state 17.3.17 observer function 17.3.18 referenceable type 17.3.19 replacement function 17.3.20 repositional stream 17.3.21 required behavior 17.3.22 reserved function 17.3.23 stable algorithm 17.3.24 traits class 17.3.25 valid but unspecified state 17.4 Method of description (Informative) 17.4.1 Structure of each clause 17.4.1.1 Elements 17.4.1.2 Summary 17.4.1.3 Requirements 17.4.1.4 Detailed specifications 17.4.1.5 C library 17.4.2 Other conventions 17.4.2.1 Type descriptions 17.4.2.1.1 General 17.4.2.1.2 Exposition-only types 17.4.2.1.3 Enumerated types 17.4.2.1.4 Bitmask types 17.4.2.1.5 Character sequences 17.4.2.1.5.1 Byte strings 17.4.2.1.5.2 Multibyte strings 17.4.2.2 Functions within classes 17.4.2.3 Private members 17.5 Library-wide requirements 17.5.1 Library contents and organization 17.5.1.1 Library contents 17.5.1.2 Headers 17.5.1.3 Freestanding implementations 17.5.2 Using the library 17.5.2.1 Overview 17.5.2.2 Headers 17.5.2.3 Linkage 17.5.3 Requirements on types and expressions 17.5.3.1 Template argument requirements 17.5.3.2 Swappable requirements 17.5.3.3 NullablePointer requirements 17.5.3.4 Hash requirements 17.5.3.5 Allocator requirements 17.5.3.5.1 Allocator completeness requirements 17.5.4 Constraints on programs 17.5.4.1 Overview 17.5.4.2 Namespace use 17.5.4.2.1 Namespace std 17.5.4.2.2 Namespace posix 17.5.4.2.3 Namespaces for future standardization 17.5.4.3 Reserved names 17.5.4.3.1 Zombie names 17.5.4.3.2 Macro names 17.5.4.3.3 External linkage 17.5.4.3.4 Types 17.5.4.3.5 User-defined literal suffixes 17.5.4.4 Headers 17.5.4.5 Derived classes 17.5.4.6 Replacement functions 17.5.4.7 Handler functions 17.5.4.8 Other functions 17.5.4.9 Function arguments 17.5.4.10 Library object access 17.5.4.11 Requires paragraph 17.5.5 Conforming implementations 17.5.5.1 Overview 17.5.5.2 Headers 17.5.5.3 Restrictions on macro definitions 17.5.5.4 Non-member functions 17.5.5.5 Member functions 17.5.5.6 Constexpr functions and constructors 17.5.5.7 Requirements for stable algorithms 17.5.5.8 Reentrancy 17.5.5.9 Data race avoidance 17.5.5.10 Protection within classes 17.5.5.11 Derived classes 17.5.5.12 Restrictions on exception handling 17.5.5.13 Restrictions on storage of pointers 17.5.5.14 Value of error codes 17.5.5.15 Moved-from state of library types 18 Language support library 18.1 General 18.2 Common definitions 18.2.1 Header synopsis 18.2.2 Header synopsis 18.2.3 Null pointers 18.2.4 Sizes, alignments, and offsets 18.3 Implementation properties 18.3.1 General 18.3.2 Header synopsis 18.3.3 Floating-point type properties 18.3.3.1 Type float_round_style 18.3.3.2 Type float_denorm_style 18.3.4 Class template numeric_limits 18.3.4.1 numeric_limits members 18.3.4.2 numeric_limits specializations 18.3.5 Header synopsis 18.3.6 Header synopsis 18.4 Integer types 18.4.1 Header synopsis 18.5 Start and termination 18.6 Dynamic memory management 18.6.1 Header synopsis 18.6.2 Storage allocation and deallocation 18.6.2.1 Single-object forms 18.6.2.2 Array forms 18.6.2.3 Non-allocating forms 18.6.2.4 Data races 18.6.3 Storage allocation errors 18.6.3.1 Class bad_alloc 18.6.3.2 Class bad_array_new_length 18.6.3.3 Type new_handler 18.6.3.4 set_new_handler 18.6.3.5 get_new_handler 18.6.4 Pointer optimization barrier 18.6.5 Hardware interference size 18.7 Type identification 18.7.1 Header synopsis 18.7.2 Class type_info 18.7.3 Class bad_cast 18.7.4 Class bad_typeid 18.8 Exception handling 18.8.1 Header synopsis 18.8.2 Class exception 18.8.3 Class bad_exception 18.8.4 Abnormal termination 18.8.4.1 Type terminate_handler 18.8.4.2 set_terminate 18.8.4.3 get_terminate 18.8.4.4 terminate 18.8.5 uncaught_exceptions 18.8.6 Exception propagation 18.8.7 nested_exception 18.9 Initializer lists 18.9.1 Header synopsis 18.9.2 Initializer list constructors 18.9.3 Initializer list access 18.9.4 Initializer list range access 18.10 Other runtime support 18.10.1 Header synopsis 18.10.2 Header synopsis 18.10.3 Header synopsis 18.10.4 Header synopsis 18.10.5 Header synopsis 19 Diagnostics library 19.1 General 19.2 Exception classes 19.2.1 Header synopsis 19.2.2 Class logic_error 19.2.3 Class domain_error 19.2.4 Class invalid_argument 19.2.5 Class length_error 19.2.6 Class out_of_range 19.2.7 Class runtime_error 19.2.8 Class range_error 19.2.9 Class overflow_error 19.2.10 Class underflow_error 19.3 Assertions 19.3.1 Header synopsis 19.3.2 The assert macro 19.4 Error numbers 19.4.1 Header synopsis 19.5 System error support 19.5.1 Header synopsis 19.5.2 Class error_category 19.5.2.1 Class error_category overview 19.5.2.2 Class error_category virtual members 19.5.2.3 Class error_category non-virtual members 19.5.2.4 Program defined classes derived from error_category 19.5.2.5 Error category objects 19.5.3 Class error_code 19.5.3.1 Class error_code overview 19.5.3.2 Class error_code constructors 19.5.3.3 Class error_code modifiers 19.5.3.4 Class error_code observers 19.5.3.5 Class error_code non-member functions 19.5.4 Class error_condition 19.5.4.1 Class error_condition overview 19.5.4.2 Class error_condition constructors 19.5.4.3 Class error_condition modifiers 19.5.4.4 Class error_condition observers 19.5.4.5 Class error_condition non-member functions 19.5.5 Comparison functions 19.5.6 System error hash support 19.5.7 Class system_error 19.5.7.1 Class system_error overview 19.5.7.2 Class system_error members 20 General utilities library 20.1 General 20.2 Utility components 20.2.1 Header synopsis 20.2.2 Operators 20.2.3 swap 20.2.4 exchange 20.2.5 Forward/move helpers 20.2.6 Function template as_const 20.2.7 Function template declval 20.2.8 Primitive numeric output conversion 20.2.9 Primitive numeric input conversion 20.3 Compile-time integer sequences 20.3.1 In general 20.3.2 Class template integer_sequence 20.3.3 Alias template make_integer_sequence 20.4 Pairs 20.4.1 In general 20.4.2 Class template pair 20.4.3 Specialized algorithms 20.4.4 Tuple-like access to pair 20.4.5 Piecewise construction 20.5 Tuples 20.5.1 In general 20.5.2 Header synopsis 20.5.3 Class template tuple 20.5.3.1 Construction 20.5.3.2 Assignment 20.5.3.3 swap 20.5.3.4 Tuple creation functions 20.5.3.5 Calling a function with a tuple of arguments 20.5.3.6 Tuple helper classes 20.5.3.7 Element access 20.5.3.8 Relational operators 20.5.3.9 Tuple traits 20.5.3.10 Tuple specialized algorithms 20.6 Optional objects 20.6.1 In general 20.6.2 Header synopsis 20.6.3 Class template optional 20.6.3.1 Constructors 20.6.3.2 Destructor 20.6.3.3 Assignment 20.6.3.4 Swap 20.6.3.5 Observers 20.6.3.6 Modifiers 20.6.4 No-value state indicator 20.6.5 Class bad_optional_access 20.6.6 Relational operators 20.6.7 Comparison with nullopt 20.6.8 Comparison with T 20.6.9 Specialized algorithms 20.6.10 Hash support 20.7 Variants 20.7.1 In general 20.7.2 Header synopsis 20.7.3 Class template variant 20.7.3.1 Constructors 20.7.3.2 Destructor 20.7.3.3 Assignment 20.7.3.4 Modifiers 20.7.3.5 Value status 20.7.3.6 Swap 20.7.4 variant helper classes 20.7.5 Value access 20.7.6 Relational operators 20.7.7 Visitation 20.7.8 Class monostate 20.7.9 monostate relational operators 20.7.10 Specialized algorithms 20.7.11 Class bad_variant_access 20.7.12 Hash support 20.7.13 Allocator-related traits 20.8 Storage for any type 20.8.1 Header synopsis 20.8.2 Class bad_any_cast 20.8.3 Class any 20.8.3.1 Construction and destruction 20.8.3.2 Assignment 20.8.3.3 Modifiers 20.8.3.4 Observers 20.8.4 Non-member functions 20.9 Bitsets 20.9.1 Header synopsis 20.9.2 Class template bitset 20.9.2.1 bitset constructors 20.9.2.2 bitset members 20.9.3 bitset hash support 20.9.4 bitset operators 20.10 Memory 20.10.1 In general 20.10.2 Header synopsis 20.10.3 Pointer traits 20.10.3.1 Pointer traits member types 20.10.3.2 Pointer traits member functions 20.10.4 Pointer safety 20.10.5 Align 20.10.6 Allocator argument tag 20.10.7 uses_allocator 20.10.7.1 uses_allocator trait 20.10.7.2 Uses-allocator construction 20.10.8 Allocator traits 20.10.8.1 Allocator traits member types 20.10.8.2 Allocator traits static member functions 20.10.9 The default allocator 20.10.9.1 allocator members 20.10.9.2 allocator globals 20.10.10 Specialized algorithms 20.10.10.1 addressof 20.10.10.2 uninitialized_default_construct 20.10.10.3 uninitialized_value_construct 20.10.10.4 uninitialized_copy 20.10.10.5 uninitialized_move 20.10.10.6 uninitialized_fill 20.10.10.7 destroy 20.10.11 C library memory allocation 20.11 Smart pointers 20.11.1 Class template unique_ptr 20.11.1.1 Default deleters 20.11.1.1.1 In general 20.11.1.1.2 default_delete 20.11.1.1.3 default_delete 20.11.1.2 unique_ptr for single objects 20.11.1.2.1 unique_ptr constructors 20.11.1.2.2 unique_ptr destructor 20.11.1.2.3 unique_ptr assignment 20.11.1.2.4 unique_ptr observers 20.11.1.2.5 unique_ptr modifiers 20.11.1.3 unique_ptr for array objects with a runtime length 20.11.1.3.1 unique_ptr constructors 20.11.1.3.2 unique_ptr assignment 20.11.1.3.3 unique_ptr observers 20.11.1.3.4 unique_ptr modifiers 20.11.1.4 unique_ptr creation 20.11.1.5 unique_ptr specialized algorithms 20.11.2 Shared-ownership pointers 20.11.2.1 Class bad_weak_ptr 20.11.2.2 Class template shared_ptr 20.11.2.2.1 shared_ptr constructors 20.11.2.2.2 shared_ptr destructor 20.11.2.2.3 shared_ptr assignment 20.11.2.2.4 shared_ptr modifiers 20.11.2.2.5 shared_ptr observers 20.11.2.2.6 shared_ptr creation 20.11.2.2.7 shared_ptr comparison 20.11.2.2.8 shared_ptr specialized algorithms 20.11.2.2.9 shared_ptr casts 20.11.2.2.10 get_deleter 20.11.2.2.11 shared_ptr I/O 20.11.2.3 Class template weak_ptr 20.11.2.3.1 weak_ptr constructors 20.11.2.3.2 weak_ptr destructor 20.11.2.3.3 weak_ptr assignment 20.11.2.3.4 weak_ptr modifiers 20.11.2.3.5 weak_ptr observers 20.11.2.3.6 weak_ptr specialized algorithms 20.11.2.4 Class template owner_less 20.11.2.5 Class template enable_shared_from_this 20.11.2.6 shared_ptr atomic access 20.11.2.7 Smart pointer hash support 20.12 Memory resources 20.12.1 Header synopsis 20.12.2 Class memory_resource 20.12.2.1 memory_resource public member functions 20.12.2.2 memory_resource private virtual member functions 20.12.2.3 memory_resource equality 20.12.3 Class template polymorphic_allocator 20.12.3.1 polymorphic_allocator constructors 20.12.3.2 polymorphic_allocator member functions 20.12.3.3 polymorphic_allocator equality 20.12.4 Access to program-wide memory_resource objects 20.12.5 Pool resource classes 20.12.5.1 Classes synchronized_pool_resource and unsynchronized_pool_resource 20.12.5.2 pool_options data members 20.12.5.3 Pool resource constructors and destructors 20.12.5.4 Pool resource members 20.12.6 Class monotonic_buffer_resource 20.12.6.1 monotonic_buffer_resource constructor and destructor 20.12.6.2 monotonic_buffer_resource members 20.13 Class template scoped_allocator_adaptor 20.13.1 Header synopsis 20.13.2 Scoped allocator adaptor member types 20.13.3 Scoped allocator adaptor constructors 20.13.4 Scoped allocator adaptor members 20.13.5 Scoped allocator operators 20.14 Function objects 20.14.1 Header synopsis 20.14.2 Definitions 20.14.3 Requirements 20.14.4 Function template invoke 20.14.5 Class template reference_wrapper 20.14.5.1 reference_wrapper construct/copy/destroy 20.14.5.2 reference_wrapper assignment 20.14.5.3 reference_wrapper access 20.14.5.4 reference_wrapper invocation 20.14.5.5 reference_wrapper helper functions 20.14.6 Arithmetic operations 20.14.6.1 Class template plus 20.14.6.2 Class template minus 20.14.6.3 Class template multiplies 20.14.6.4 Class template divides 20.14.6.5 Class template modulus 20.14.6.6 Class template negate 20.14.7 Comparisons 20.14.7.1 Class template equal_to 20.14.7.2 Class template not_equal_to 20.14.7.3 Class template greater 20.14.7.4 Class template less 20.14.7.5 Class template greater_equal 20.14.7.6 Class template less_equal 20.14.8 Logical operations 20.14.8.1 Class template logical_and 20.14.8.2 Class template logical_or 20.14.8.3 Class template logical_not 20.14.9 Bitwise operations 20.14.9.1 Class template bit_and 20.14.9.2 Class template bit_or 20.14.9.3 Class template bit_xor 20.14.9.4 Class template bit_not 20.14.10 Function template not_fn 20.14.11 Function object binders 20.14.11.1 Class template is_bind_expression 20.14.11.2 Class template is_placeholder 20.14.11.3 Function template bind 20.14.11.4 Placeholders 20.14.12 Function template mem_fn 20.14.13 Polymorphic function wrappers 20.14.13.1 Class bad_function_call 20.14.13.1.1 bad_function_call constructor 20.14.13.2 Class template function 20.14.13.2.1 function construct/copy/destroy 20.14.13.2.2 function modifiers 20.14.13.2.3 function capacity 20.14.13.2.4 function invocation 20.14.13.2.5 function target access 20.14.13.2.6 null pointer comparison functions 20.14.13.2.7 specialized algorithms 20.14.14 Searchers 20.14.14.1 Class template default_searcher 20.14.14.1.1 default_searcher creation functions 20.14.14.2 Class template boyer_moore_searcher 20.14.14.2.1 boyer_moore_searcher creation functions 20.14.14.3 Class template boyer_moore_horspool_searcher 20.14.14.3.1 boyer_moore_horspool_searcher creation functions 20.14.15 Class template hash 20.14.16 Default functor traits 20.15 Metaprogramming and type traits 20.15.1 Requirements 20.15.2 Header synopsis 20.15.3 Helper classes 20.15.4 Unary type traits 20.15.4.1 Primary type categories 20.15.4.2 Composite type traits 20.15.4.3 Type properties 20.15.5 Type property queries 20.15.6 Relationships between types 20.15.7 Transformations between types 20.15.7.1 Const-volatile modifications 20.15.7.2 Reference modifications 20.15.7.3 Sign modifications 20.15.7.4 Array modifications 20.15.7.5 Pointer modifications 20.15.7.6 Other transformations 20.15.8 Logical operator traits 20.16 Compile-time rational arithmetic 20.16.1 In general 20.16.2 Header synopsis 20.16.3 Class template ratio 20.16.4 Arithmetic on ratios 20.16.5 Comparison of ratios 20.16.6 SI types for ratio 20.17 Time utilities 20.17.1 In general 20.17.2 Header synopsis 20.17.3 Clock requirements 20.17.4 Time-related traits 20.17.4.1 treat_as_floating_point 20.17.4.2 duration_values 20.17.4.3 Specializations of common_type 20.17.5 Class template duration 20.17.5.1 duration constructors 20.17.5.2 duration observer 20.17.5.3 duration arithmetic 20.17.5.4 duration special values 20.17.5.5 duration non-member arithmetic 20.17.5.6 duration comparisons 20.17.5.7 duration_cast 20.17.5.8 Suffixes for duration literals 20.17.5.9 duration algorithms 20.17.6 Class template time_point 20.17.6.1 time_point constructors 20.17.6.2 time_point observer 20.17.6.3 time_point arithmetic 20.17.6.4 time_point special values 20.17.6.5 time_point non-member arithmetic 20.17.6.6 time_point comparisons 20.17.6.7 time_point_cast 20.17.7 Clocks 20.17.7.1 Class system_clock 20.17.7.2 Class steady_clock 20.17.7.3 Class high_resolution_clock 20.17.8 Header synopsis 20.18 Class type_index 20.18.1 Header synopsis 20.18.2 type_index overview 20.18.3 type_index members 20.18.4 Hash support 20.19 Execution policies 20.19.1 In general 20.19.2 Header synopsis 20.19.3 Execution policy type trait 20.19.4 Sequenced execution policy 20.19.5 Parallel execution policy 20.19.6 Parallel and unsequenced execution policy 20.19.7 Execution policy objects 21 Strings library 21.1 General 21.2 Character traits 21.2.1 Character traits requirements 21.2.2 Traits typedefs 21.2.3 char_traits specializations 21.2.3.1 struct char_traits 21.2.3.2 struct char_traits 21.2.3.3 struct char_traits 21.2.3.4 struct char_traits 21.3 String classes 21.3.1 Header synopsis 21.3.2 Class template basic_string 21.3.2.1 basic_string general requirements 21.3.2.2 basic_string constructors and assignment operators 21.3.2.3 basic_string iterator support 21.3.2.4 basic_string capacity 21.3.2.5 basic_string element access 21.3.2.6 basic_string modifiers 21.3.2.6.1 basic_string::operator+= 21.3.2.6.2 basic_string::append 21.3.2.6.3 basic_string::assign 21.3.2.6.4 basic_string::insert 21.3.2.6.5 basic_string::erase 21.3.2.6.6 basic_string::replace 21.3.2.6.7 basic_string::copy 21.3.2.6.8 basic_string::swap 21.3.2.7 basic_string string operations 21.3.2.7.1 basic_string accessors 21.3.2.7.2 basic_string::find 21.3.2.7.3 basic_string::rfind 21.3.2.7.4 basic_string::find_first_of 21.3.2.7.5 basic_string::find_last_of 21.3.2.7.6 basic_string::find_first_not_of 21.3.2.7.7 basic_string::find_last_not_of 21.3.2.7.8 basic_string::substr 21.3.2.7.9 basic_string::compare 21.3.3 basic_string non-member functions 21.3.3.1 operator+ 21.3.3.2 operator== 21.3.3.3 operator!= 21.3.3.4 operator 21.3.3.6 operator= 21.3.3.8 swap 21.3.3.9 Inserters and extractors 21.3.4 Numeric conversions 21.3.5 Hash support 21.3.6 Suffix for basic_string literals 21.4 String view classes 21.4.1 Header synopsis 21.4.2 Class template basic_string_view 21.4.2.1 Construction and assignment 21.4.2.2 Iterator support 21.4.2.3 Capacity 21.4.2.4 Element access 21.4.2.5 Modifiers 21.4.2.6 String operations 21.4.2.7 Searching 21.4.3 Non-member comparison functions 21.4.4 Inserters and extractors 21.4.5 Hash support 21.4.6 Suffix for basic_string_view literals 21.5 Null-terminated sequence utilities 21.5.1 Header synopsis 21.5.2 Header synopsis 21.5.3 Header synopsis 21.5.4 Header synopsis 21.5.5 Header synopsis 21.5.6 Multibyte / wide string and character conversion functions 22 Localization library 22.1 General 22.2 Header synopsis 22.3 Locales 22.3.1 Class locale 22.3.1.1 locale types 22.3.1.1.1 Type locale::category 22.3.1.1.2 Class locale::facet 22.3.1.1.3 Class locale::id 22.3.1.2 locale constructors and destructor 22.3.1.3 locale members 22.3.1.4 locale operators 22.3.1.5 locale static members 22.3.2 locale globals 22.3.3 Convenience interfaces 22.3.3.1 Character classification 22.3.3.2 Conversions 22.3.3.2.1 Character conversions 22.3.3.2.2 Class template wstring_convert 22.3.3.2.3 Class template wbuffer_convert 22.4 Standard locale categories 22.4.1 The ctype category 22.4.1.1 Class template ctype 22.4.1.1.1 ctype members 22.4.1.1.2 ctype virtual functions 22.4.1.2 Class template ctype_byname 22.4.1.3 ctype specializations 22.4.1.3.1 ctype destructor 22.4.1.3.2 ctype members 22.4.1.3.3 ctype static members 22.4.1.3.4 ctype virtual functions 22.4.1.4 Class template codecvt 22.4.1.4.1 codecvt members 22.4.1.4.2 codecvt virtual functions 22.4.1.5 Class template codecvt_byname 22.4.2 The numeric category 22.4.2.1 Class template num_get 22.4.2.1.1 num_get members 22.4.2.1.2 num_get virtual functions 22.4.2.2 Class template num_put 22.4.2.2.1 num_put members 22.4.2.2.2 num_put virtual functions 22.4.3 The numeric punctuation facet 22.4.3.1 Class template numpunct 22.4.3.1.1 numpunct members 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 22.4.4.1.1 collate members 22.4.4.1.2 collate virtual functions 22.4.4.2 Class template collate_byname 22.4.5 The time category 22.4.5.1 Class template time_get 22.4.5.1.1 time_get members 22.4.5.1.2 time_get virtual functions 22.4.5.2 Class template time_get_byname 22.4.5.3 Class template time_put 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 22.4.6 The monetary category 22.4.6.1 Class template money_get 22.4.6.1.1 money_get members 22.4.6.1.2 money_get virtual functions 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 22.4.6.3 Class template moneypunct 22.4.6.3.1 moneypunct members 22.4.6.3.2 moneypunct virtual functions 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 22.4.7.1.2 messages virtual functions 22.4.7.2 Class template messages_byname 22.4.8 Program-defined facets 22.5 Standard code conversion facets 22.5.1 Header synopsis 22.5.2 Requirements 22.6 C library locales 22.6.1 Header synopsis 23 Containers library 23.1 General 23.2 Container requirements 23.2.1 General container requirements 23.2.2 Container data races 23.2.3 Sequence containers 23.2.4 Node handles 23.2.4.1 node_handle overview 23.2.4.2 node_handle constructors, copy, and assignment 23.2.4.3 node_handle destructor 23.2.4.4 node_handle observers 23.2.4.5 node_handle modifiers 23.2.5 Insert return type 23.2.6 Associative containers 23.2.6.1 Exception safety guarantees 23.2.7 Unordered associative containers 23.2.7.1 Exception safety guarantees 23.3 Sequence containers 23.3.1 In general 23.3.2 Header synopsis 23.3.3 Header synopsis 23.3.4 Header synopsis 23.3.5 Header synopsis 23.3.6 Header synopsis 23.3.7 Class template array 23.3.7.1 Class template array overview 23.3.7.2 array constructors, copy, and assignment 23.3.7.3 array specialized algorithms 23.3.7.4 array::size 23.3.7.5 array::data 23.3.7.6 array::fill 23.3.7.7 array::swap 23.3.7.8 Zero sized arrays 23.3.7.9 Tuple interface to class template array 23.3.8 Class template deque 23.3.8.1 Class template deque overview 23.3.8.2 deque constructors, copy, and assignment 23.3.8.3 deque capacity 23.3.8.4 deque modifiers 23.3.8.5 deque specialized algorithms 23.3.9 Class template forward_list 23.3.9.1 Class template forward_list overview 23.3.9.2 forward_list constructors, copy, assignment 23.3.9.3 forward_list iterators 23.3.9.4 forward_list element access 23.3.9.5 forward_list modifiers 23.3.9.6 forward_list operations 23.3.9.7 forward_list specialized algorithms 23.3.10 Class template list 23.3.10.1 Class template list overview 23.3.10.2 list constructors, copy, and assignment 23.3.10.3 list capacity 23.3.10.4 list modifiers 23.3.10.5 list operations 23.3.10.6 list specialized algorithms 23.3.11 Class template vector 23.3.11.1 Class template vector overview 23.3.11.2 vector constructors, copy, and assignment 23.3.11.3 vector capacity 23.3.11.4 vector data 23.3.11.5 vector modifiers 23.3.11.6 vector specialized algorithms 23.3.12 Class vector 23.4 Associative containers 23.4.1 In general 23.4.2 Header synopsis 23.4.3 Header synopsis 23.4.4 Class template map 23.4.4.1 Class template map overview 23.4.4.2 map constructors, copy, and assignment 23.4.4.3 map element access 23.4.4.4 map modifiers 23.4.4.5 map specialized algorithms 23.4.5 Class template multimap 23.4.5.1 Class template multimap overview 23.4.5.2 multimap constructors 23.4.5.3 multimap modifiers 23.4.5.4 multimap specialized algorithms 23.4.6 Class template set 23.4.6.1 Class template set overview 23.4.6.2 set constructors, copy, and assignment 23.4.6.3 set specialized algorithms 23.4.7 Class template multiset 23.4.7.1 Class template multiset overview 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 23.5.3 Header synopsis 23.5.4 Class template unordered_map 23.5.4.1 Class template unordered_map overview 23.5.4.2 unordered_map constructors 23.5.4.3 unordered_map element access 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 23.5.5.2 unordered_multimap constructors 23.5.5.3 unordered_multimap modifiers 23.5.5.4 unordered_multimap swap 23.5.6 Class template unordered_set 23.5.6.1 Class template unordered_set overview 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 23.5.7.2 unordered_multiset constructors 23.5.7.3 unordered_multiset swap 23.6 Container adaptors 23.6.1 In general 23.6.2 Header synopsis 23.6.3 Header synopsis 23.6.4 Class template queue 23.6.4.1 queue definition 23.6.4.2 queue constructors 23.6.4.3 queue constructors with allocators 23.6.4.4 queue operators 23.6.4.5 queue specialized algorithms 23.6.5 Class template priority_queue 23.6.5.1 priority_queue constructors 23.6.5.2 priority_queue constructors with allocators 23.6.5.3 priority_queue members 23.6.5.4 priority_queue specialized algorithms 23.6.6 Class template stack 23.6.6.1 stack definition 23.6.6.2 stack constructors 23.6.6.3 stack constructors with allocators 23.6.6.4 stack operators 23.6.6.5 stack specialized algorithms 24 Iterators library 24.1 General 24.2 Iterator requirements 24.2.1 In general 24.2.2 Iterator 24.2.3 Input iterators 24.2.4 Output iterators 24.2.5 Forward iterators 24.2.6 Bidirectional iterators 24.2.7 Random access iterators 24.3 Header synopsis 24.4 Iterator primitives 24.4.1 Iterator traits 24.4.2 Standard iterator tags 24.4.3 Iterator operations 24.5 Iterator adaptors 24.5.1 Reverse iterators 24.5.1.1 Class template reverse_iterator 24.5.1.2 reverse_iterator requirements 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-> 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- 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.17 operator>= 24.5.1.3.18 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+= 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 24.5.3.3.14 move_iterator non-member functions 24.6 Stream iterators 24.6.1 Class template istream_iterator 24.6.1.1 istream_iterator constructors and destructor 24.6.1.2 istream_iterator operations 24.6.2 Class template ostream_iterator 24.6.2.1 ostream_iterator constructors and destructor 24.6.2.2 ostream_iterator operations 24.6.3 Class template istreambuf_iterator 24.6.3.1 Class template istreambuf_iterator::proxy 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 24.6.3.6 operator== 24.6.3.7 operator!= 24.6.4 Class template ostreambuf_iterator 24.6.4.1 ostreambuf_iterator constructors 24.6.4.2 ostreambuf_iterator operations 24.7 Range access 24.8 Container access 25 Algorithms library 25.1 General 25.2 Header synopsis 25.3 Algorithms requirements 25.4 Parallel algorithms 25.4.1 Terms and definitions 25.4.2 Requirements on user-provided function objects 25.4.3 Effect of execution policies on algorithm execution 25.4.4 Parallel algorithm exceptions 25.4.5 ExecutionPolicy algorithm overloads 25.5 Non-modifying sequence operations 25.5.1 All of 25.5.2 Any of 25.5.3 None of 25.5.4 For each 25.5.5 Find 25.5.6 Find end 25.5.7 Find first 25.5.8 Adjacent find 25.5.9 Count 25.5.10 Mismatch 25.5.11 Equal 25.5.12 Is permutation 25.5.13 Search 25.6 Mutating sequence operations 25.6.1 Copy 25.6.2 Move 25.6.3 Swap 25.6.4 Transform 25.6.5 Replace 25.6.6 Fill 25.6.7 Generate 25.6.8 Remove 25.6.9 Unique 25.6.10 Reverse 25.6.11 Rotate 25.6.12 Sample 25.6.13 Shuffle 25.7 Sorting and related operations 25.7.1 Sorting 25.7.1.1 sort 25.7.1.2 stable_sort 25.7.1.3 partial_sort 25.7.1.4 partial_sort_copy 25.7.1.5 is_sorted 25.7.2 Nth element 25.7.3 Binary search 25.7.3.1 lower_bound 25.7.3.2 upper_bound 25.7.3.3 equal_range 25.7.3.4 binary_search 25.7.4 Partitions 25.7.5 Merge 25.7.6 Set operations on sorted structures 25.7.6.1 includes 25.7.6.2 set_union 25.7.6.3 set_intersection 25.7.6.4 set_difference 25.7.6.5 set_symmetric_difference 25.7.7 Heap operations 25.7.7.1 push_heap 25.7.7.2 pop_heap 25.7.7.3 make_heap 25.7.7.4 sort_heap 25.7.7.5 is_heap 25.7.8 Minimum and maximum 25.7.9 Bounded value 25.7.10 Lexicographical comparison 25.7.11 Permutation generators 25.8 C library algorithms 26 Numerics library 26.1 General 26.2 Definitions 26.3 Numeric type requirements 26.4 The floating-point environment 26.4.1 Header synopsis 26.5 Complex numbers 26.5.1 Header synopsis 26.5.2 Class template complex 26.5.3 complex specializations 26.5.4 complex member functions 26.5.5 complex member operators 26.5.6 complex non-member operations 26.5.7 complex value operations 26.5.8 complex transcendentals 26.5.9 Additional overloads 26.5.10 Suffixes for complex number literals 26.5.11 Header synopsis 26.6 Random number generation 26.6.1 Requirements 26.6.1.1 General requirements 26.6.1.2 Seed sequence requirements 26.6.1.3 Uniform random bit generator requirements 26.6.1.4 Random number engine requirements 26.6.1.5 Random number engine adaptor requirements 26.6.1.6 Random number distribution requirements 26.6.2 Header synopsis 26.6.3 Random number engine class templates 26.6.3.1 Class template linear_congruential_engine 26.6.3.2 Class template mersenne_twister_engine 26.6.3.3 Class template subtract_with_carry_engine 26.6.4 Random number engine adaptor class templates 26.6.4.1 In general 26.6.4.2 Class template discard_block_engine 26.6.4.3 Class template independent_bits_engine 26.6.4.4 Class template shuffle_order_engine 26.6.5 Engines and engine adaptors with predefined parameters 26.6.6 Class random_device 26.6.7 Utilities 26.6.7.1 Class seed_seq 26.6.7.2 Function template generate_canonical 26.6.8 Random number distribution class templates 26.6.8.1 In general 26.6.8.2 Uniform distributions 26.6.8.2.1 Class template uniform_int_distribution 26.6.8.2.2 Class template uniform_real_distribution 26.6.8.3 Bernoulli distributions 26.6.8.3.1 Class bernoulli_distribution 26.6.8.3.2 Class template binomial_distribution 26.6.8.3.3 Class template geometric_distribution 26.6.8.3.4 Class template negative_binomial_distribution 26.6.8.4 Poisson distributions 26.6.8.4.1 Class template poisson_distribution 26.6.8.4.2 Class template exponential_distribution 26.6.8.4.3 Class template gamma_distribution 26.6.8.4.4 Class template weibull_distribution 26.6.8.4.5 Class template extreme_value_distribution 26.6.8.5 Normal distributions 26.6.8.5.1 Class template normal_distribution 26.6.8.5.2 Class template lognormal_distribution 26.6.8.5.3 Class template chi_squared_distribution 26.6.8.5.4 Class template cauchy_distribution 26.6.8.5.5 Class template fisher_f_distribution 26.6.8.5.6 Class template student_t_distribution 26.6.8.6 Sampling distributions 26.6.8.6.1 Class template discrete_distribution 26.6.8.6.2 Class template piecewise_constant_distribution 26.6.8.6.3 Class template piecewise_linear_distribution 26.6.9 Low-quality random number generation 26.7 Numeric arrays 26.7.1 Header synopsis 26.7.2 Class template valarray 26.7.2.1 Class template valarray overview 26.7.2.2 valarray constructors 26.7.2.3 valarray assignment 26.7.2.4 valarray element access 26.7.2.5 valarray subset operations 26.7.2.6 valarray unary operators 26.7.2.7 valarray compound assignment 26.7.2.8 valarray member functions 26.7.3 valarray non-member operations 26.7.3.1 valarray binary operators 26.7.3.2 valarray logical operators 26.7.3.3 valarray transcendentals 26.7.3.4 valarray specialized algorithms 26.7.4 Class slice 26.7.4.1 Class slice overview 26.7.4.2 slice constructors 26.7.4.3 slice access functions 26.7.5 Class template slice_array 26.7.5.1 Class template slice_array overview 26.7.5.2 slice_array assignment 26.7.5.3 slice_array compound assignment 26.7.5.4 slice_array fill function 26.7.6 The gslice class 26.7.6.1 The gslice class overview 26.7.6.2 gslice constructors 26.7.6.3 gslice access functions 26.7.7 Class template gslice_array 26.7.7.1 Class template gslice_array overview 26.7.7.2 gslice_array assignment 26.7.7.3 gslice_array compound assignment 26.7.7.4 gslice_array fill function 26.7.8 Class template mask_array 26.7.8.1 Class template mask_array overview 26.7.8.2 mask_array assignment 26.7.8.3 mask_array compound assignment 26.7.8.4 mask_array fill function 26.7.9 Class template indirect_array 26.7.9.1 Class template indirect_array overview 26.7.9.2 indirect_array assignment 26.7.9.3 indirect_array compound assignment 26.7.9.4 indirect_array fill function 26.7.10 valarray range access 26.8 Generalized numeric operations 26.8.1 Header synopsis 26.8.2 Accumulate 26.8.3 Reduce 26.8.4 Transform reduce 26.8.5 Inner product 26.8.6 Partial sum 26.8.7 Exclusive scan 26.8.8 Inclusive scan 26.8.9 Transform exclusive scan 26.8.10 Transform inclusive scan 26.8.11 Adjacent difference 26.8.12 Iota 26.8.13 Greatest common divisor 26.8.14 Least common multiple 26.9 Mathematical functions for floating-point types 26.9.1 Header synopsis 26.9.2 Absolute values 26.9.3 Three-dimensional hypotenuse 26.9.4 Classification / comparison functions 26.9.5 Mathematical special functions 26.9.5.1 Associated Laguerre polynomials 26.9.5.2 Associated Legendre functions 26.9.5.3 Beta function 26.9.5.4 Complete elliptic integral of the first kind 26.9.5.5 Complete elliptic integral of the second kind 26.9.5.6 Complete elliptic integral of the third kind 26.9.5.7 Regular modified cylindrical Bessel functions 26.9.5.8 Cylindrical Bessel functions of the first kind 26.9.5.9 Irregular modified cylindrical Bessel functions 26.9.5.10 Cylindrical Neumann functions 26.9.5.11 Incomplete elliptic integral of the first kind 26.9.5.12 Incomplete elliptic integral of the second kind 26.9.5.13 Incomplete elliptic integral of the third kind 26.9.5.14 Exponential integral 26.9.5.15 Hermite polynomials 26.9.5.16 Laguerre polynomials 26.9.5.17 Legendre polynomials 26.9.5.18 Riemann zeta function 26.9.5.19 Spherical Bessel functions of the first kind 26.9.5.20 Spherical associated Legendre functions 26.9.5.21 Spherical Neumann functions 26.9.6 Header synopsis 27 Input/output library 27.1 General 27.2 Iostreams requirements 27.2.1 Imbue limitations 27.2.2 Positioning type limitations 27.2.3 Thread safety 27.3 Forward declarations 27.3.1 Header synopsis 27.3.2 Overview 27.4 Standard iostream objects 27.4.1 Header synopsis 27.4.2 Overview 27.4.3 Narrow stream objects 27.4.4 Wide stream objects 27.5 Iostreams base classes 27.5.1 Header synopsis 27.5.2 Types 27.5.3 Class ios_base 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 27.5.3.1.6 Class ios_base::Init 27.5.3.2 ios_base state functions 27.5.3.3 ios_base functions 27.5.3.4 ios_base static members 27.5.3.5 ios_base storage functions 27.5.3.6 ios_base callbacks 27.5.3.7 ios_base constructors/destructor 27.5.4 Class template fpos 27.5.4.1 fpos members 27.5.4.2 fpos requirements 27.5.5 Class template basic_ios 27.5.5.1 Overview 27.5.5.2 basic_ios constructors 27.5.5.3 Member functions 27.5.5.4 basic_ios flags functions 27.5.6 ios_base manipulators 27.5.6.1 fmtflags manipulators 27.5.6.2 adjustfield manipulators 27.5.6.3 basefield manipulators 27.5.6.4 floatfield manipulators 27.5.6.5 Error reporting 27.6 Stream buffers 27.6.1 Header synopsis 27.6.2 Stream buffer requirements 27.6.3 Class template basic_streambuf 27.6.3.1 basic_streambuf constructors 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 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 27.6.3.3.2 Get area access 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 27.6.3.4.3 Get area 27.6.3.4.4 Putback 27.6.3.4.5 Put area 27.7 Formatting and manipulators 27.7.1 Header synopsis 27.7.2 Header synopsis 27.7.3 Header synopsis 27.7.4 Input streams 27.7.4.1 Class template basic_istream 27.7.4.1.1 basic_istream constructors 27.7.4.1.2 Class basic_istream assign and swap 27.7.4.1.3 Class basic_istream::sentry 27.7.4.2 Formatted input functions 27.7.4.2.1 Common requirements 27.7.4.2.2 Arithmetic extractors 27.7.4.2.3 basic_istream::operator>> 27.7.4.3 Unformatted input functions 27.7.4.4 Standard basic_istream manipulators 27.7.4.5 Rvalue stream extraction 27.7.4.6 Class template basic_iostream 27.7.4.6.1 basic_iostream constructors 27.7.4.6.2 basic_iostream destructor 27.7.4.6.3 basic_iostream assign and swap 27.7.5 Output streams 27.7.5.1 Class template basic_ostream 27.7.5.1.1 basic_ostream constructors 27.7.5.1.2 Class basic_ostream assign and swap 27.7.5.1.3 Class basic_ostream::sentry 27.7.5.1.4 basic_ostream seek members 27.7.5.2 Formatted output functions 27.7.5.2.1 Common requirements 27.7.5.2.2 Arithmetic inserters 27.7.5.2.3 basic_ostream::operator
Similar books
MySQL® Notes for Professionals book
2018 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
MrExcel 2022: Boosting Excel
2022 · PDF
Session C11: Ancient Cultural Landscapes in South Europe – their Ecological Setting and Evolution, Session C22: Gardeners from South America, Session S04: Agro-Pastoralism and Early Metallurgy Sessions, Session WS29: The Idea of Enclosure in Recent Iberian Prehistory, Session C88: Rhytmes et causalites des dynamiques de l'anthropisation en Europe entre 6500 ET 500 BC: Hypotheses socio-culturelles et/ou climatiques: Proceedings of the XV UISPP World Congress (Lisbon 4-9 September 2006) / Actes du XV Congrès Mondial (Lisbonne 4-9 Septembre 2006) Vol.36
2010 · PDF
THE BRITISH ARMY IN INDIA: ITS PRESERVATION BY AN APPROPRIATE CLOTHING, HOUSING, LOCATING, RECREATIVE EMPLOYMENT, AND HOPEFUL ENCOURAGEMENT OF THE TROOPS. with AN APPENDIX ON INDIA : THE CLIMATE OP ITS HILLS ; THE DEVELOPMENT OF ITS RESODRCBS, INDUSTRY, AND ARTS ; THE ADMINISTRATION OF JUSTICE ; THE BLACK ACT ; THE PROGRESS OF CHRISTIANITY ; THE TRAFFIC IN OPIUM ; THE VALUE OF INDIA ; PERMANENT CAUSES OF DISAFFECTION, AND OF THE RECENT REBELLION ; THE TRADITIONARY POLICY; MISGOVERNMENT BY NATIVE RULERS ; ANNEXATIONS OF THEIR TERRITORY, ETC.
1858 · PDF
Idries Shah 27 Books Collection : A Perfumed Scorpion, A Veiled Gazelle, Caravan of Dreams, Darkest England, Destination Mecca, Evenings with Idries Shah, Knowing How to Know, Learning How to Learn, Letters and Lectures of Idries Shah, Neglected aspects of Sufi study, Observations, Oriental Magic, Reflections, Seeker after Truth, Special Illumination, Special Problems in the study of Sufi ideas, Sufi thought and action, Tales of the Dervishes, The Dermis Probe, The Elephant in the Dark, The Englishman Handbook, Idries Shah Antology, The Magic Monastery, The natives are restless, wisdom of the Idiots PDF.
2022 · PDF
The travels of Capts. Lewis and Clarke from St. Louis, by way of the Missouri and Columbia rivers, to the Pacific ocean; performed in the years 1804, 1805 & 1806, by order of the government of the United States. Containing delineations of the manners, customs, religion, &c. of the Indians, comp. from various authentic sources, and original documents, and a summary of the Statistical view of the Indian nations, from the official communication of Meriwether Lewis. Illustrated with a map of the country, inhabited by the western tribes of Indians
1809 · PDF
Professional Linux kernel architecture ''Wrox programmer to programmer''--Cover. - ''What you are reading right now is the result of an evolution over more than seven years: After two years of writing, the first edition was published in German by Carl Hanser Verlag in 2003. It then described kernel 2.6.0. The test was used as a basis for the low-level design documentation for the EAL4+ security evaluation of Red Hat Enterprise Linux 5, requiring to update it to kernel 2.6.18 (if the EAL acronym does not mean anything to you, then Wikipedia is once more your friend). Hewlett-Packard sponsored the translation into English and has, thankfully, granted the rights to publish the result. Updates to kernel 2.6.24 were then performed specifically for this book''--P. ix
2008 · PDF