INTERNATIONAL STANDARD ISO/IEC 14882:2020(E) Programming languages — C++ Sixth edition 2020-12

دانلود کتاب INTERNATIONAL STANDARD ISO/IEC 14882:2020(E) Programming languages — C++ Sixth edition 2020-12

42000 تومان موجود

کتاب استاندارد بین المللی ISO/IEC 14882:2020(E) زبان های برنامه نویسی — C++ ویرایش ششم 2020-12 نسخه زبان اصلی

دانلود کتاب استاندارد بین المللی ISO/IEC 14882:2020(E) زبان های برنامه نویسی — C++ ویرایش ششم 2020-12 بعد از پرداخت مقدور خواهد بود
توضیحات کتاب در بخش جزئیات آمده است و می توانید موارد را مشاهده فرمایید


این کتاب نسخه اصلی می باشد و به زبان فارسی نیست.


امتیاز شما به این کتاب (حداقل 1 و حداکثر 5):

امتیاز کاربران به این کتاب:        تعداد رای دهنده ها: 6


توضیحاتی در مورد کتاب INTERNATIONAL STANDARD ISO/IEC 14882:2020(E) Programming languages — C++ Sixth edition 2020-12

نام کتاب : INTERNATIONAL STANDARD ISO/IEC 14882:2020(E) Programming languages — C++ Sixth edition 2020-12
ویرایش : Sixth edition 2020-12
عنوان ترجمه شده به فارسی : استاندارد بین المللی ISO/IEC 14882:2020(E) زبان های برنامه نویسی — C++ ویرایش ششم 2020-12
سری :
نویسندگان :
ناشر : ISO
سال نشر : 2020
تعداد صفحات : 1866

زبان کتاب : English
فرمت کتاب : pdf
حجم کتاب : 9 Mb



بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.


فهرست مطالب :


79358.pdf pdf at 230.pdf Contents Foreword 1 Scope 2 Normative references 3 Terms and definitions 4 General principles 4.1 Implementation compliance 4.1.1 General 4.1.2 Abstract machine 4.2 Structure of this document 4.3 Syntax notation 5 Lexical conventions 5.1 Separate translation 5.2 Phases of translation 5.3 Character sets 5.4 Preprocessing tokens 5.5 Alternative tokens 5.6 Tokens 5.7 Comments 5.8 Header names 5.9 Preprocessing numbers 5.10 Identifiers 5.11 Keywords 5.12 Operators and punctuators 5.13 Literals 5.13.1 Kinds of literals 5.13.2 Integer literals 5.13.3 Character literals 5.13.4 Floating-point literals 5.13.5 String literals 5.13.6 Boolean literals 5.13.7 Pointer literals 5.13.8 User-defined literals 6 Basics 6.1 Preamble 6.2 Declarations and definitions 6.3 One-definition rule 6.4 Scope 6.4.1 Declarative regions and scopes 6.4.2 Point of declaration 6.4.3 Block scope 6.4.4 Function parameter scope 6.4.5 Function scope 6.4.6 Namespace scope 6.4.7 Class scope 6.4.8 Enumeration scope 6.4.9 Template parameter scope 6.4.10 Name hiding 6.5 Name lookup 6.5.1 General 6.5.2 Unqualified name lookup 6.5.3 Argument-dependent name lookup 6.5.4 Qualified name lookup 6.5.4.1 General 6.5.4.2 Class members 6.5.4.3 Namespace members 6.5.5 Elaborated type specifiers 6.5.6 Class member access 6.5.7 Using-directives and namespace aliases 6.6 Program and linkage 6.7 Memory and objects 6.7.1 Memory model 6.7.2 Object model 6.7.3 Lifetime 6.7.4 Indeterminate values 6.7.5 Storage duration 6.7.5.1 General 6.7.5.2 Static storage duration 6.7.5.3 Thread storage duration 6.7.5.4 Automatic storage duration 6.7.5.5 Dynamic storage duration 6.7.5.5.1 General 6.7.5.5.2 Allocation functions 6.7.5.5.3 Deallocation functions 6.7.5.5.4 Safely-derived pointers 6.7.5.6 Duration of subobjects 6.7.6 Alignment 6.7.7 Temporary objects 6.8 Types 6.8.1 General 6.8.2 Fundamental types 6.8.3 Compound types 6.8.4 CV-qualifiers 6.8.5 Integer conversion rank 6.9 Program execution 6.9.1 Sequential execution 6.9.2 Multi-threaded executions and data races 6.9.2.1 General 6.9.2.2 Data races 6.9.2.3 Forward progress 6.9.3 Start and termination 6.9.3.1 main function 6.9.3.2 Static initialization 6.9.3.3 Dynamic initialization of non-local variables 6.9.3.4 Termination 7 Expressions 7.1 Preamble 7.2 Properties of expressions 7.2.1 Value category 7.2.2 Type 7.2.3 Context dependence 7.3 Standard conversions 7.3.1 General 7.3.2 Lvalue-to-rvalue conversion 7.3.3 Array-to-pointer conversion 7.3.4 Function-to-pointer conversion 7.3.5 Temporary materialization conversion 7.3.6 Qualification conversions 7.3.7 Integral promotions 7.3.8 Floating-point promotion 7.3.9 Integral conversions 7.3.10 Floating-point conversions 7.3.11 Floating-integral conversions 7.3.12 Pointer conversions 7.3.13 Pointer-to-member conversions 7.3.14 Function pointer conversions 7.3.15 Boolean conversions 7.4 Usual arithmetic conversions 7.5 Primary expressions 7.5.1 Literals 7.5.2 This 7.5.3 Parentheses 7.5.4 Names 7.5.4.1 General 7.5.4.2 Unqualified names 7.5.4.3 Qualified names 7.5.4.4 Destruction 7.5.5 Lambda expressions 7.5.5.1 General 7.5.5.2 Closure types 7.5.5.3 Captures 7.5.6 Fold expressions 7.5.7 Requires expressions 7.5.7.1 General 7.5.7.2 Simple requirements 7.5.7.3 Type requirements 7.5.7.4 Compound requirements 7.5.7.5 Nested requirements 7.6 Compound expressions 7.6.1 Postfix expressions 7.6.1.1 General 7.6.1.2 Subscripting 7.6.1.3 Function call 7.6.1.4 Explicit type conversion (functional notation) 7.6.1.5 Class member access 7.6.1.6 Increment and decrement 7.6.1.7 Dynamic cast 7.6.1.8 Type identification 7.6.1.9 Static cast 7.6.1.10 Reinterpret cast 7.6.1.11 Const cast 7.6.2 Unary expressions 7.6.2.1 General 7.6.2.2 Unary operators 7.6.2.3 Increment and decrement 7.6.2.4 Await 7.6.2.5 Sizeof 7.6.2.6 Alignof 7.6.2.7 noexcept operator 7.6.2.8 New 7.6.2.9 Delete 7.6.3 Explicit type conversion (cast notation) 7.6.4 Pointer-to-member operators 7.6.5 Multiplicative operators 7.6.6 Additive operators 7.6.7 Shift operators 7.6.8 Three-way comparison operator 7.6.9 Relational operators 7.6.10 Equality operators 7.6.11 Bitwise AND operator 7.6.12 Bitwise exclusive OR operator 7.6.13 Bitwise inclusive OR operator 7.6.14 Logical AND operator 7.6.15 Logical OR operator 7.6.16 Conditional operator 7.6.17 Yielding a value 7.6.18 Throwing an exception 7.6.19 Assignment and compound assignment operators 7.6.20 Comma operator 7.7 Constant expressions 8 Statements 8.1 Preamble 8.2 Labeled statement 8.3 Expression statement 8.4 Compound statement or block 8.5 Selection statements 8.5.1 General 8.5.2 The if statement 8.5.3 The switch statement 8.6 Iteration statements 8.6.1 General 8.6.2 The while statement 8.6.3 The do statement 8.6.4 The for statement 8.6.5 The range-based for statement 8.7 Jump statements 8.7.1 General 8.7.2 The break statement 8.7.3 The continue statement 8.7.4 The return statement 8.7.5 The co_return statement 8.7.6 The goto statement 8.8 Declaration statement 8.9 Ambiguity resolution 9 Declarations 9.1 Preamble 9.2 Specifiers 9.2.1 General 9.2.2 Storage class specifiers 9.2.3 Function specifiers 9.2.4 The typedef specifier 9.2.5 The friend specifier 9.2.6 The constexpr and consteval specifiers 9.2.7 The constinit specifier 9.2.8 The inline specifier 9.2.9 Type specifiers 9.2.9.1 General 9.2.9.2 The cv-qualifiers 9.2.9.3 Simple type specifiers 9.2.9.4 Elaborated type specifiers 9.2.9.5 Decltype specifiers 9.2.9.6 Placeholder type specifiers 9.2.9.6.1 General 9.2.9.6.2 Placeholder type deduction 9.2.9.7 Deduced class template specialization types 9.3 Declarators 9.3.1 General 9.3.2 Type names 9.3.3 Ambiguity resolution 9.3.4 Meaning of declarators 9.3.4.1 General 9.3.4.2 Pointers 9.3.4.3 References 9.3.4.4 Pointers to members 9.3.4.5 Arrays 9.3.4.6 Functions 9.3.4.7 Default arguments 9.4 Initializers 9.4.1 General 9.4.2 Aggregates 9.4.3 Character arrays 9.4.4 References 9.4.5 List-initialization 9.5 Function definitions 9.5.1 In general 9.5.2 Explicitly-defaulted functions 9.5.3 Deleted definitions 9.5.4 Coroutine definitions 9.6 Structured binding declarations 9.7 Enumerations 9.7.1 Enumeration declarations 9.7.2 The using enum declaration 9.8 Namespaces 9.8.1 General 9.8.2 Namespace definition 9.8.2.1 General 9.8.2.2 Unnamed namespaces 9.8.2.3 Namespace member definitions 9.8.3 Namespace alias 9.8.4 Using namespace directive 9.9 The using declaration 9.10 The asm declaration 9.11 Linkage specifications 9.12 Attributes 9.12.1 Attribute syntax and semantics 9.12.2 Alignment specifier 9.12.3 Carries dependency attribute 9.12.4 Deprecated attribute 9.12.5 Fallthrough attribute 9.12.6 Likelihood attributes 9.12.7 Maybe unused attribute 9.12.8 Nodiscard attribute 9.12.9 Noreturn attribute 9.12.10 No unique address attribute 10 Modules 10.1 Module units and purviews 10.2 Export declaration 10.3 Import declaration 10.4 Global module fragment 10.5 Private module fragment 10.6 Instantiation context 10.7 Reachability 11 Classes 11.1 Preamble 11.2 Properties of classes 11.3 Class names 11.4 Class members 11.4.1 General 11.4.2 Member functions 11.4.3 Non-static member functions 11.4.3.1 General 11.4.3.2 The this pointer 11.4.4 Special member functions 11.4.5 Constructors 11.4.5.1 General 11.4.5.2 Default constructors 11.4.5.3 Copy/move constructors 11.4.6 Copy/move assignment operator 11.4.7 Destructors 11.4.8 Conversions 11.4.8.1 General 11.4.8.2 Conversion by constructor 11.4.8.3 Conversion functions 11.4.9 Static members 11.4.9.1 General 11.4.9.2 Static member functions 11.4.9.3 Static data members 11.4.10 Bit-fields 11.4.11 Nested class declarations 11.4.12 Nested type names 11.5 Unions 11.5.1 General 11.5.2 Anonymous unions 11.6 Local class declarations 11.7 Derived classes 11.7.1 General 11.7.2 Multiple base classes 11.7.3 Virtual functions 11.7.4 Abstract classes 11.8 Member name lookup 11.9 Member access control 11.9.1 General 11.9.2 Access specifiers 11.9.3 Accessibility of base classes and base class members 11.9.4 Friends 11.9.5 Protected member access 11.9.6 Access to virtual functions 11.9.7 Multiple access 11.9.8 Nested classes 11.10 Initialization 11.10.1 General 11.10.2 Explicit initialization 11.10.3 Initializing bases and members 11.10.4 Initialization by inherited constructor 11.10.5 Construction and destruction 11.10.6 Copy/move elision 11.11 Comparisons 11.11.1 Defaulted comparison operator functions 11.11.2 Equality operator 11.11.3 Three-way comparison 11.11.4 Secondary comparison operators 11.12 Free store 12 Overloading 12.1 Preamble 12.2 Overloadable declarations 12.3 Declaration matching 12.4 Overload resolution 12.4.1 General 12.4.2 Candidate functions and argument lists 12.4.2.1 General 12.4.2.2 Function call syntax 12.4.2.2.1 General 12.4.2.2.2 Call to named function 12.4.2.2.3 Call to object of class type 12.4.2.3 Operators in expressions 12.4.2.4 Initialization by constructor 12.4.2.5 Copy-initialization of class by user-defined conversion 12.4.2.6 Initialization by conversion function 12.4.2.7 Initialization by conversion function for direct reference binding 12.4.2.8 Initialization by list-initialization 12.4.2.9 Class template argument deduction 12.4.3 Viable functions 12.4.4 Best viable function 12.4.4.1 General 12.4.4.2 Implicit conversion sequences 12.4.4.2.1 General 12.4.4.2.2 Standard conversion sequences 12.4.4.2.3 User-defined conversion sequences 12.4.4.2.4 Ellipsis conversion sequences 12.4.4.2.5 Reference binding 12.4.4.2.6 List-initialization sequence 12.4.4.3 Ranking implicit conversion sequences 12.5 Address of overloaded function 12.6 Overloaded operators 12.6.1 General 12.6.2 Unary operators 12.6.3 Binary operators 12.6.3.1 General 12.6.3.2 Simple assignment 12.6.4 Function call 12.6.5 Subscripting 12.6.6 Class member access 12.6.7 Increment and decrement 12.7 Built-in operators 12.8 User-defined literals 13 Templates 13.1 Preamble 13.2 Template parameters 13.3 Names of template specializations 13.4 Template arguments 13.4.1 General 13.4.2 Template type arguments 13.4.3 Template non-type arguments 13.4.4 Template template arguments 13.5 Template constraints 13.5.1 General 13.5.2 Constraints 13.5.2.1 General 13.5.2.2 Logical operations 13.5.2.3 Atomic constraints 13.5.3 Constrained declarations 13.5.4 Constraint normalization 13.5.5 Partial ordering by constraints 13.6 Type equivalence 13.7 Template declarations 13.7.1 General 13.7.2 Class templates 13.7.2.1 General 13.7.2.2 Member functions of class templates 13.7.2.3 Deduction guides 13.7.2.4 Member classes of class templates 13.7.2.5 Static data members of class templates 13.7.2.6 Enumeration members of class templates 13.7.3 Member templates 13.7.4 Variadic templates 13.7.5 Friends 13.7.6 Class template partial specializations 13.7.6.1 General 13.7.6.2 Matching of class template partial specializations 13.7.6.3 Partial ordering of class template specializations 13.7.6.4 Members of class template specializations 13.7.7 Function templates 13.7.7.1 General 13.7.7.2 Function template overloading 13.7.7.3 Partial ordering of function templates 13.7.8 Alias templates 13.7.9 Concept definitions 13.8 Name resolution 13.8.1 General 13.8.2 Locally declared names 13.8.3 Dependent names 13.8.3.1 General 13.8.3.2 Dependent types 13.8.3.3 Type-dependent expressions 13.8.3.4 Value-dependent expressions 13.8.3.5 Dependent template arguments 13.8.4 Non-dependent names 13.8.5 Dependent name resolution 13.8.5.1 Point of instantiation 13.8.5.2 Candidate functions 13.8.6 Friend names declared within a class template 13.9 Template instantiation and specialization 13.9.1 General 13.9.2 Implicit instantiation 13.9.3 Explicit instantiation 13.9.4 Explicit specialization 13.10 Function template specializations 13.10.1 General 13.10.2 Explicit template argument specification 13.10.3 Template argument deduction 13.10.3.1 General 13.10.3.2 Deducing template arguments from a function call 13.10.3.3 Deducing template arguments taking the address of a function template 13.10.3.4 Deducing conversion function template arguments 13.10.3.5 Deducing template arguments during partial ordering 13.10.3.6 Deducing template arguments from a type 13.10.3.7 Deducing template arguments from a function declaration 13.10.4 Overload resolution 14 Exception handling 14.1 Preamble 14.2 Throwing an exception 14.3 Constructors and destructors 14.4 Handling an exception 14.5 Exception specifications 14.6 Special functions 14.6.1 General 14.6.2 The std::terminate function 14.6.3 The std::uncaught_exceptions function 15 Preprocessing directives 15.1 Preamble 15.2 Conditional inclusion 15.3 Source file inclusion 15.4 Module directive 15.5 Header unit importation 15.6 Macro replacement 15.6.1 General 15.6.2 Argument substitution 15.6.3 The # operator 15.6.4 The ## operator 15.6.5 Rescanning and further replacement 15.6.6 Scope of macro definitions 15.7 Line control 15.8 Error directive 15.9 Pragma directive 15.10 Null directive 15.11 Predefined macro names 15.12 Pragma operator 16 Library introduction 16.1 General 16.2 The C standard library 16.3 Method of description 16.3.1 General 16.3.2 Structure of each clause 16.3.2.1 Elements 16.3.2.2 Summary 16.3.2.3 Requirements 16.3.2.4 Detailed specifications 16.3.2.5 C library 16.3.3 Other conventions 16.3.3.1 General 16.3.3.2 Exposition-only functions 16.3.3.3 Type descriptions 16.3.3.3.1 General 16.3.3.3.2 Exposition-only types 16.3.3.3.3 Enumerated types 16.3.3.3.4 Bitmask types 16.3.3.3.5 Character sequences 16.3.3.3.5.1 General 16.3.3.3.5.2 Byte strings 16.3.3.3.5.3 Multibyte strings 16.3.3.3.6 Customization Point Object types 16.3.3.4 Functions within classes 16.3.3.5 Private members 16.4 Library-wide requirements 16.4.1 General 16.4.2 Library contents and organization 16.4.2.1 General 16.4.2.2 Library contents 16.4.2.3 Headers 16.4.2.4 Freestanding implementations 16.4.3 Using the library 16.4.3.1 Overview 16.4.3.2 Headers 16.4.3.3 Linkage 16.4.4 Requirements on types and expressions 16.4.4.1 General 16.4.4.2 Template argument requirements 16.4.4.3 Swappable requirements 16.4.4.4 Cpp17NullablePointer requirements 16.4.4.5 Cpp17Hash requirements 16.4.4.6 Cpp17Allocator requirements 16.4.4.6.1 General 16.4.4.6.2 Allocator completeness requirements 16.4.5 Constraints on programs 16.4.5.1 Overview 16.4.5.2 Namespace use 16.4.5.2.1 Namespace std 16.4.5.2.2 Namespace posix 16.4.5.2.3 Namespaces for future standardization 16.4.5.3 Reserved names 16.4.5.3.1 General 16.4.5.3.2 Zombie names 16.4.5.3.3 Macro names 16.4.5.3.4 External linkage 16.4.5.3.5 Types 16.4.5.3.6 User-defined literal suffixes 16.4.5.4 Headers 16.4.5.5 Derived classes 16.4.5.6 Replacement functions 16.4.5.7 Handler functions 16.4.5.8 Other functions 16.4.5.9 Function arguments 16.4.5.10 Library object access 16.4.5.11 Semantic requirements 16.4.6 Conforming implementations 16.4.6.1 Overview 16.4.6.2 Headers 16.4.6.3 Restrictions on macro definitions 16.4.6.4 Non-member functions 16.4.6.5 Member functions 16.4.6.6 Friend functions 16.4.6.7 Constexpr functions and constructors 16.4.6.8 Requirements for stable algorithms 16.4.6.9 Reentrancy 16.4.6.10 Data race avoidance 16.4.6.11 Protection within classes 16.4.6.12 Derived classes 16.4.6.13 Restrictions on exception handling 16.4.6.14 Restrictions on storage of pointers 16.4.6.15 Value of error codes 16.4.6.16 Moved-from state of library types 17 Language support library 17.1 General 17.2 Common definitions 17.2.1 Header synopsis 17.2.2 Header synopsis 17.2.3 Null pointers 17.2.4 Sizes, alignments, and offsets 17.2.5 byte type operations 17.3 Implementation properties 17.3.1 General 17.3.2 Header synopsis 17.3.3 Header synopsis 17.3.4 Floating-point type properties 17.3.4.1 Type float_round_style 17.3.4.2 Type float_denorm_style 17.3.5 Class template numeric_limits 17.3.5.1 General 17.3.5.2 numeric_limits members 17.3.5.3 numeric_limits specializations 17.3.6 Header synopsis 17.3.7 Header synopsis 17.4 Integer types 17.4.1 General 17.4.2 Header synopsis 17.5 Startup and termination 17.6 Dynamic memory management 17.6.1 General 17.6.2 Header synopsis 17.6.3 Storage allocation and deallocation 17.6.3.1 General 17.6.3.2 Single-object forms 17.6.3.3 Array forms 17.6.3.4 Non-allocating forms 17.6.3.5 Data races 17.6.4 Storage allocation errors 17.6.4.1 Class bad_alloc 17.6.4.2 Class bad_array_new_length 17.6.4.3 Type new_handler 17.6.4.4 set_new_handler 17.6.4.5 get_new_handler 17.6.5 Pointer optimization barrier 17.6.6 Hardware interference size 17.7 Type identification 17.7.1 General 17.7.2 Header synopsis 17.7.3 Class type_info 17.7.4 Class bad_cast 17.7.5 Class bad_typeid 17.8 Source location 17.8.1 Header synopsis 17.8.2 Class source_location 17.8.2.1 General 17.8.2.2 Creation 17.8.2.3 Observers 17.9 Exception handling 17.9.1 General 17.9.2 Header synopsis 17.9.3 Class exception 17.9.4 Class bad_exception 17.9.5 Abnormal termination 17.9.5.1 Type terminate_handler 17.9.5.2 set_terminate 17.9.5.3 get_terminate 17.9.5.4 terminate 17.9.6 uncaught_exceptions 17.9.7 Exception propagation 17.9.8 nested_exception 17.10 Initializer lists 17.10.1 General 17.10.2 Header synopsis 17.10.3 Initializer list constructors 17.10.4 Initializer list access 17.10.5 Initializer list range access 17.11 Comparisons 17.11.1 Header synopsis 17.11.2 Comparison category types 17.11.2.1 Preamble 17.11.2.2 Class partial_ordering 17.11.2.3 Class weak_ordering 17.11.2.4 Class strong_ordering 17.11.3 Class template common_comparison_category 17.11.4 Concept three_way_comparable 17.11.5 Result of three-way comparison 17.11.6 Comparison algorithms 17.12 Coroutines 17.12.1 General 17.12.2 Header synopsis 17.12.3 Coroutine traits 17.12.3.1 General 17.12.3.2 Class template coroutine_traits 17.12.4 Class template coroutine_handle 17.12.4.1 General 17.12.4.2 Construct/reset 17.12.4.3 Export/import 17.12.4.4 Observers 17.12.4.5 Resumption 17.12.4.6 Promise access 17.12.4.7 Comparison operators 17.12.4.8 Hash support 17.12.5 No-op coroutines 17.12.5.1 Class noop_coroutine_promise 17.12.5.2 Class coroutine_handle 17.12.5.2.1 Observers 17.12.5.2.2 Resumption 17.12.5.2.3 Promise access 17.12.5.2.4 Address 17.12.5.3 Function noop_coroutine 17.12.6 Trivial awaitables 17.13 Other runtime support 17.13.1 General 17.13.2 Header synopsis 17.13.3 Header synopsis 17.13.4 Header synopsis 17.13.5 Signal handlers 18 Concepts library 18.1 General 18.2 Equality preservation 18.3 Header synopsis 18.4 Language-related concepts 18.4.1 General 18.4.2 Concept same_as 18.4.3 Concept derived_from 18.4.4 Concept convertible_to 18.4.5 Concept common_reference_with 18.4.6 Concept common_with 18.4.7 Arithmetic concepts 18.4.8 Concept assignable_from 18.4.9 Concept swappable 18.4.10 Concept destructible 18.4.11 Concept constructible_from 18.4.12 Concept default_initializable 18.4.13 Concept move_constructible 18.4.14 Concept copy_constructible 18.5 Comparison concepts 18.5.1 General 18.5.2 Boolean testability 18.5.3 Concept equality_comparable 18.5.4 Concept totally_ordered 18.6 Object concepts 18.7 Callable concepts 18.7.1 General 18.7.2 Concept invocable 18.7.3 Concept regular_invocable 18.7.4 Concept predicate 18.7.5 Concept relation 18.7.6 Concept equivalence_relation 18.7.7 Concept strict_weak_order 19 Diagnostics library 19.1 General 19.2 Exception classes 19.2.1 General 19.2.2 Header synopsis 19.2.3 Class logic_error 19.2.4 Class domain_error 19.2.5 Class invalid_argument 19.2.6 Class length_error 19.2.7 Class out_of_range 19.2.8 Class runtime_error 19.2.9 Class range_error 19.2.10 Class overflow_error 19.2.11 Class underflow_error 19.3 Assertions 19.3.1 General 19.3.2 Header synopsis 19.3.3 The assert macro 19.4 Error numbers 19.4.1 General 19.4.2 Header synopsis 19.5 System error support 19.5.1 General 19.5.2 Header synopsis 19.5.3 Class error_category 19.5.3.1 Overview 19.5.3.2 Virtual members 19.5.3.3 Non-virtual members 19.5.3.4 Program-defined classes derived from error_category 19.5.3.5 Error category objects 19.5.4 Class error_code 19.5.4.1 Overview 19.5.4.2 Constructors 19.5.4.3 Modifiers 19.5.4.4 Observers 19.5.4.5 Non-member functions 19.5.5 Class error_condition 19.5.5.1 Overview 19.5.5.2 Constructors 19.5.5.3 Modifiers 19.5.5.4 Observers 19.5.5.5 Non-member functions 19.5.6 Comparison operator functions 19.5.7 System error hash support 19.5.8 Class system_error 19.5.8.1 Overview 19.5.8.2 Members 20 General utilities library 20.1 General 20.2 Utility components 20.2.1 Header synopsis 20.2.2 swap 20.2.3 exchange 20.2.4 Forward/move helpers 20.2.5 Function template as_const 20.2.6 Function template declval 20.2.7 Integer comparison functions 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.4 Tuple creation functions 20.5.5 Calling a function with a tuple of arguments 20.5.6 Tuple helper classes 20.5.7 Element access 20.5.8 Relational operators 20.5.9 Tuple traits 20.5.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 General 20.6.3.2 Constructors 20.6.3.3 Destructor 20.6.3.4 Assignment 20.6.3.5 Swap 20.6.3.6 Observers 20.6.3.7 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 General 20.7.3.2 Constructors 20.7.3.3 Destructor 20.7.3.4 Assignment 20.7.3.5 Modifiers 20.7.3.6 Value status 20.7.3.7 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.8 Storage for any type 20.8.1 General 20.8.2 Header synopsis 20.8.3 Class bad_any_cast 20.8.4 Class any 20.8.4.1 General 20.8.4.2 Construction and destruction 20.8.4.3 Assignment 20.8.4.4 Modifiers 20.8.4.5 Observers 20.8.5 Non-member functions 20.9 Bitsets 20.9.1 Header synopsis 20.9.2 Class template bitset 20.9.2.1 General 20.9.2.2 Constructors 20.9.2.3 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 General 20.10.3.2 Member types 20.10.3.3 Member functions 20.10.3.4 Optional members 20.10.4 Pointer conversion 20.10.5 Pointer safety 20.10.6 Pointer alignment 20.10.7 Allocator argument tag 20.10.8 uses_allocator 20.10.8.1 uses_allocator trait 20.10.8.2 Uses-allocator construction 20.10.9 Allocator traits 20.10.9.1 General 20.10.9.2 Member types 20.10.9.3 Static member functions 20.10.10 The default allocator 20.10.10.1 General 20.10.10.2 Members 20.10.10.3 Operators 20.10.11 addressof 20.10.12 C library memory allocation 20.11 Smart pointers 20.11.1 Class template unique_ptr 20.11.1.1 General 20.11.1.2 Default deleters 20.11.1.2.1 In general 20.11.1.2.2 default_delete 20.11.1.2.3 default_delete 20.11.1.3 unique_ptr for single objects 20.11.1.3.1 General 20.11.1.3.2 Constructors 20.11.1.3.3 Destructor 20.11.1.3.4 Assignment 20.11.1.3.5 Observers 20.11.1.3.6 Modifiers 20.11.1.4 unique_ptr for array objects with a runtime length 20.11.1.4.1 General 20.11.1.4.2 Constructors 20.11.1.4.3 Assignment 20.11.1.4.4 Observers 20.11.1.4.5 Modifiers 20.11.1.5 Creation 20.11.1.6 Specialized algorithms 20.11.1.7 I/O 20.11.2 Class bad_weak_ptr 20.11.3 Class template shared_ptr 20.11.3.1 General 20.11.3.2 Constructors 20.11.3.3 Destructor 20.11.3.4 Assignment 20.11.3.5 Modifiers 20.11.3.6 Observers 20.11.3.7 Creation 20.11.3.8 Comparison 20.11.3.9 Specialized algorithms 20.11.3.10 Casts 20.11.3.11 get_deleter 20.11.3.12 I/O 20.11.4 Class template weak_ptr 20.11.4.1 General 20.11.4.2 Constructors 20.11.4.3 Destructor 20.11.4.4 Assignment 20.11.4.5 Modifiers 20.11.4.6 Observers 20.11.4.7 Specialized algorithms 20.11.5 Class template owner_less 20.11.6 Class template enable_shared_from_this 20.11.7 Smart pointer hash support 20.12 Memory resources 20.12.1 Header synopsis 20.12.2 Class memory_resource 20.12.2.1 General 20.12.2.2 Public member functions 20.12.2.3 Private virtual member functions 20.12.2.4 Equality 20.12.3 Class template polymorphic_allocator 20.12.3.1 General 20.12.3.2 Constructors 20.12.3.3 Member functions 20.12.3.4 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 Constructors and destructors 20.12.5.4 Members 20.12.6 Class monotonic_buffer_resource 20.12.6.1 General 20.12.6.2 Constructors and destructor 20.12.6.3 Members 20.13 Class template scoped_allocator_adaptor 20.13.1 Header synopsis 20.13.2 Member types 20.13.3 Constructors 20.13.4 Members 20.13.5 Operators 20.14 Function objects 20.14.1 General 20.14.2 Header synopsis 20.14.3 Definitions 20.14.4 Requirements 20.14.5 Function template invoke 20.14.6 Class template reference_wrapper 20.14.6.1 General 20.14.6.2 Constructors and destructor 20.14.6.3 Assignment 20.14.6.4 Access 20.14.6.5 Invocation 20.14.6.6 Helper functions 20.14.7 Arithmetic operations 20.14.7.1 General 20.14.7.2 Class template plus 20.14.7.3 Class template minus 20.14.7.4 Class template multiplies 20.14.7.5 Class template divides 20.14.7.6 Class template modulus 20.14.7.7 Class template negate 20.14.8 Comparisons 20.14.8.1 General 20.14.8.2 Class template equal_to 20.14.8.3 Class template not_equal_to 20.14.8.4 Class template greater 20.14.8.5 Class template less 20.14.8.6 Class template greater_equal 20.14.8.7 Class template less_equal 20.14.8.8 Class compare_three_way 20.14.9 Concept-constrained comparisons 20.14.10 Logical operations 20.14.10.1 General 20.14.10.2 Class template logical_and 20.14.10.3 Class template logical_or 20.14.10.4 Class template logical_not 20.14.11 Bitwise operations 20.14.11.1 General 20.14.11.2 Class template bit_and 20.14.11.3 Class template bit_or 20.14.11.4 Class template bit_xor 20.14.11.5 Class template bit_not 20.14.12 Class identity 20.14.13 Function template not_fn 20.14.14 Function template bind_front 20.14.15 Function object binders 20.14.15.1 General 20.14.15.2 Class template is_bind_expression 20.14.15.3 Class template is_placeholder 20.14.15.4 Function template bind 20.14.15.5 Placeholders 20.14.16 Function template mem_fn 20.14.17 Polymorphic function wrappers 20.14.17.1 General 20.14.17.2 Class bad_function_call 20.14.17.3 Class template function 20.14.17.3.1 General 20.14.17.3.2 Constructors and destructor 20.14.17.3.3 Modifiers 20.14.17.3.4 Capacity 20.14.17.3.5 Invocation 20.14.17.3.6 Target access 20.14.17.3.7 Null pointer comparison operator functions 20.14.17.3.8 Specialized algorithms 20.14.18 Searchers 20.14.18.1 General 20.14.18.2 Class template default_searcher 20.14.18.3 Class template boyer_moore_searcher 20.14.18.4 Class template boyer_moore_horspool_searcher 20.14.19 Class template hash 20.15 Metaprogramming and type traits 20.15.1 General 20.15.2 Requirements 20.15.3 Header synopsis 20.15.4 Helper classes 20.15.5 Unary type traits 20.15.5.1 General 20.15.5.2 Primary type categories 20.15.5.3 Composite type traits 20.15.5.4 Type properties 20.15.6 Type property queries 20.15.7 Relationships between types 20.15.8 Transformations between types 20.15.8.1 General 20.15.8.2 Const-volatile modifications 20.15.8.3 Reference modifications 20.15.8.4 Sign modifications 20.15.8.5 Array modifications 20.15.8.6 Pointer modifications 20.15.8.7 Other transformations 20.15.9 Logical operator traits 20.15.10 Member relationships 20.15.11 Constant evaluation context 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 Class type_index 20.17.1 Header synopsis 20.17.2 type_index overview 20.17.3 type_index members 20.17.4 Hash support 20.18 Execution policies 20.18.1 In general 20.18.2 Header synopsis 20.18.3 Execution policy type trait 20.18.4 Sequenced execution policy 20.18.5 Parallel execution policy 20.18.6 Parallel and unsequenced execution policy 20.18.7 Unsequenced execution policy 20.18.8 Execution policy objects 20.19 Primitive numeric conversions 20.19.1 Header synopsis 20.19.2 Primitive numeric output conversion 20.19.3 Primitive numeric input conversion 20.20 Formatting 20.20.1 Header synopsis 20.20.2 Format string 20.20.2.1 In general 20.20.2.2 Standard format specifiers 20.20.3 Error reporting 20.20.4 Formatting functions 20.20.5 Formatter 20.20.5.1 Formatter requirements 20.20.5.2 Formatter specializations 20.20.5.3 Class template basic_format_parse_context 20.20.5.4 Class template basic_format_context 20.20.6 Arguments 20.20.6.1 Class template basic_format_arg 20.20.6.2 Class template format-arg-store 20.20.6.3 Class template basic_format_args 20.20.7 Class format_error 21 Strings library 21.1 General 21.2 Character traits 21.2.1 General 21.2.2 Character traits requirements 21.2.3 Traits typedefs 21.2.4 char_traits specializations 21.2.4.1 General 21.2.4.2 struct char_traits 21.2.4.3 struct char_traits 21.2.4.4 struct char_traits 21.2.4.5 struct char_traits 21.2.4.6 struct char_traits 21.3 String classes 21.3.1 General 21.3.2 Header synopsis 21.3.3 Class template basic_string 21.3.3.1 General 21.3.3.2 General requirements 21.3.3.3 Constructors and assignment operators 21.3.3.4 Iterator support 21.3.3.5 Capacity 21.3.3.6 Element access 21.3.3.7 Modifiers 21.3.3.7.1 basic_string::operator+= 21.3.3.7.2 basic_string::append 21.3.3.7.3 basic_string::assign 21.3.3.7.4 basic_string::insert 21.3.3.7.5 basic_string::erase 21.3.3.7.6 basic_string::replace 21.3.3.7.7 basic_string::copy 21.3.3.7.8 basic_string::swap 21.3.3.8 String operations 21.3.3.8.1 Accessors 21.3.3.8.2 Searching 21.3.3.8.3 basic_string::substr 21.3.3.8.4 basic_string::compare 21.3.3.8.5 basic_string::starts_with 21.3.3.8.6 basic_string::ends_with 21.3.4 Non-member functions 21.3.4.1 operator+ 21.3.4.2 Non-member comparison operator functions 21.3.4.3 swap 21.3.4.4 Inserters and extractors 21.3.4.5 Erasure 21.3.5 Numeric conversions 21.3.6 Hash support 21.3.7 Suffix for basic_string literals 21.4 String view classes 21.4.1 General 21.4.2 Header synopsis 21.4.3 Class template basic_string_view 21.4.3.1 General 21.4.3.2 Construction and assignment 21.4.3.3 Iterator support 21.4.3.4 Capacity 21.4.3.5 Element access 21.4.3.6 Modifiers 21.4.3.7 String operations 21.4.3.8 Searching 21.4.4 Deduction guide 21.4.5 Non-member comparison functions 21.4.6 Inserters and extractors 21.4.7 Hash support 21.4.8 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 Containers library 22.1 General 22.2 Container requirements 22.2.1 General container requirements 22.2.2 Container data races 22.2.3 Sequence containers 22.2.4 Node handles 22.2.4.1 Overview 22.2.4.2 Constructors, copy, and assignment 22.2.4.3 Destructor 22.2.4.4 Observers 22.2.4.5 Modifiers 22.2.5 Insert return type 22.2.6 Associative containers 22.2.6.1 General 22.2.6.2 Exception safety guarantees 22.2.7 Unordered associative containers 22.2.7.1 General 22.2.7.2 Exception safety guarantees 22.3 Sequence containers 22.3.1 In general 22.3.2 Header synopsis 22.3.3 Header synopsis 22.3.4 Header synopsis 22.3.5 Header synopsis 22.3.6 Header synopsis 22.3.7 Class template array 22.3.7.1 Overview 22.3.7.2 Constructors, copy, and assignment 22.3.7.3 Member functions 22.3.7.4 Specialized algorithms 22.3.7.5 Zero-sized arrays 22.3.7.6 Array creation functions 22.3.7.7 Tuple interface 22.3.8 Class template deque 22.3.8.1 Overview 22.3.8.2 Constructors, copy, and assignment 22.3.8.3 Capacity 22.3.8.4 Modifiers 22.3.8.5 Erasure 22.3.9 Class template forward_list 22.3.9.1 Overview 22.3.9.2 Constructors, copy, and assignment 22.3.9.3 Iterators 22.3.9.4 Element access 22.3.9.5 Modifiers 22.3.9.6 Operations 22.3.9.7 Erasure 22.3.10 Class template list 22.3.10.1 Overview 22.3.10.2 Constructors, copy, and assignment 22.3.10.3 Capacity 22.3.10.4 Modifiers 22.3.10.5 Operations 22.3.10.6 Erasure 22.3.11 Class template vector 22.3.11.1 Overview 22.3.11.2 Constructors 22.3.11.3 Capacity 22.3.11.4 Data 22.3.11.5 Modifiers 22.3.11.6 Erasure 22.3.12 Class vector 22.4 Associative containers 22.4.1 In general 22.4.2 Header synopsis 22.4.3 Header synopsis 22.4.4 Class template map 22.4.4.1 Overview 22.4.4.2 Constructors, copy, and assignment 22.4.4.3 Element access 22.4.4.4 Modifiers 22.4.4.5 Erasure 22.4.5 Class template multimap 22.4.5.1 Overview 22.4.5.2 Constructors 22.4.5.3 Modifiers 22.4.5.4 Erasure 22.4.6 Class template set 22.4.6.1 Overview 22.4.6.2 Constructors, copy, and assignment 22.4.6.3 Erasure 22.4.7 Class template multiset 22.4.7.1 Overview 22.4.7.2 Constructors 22.4.7.3 Erasure 22.5 Unordered associative containers 22.5.1 In general 22.5.2 Header synopsis 22.5.3 Header synopsis 22.5.4 Class template unordered_map 22.5.4.1 Overview 22.5.4.2 Constructors 22.5.4.3 Element access 22.5.4.4 Modifiers 22.5.4.5 Erasure 22.5.5 Class template unordered_multimap 22.5.5.1 Overview 22.5.5.2 Constructors 22.5.5.3 Modifiers 22.5.5.4 Erasure 22.5.6 Class template unordered_set 22.5.6.1 Overview 22.5.6.2 Constructors 22.5.6.3 Erasure 22.5.7 Class template unordered_multiset 22.5.7.1 Overview 22.5.7.2 Constructors 22.5.7.3 Erasure 22.6 Container adaptors 22.6.1 In general 22.6.2 Header synopsis 22.6.3 Header synopsis 22.6.4 Class template queue 22.6.4.1 Definition 22.6.4.2 Constructors 22.6.4.3 Constructors with allocators 22.6.4.4 Operators 22.6.4.5 Specialized algorithms 22.6.5 Class template priority_queue 22.6.5.1 Overview 22.6.5.2 Constructors 22.6.5.3 Constructors with allocators 22.6.5.4 Members 22.6.5.5 Specialized algorithms 22.6.6 Class template stack 22.6.6.1 General 22.6.6.2 Definition 22.6.6.3 Constructors 22.6.6.4 Constructors with allocators 22.6.6.5 Operators 22.6.6.6 Specialized algorithms 22.7 Views 22.7.1 General 22.7.2 Header synopsis 22.7.3 Class template span 22.7.3.1 Overview 22.7.3.2 Constructors, copy, and assignment 22.7.3.3 Deduction guides 22.7.3.4 Subviews 22.7.3.5 Observers 22.7.3.6 Element access 22.7.3.7 Iterator support 22.7.3.8 Views of object representation 23 Iterators library 23.1 General 23.2 Header synopsis 23.3 Iterator requirements 23.3.1 In general 23.3.2 Associated types 23.3.2.1 Incrementable traits 23.3.2.2 Indirectly readable traits 23.3.2.3 Iterator traits 23.3.3 Customization points 23.3.3.1 ranges::iter_move 23.3.3.2 ranges::iter_swap 23.3.4 Iterator concepts 23.3.4.1 General 23.3.4.2 Concept indirectly_readable 23.3.4.3 Concept indirectly_writable 23.3.4.4 Concept weakly_incrementable 23.3.4.5 Concept incrementable 23.3.4.6 Concept input_or_output_iterator 23.3.4.7 Concept sentinel_for 23.3.4.8 Concept sized_sentinel_for 23.3.4.9 Concept input_iterator 23.3.4.10 Concept output_iterator 23.3.4.11 Concept forward_iterator 23.3.4.12 Concept bidirectional_iterator 23.3.4.13 Concept random_access_iterator 23.3.4.14 Concept contiguous_iterator 23.3.5 C++17 iterator requirements 23.3.5.1 General 23.3.5.2 Cpp17Iterator 23.3.5.3 Input iterators 23.3.5.4 Output iterators 23.3.5.5 Forward iterators 23.3.5.6 Bidirectional iterators 23.3.5.7 Random access iterators 23.3.6 Indirect callable requirements 23.3.6.1 General 23.3.6.2 Indirect callables 23.3.6.3 Class template projected 23.3.7 Common algorithm requirements 23.3.7.1 General 23.3.7.2 Concept indirectly_movable 23.3.7.3 Concept indirectly_copyable 23.3.7.4 Concept indirectly_swappable 23.3.7.5 Concept indirectly_comparable 23.3.7.6 Concept permutable 23.3.7.7 Concept mergeable 23.3.7.8 Concept sortable 23.4 Iterator primitives 23.4.1 General 23.4.2 Standard iterator tags 23.4.3 Iterator operations 23.4.4 Range iterator operations 23.4.4.1 General 23.4.4.2 ranges::advance 23.4.4.3 ranges::distance 23.4.4.4 ranges::next 23.4.4.5 ranges::prev 23.5 Iterator adaptors 23.5.1 Reverse iterators 23.5.1.1 General 23.5.1.2 Class template reverse_iterator 23.5.1.3 Requirements 23.5.1.4 Construction and assignment 23.5.1.5 Conversion 23.5.1.6 Element access 23.5.1.7 Navigation 23.5.1.8 Comparisons 23.5.1.9 Non-member functions 23.5.2 Insert iterators 23.5.2.1 General 23.5.2.2 Class template back_insert_iterator 23.5.2.2.1 Operations 23.5.2.2.2 back_inserter 23.5.2.3 Class template front_insert_iterator 23.5.2.3.1 Operations 23.5.2.3.2 front_inserter 23.5.2.4 Class template insert_iterator 23.5.2.4.1 Operations 23.5.2.4.2 inserter 23.5.3 Move iterators and sentinels 23.5.3.1 General 23.5.3.2 Class template move_iterator 23.5.3.3 Requirements 23.5.3.4 Construction and assignment 23.5.3.5 Conversion 23.5.3.6 Element access 23.5.3.7 Navigation 23.5.3.8 Comparisons 23.5.3.9 Non-member functions 23.5.3.10 Class template move_sentinel 23.5.3.11 Operations 23.5.4 Common iterators 23.5.4.1 Class template common_iterator 23.5.4.2 Associated types 23.5.4.3 Constructors and conversions 23.5.4.4 Accessors 23.5.4.5 Navigation 23.5.4.6 Comparisons 23.5.4.7 Customizations 23.5.5 Default sentinel 23.5.6 Counted iterators 23.5.6.1 Class template counted_iterator 23.5.6.2 Constructors and conversions 23.5.6.3 Accessors 23.5.6.4 Element access 23.5.6.5 Navigation 23.5.6.6 Comparisons 23.5.6.7 Customizations 23.5.7 Unreachable sentinel 23.6 Stream iterators 23.6.1 General 23.6.2 Class template istream_iterator 23.6.2.1 General 23.6.2.2 Constructors and destructor 23.6.2.3 Operations 23.6.3 Class template ostream_iterator 23.6.3.1 General 23.6.3.2 Constructors and destructor 23.6.3.3 Operations 23.6.4 Class template istreambuf_iterator 23.6.4.1 General 23.6.4.2 Class istreambuf_iterator::proxy 23.6.4.3 Constructors 23.6.4.4 Operations 23.6.5 Class template ostreambuf_iterator 23.6.5.1 General 23.6.5.2 Constructors 23.6.5.3 Operations 23.7 Range access 24 Ranges library 24.1 General 24.2 Header synopsis 24.3 Range access 24.3.1 General 24.3.2 ranges::begin 24.3.3 ranges::end 24.3.4 ranges::cbegin 24.3.5 ranges::cend 24.3.6 ranges::rbegin 24.3.7 ranges::rend 24.3.8 ranges::crbegin 24.3.9 ranges::crend 24.3.10 ranges::size 24.3.11 ranges::ssize 24.3.12 ranges::empty 24.3.13 ranges::data 24.3.14 ranges::cdata 24.4 Range requirements 24.4.1 General 24.4.2 Ranges 24.4.3 Sized ranges 24.4.4 Views 24.4.5 Other range refinements 24.5 Range utilities 24.5.1 General 24.5.2 Helper concepts 24.5.3 View interface 24.5.3.1 General 24.5.3.2 Members 24.5.4 Sub-ranges 24.5.4.1 General 24.5.4.2 Constructors and conversions 24.5.4.3 Accessors 24.5.5 Dangling iterator handling 24.6 Range factories 24.6.1 General 24.6.2 Empty view 24.6.2.1 Overview 24.6.2.2 Class template empty_view 24.6.3 Single view 24.6.3.1 Overview 24.6.3.2 Class template single_view 24.6.4 Iota view 24.6.4.1 Overview 24.6.4.2 Class template iota_view 24.6.4.3 Class iota_view::iterator 24.6.4.4 Class iota_view::sentinel 24.6.5 Istream view 24.6.5.1 Overview 24.6.5.2 Class template basic_istream_view 24.6.5.3 Class template basic_istream_view::iterator 24.7 Range adaptors 24.7.1 General 24.7.2 Range adaptor objects 24.7.3 Semiregular wrapper 24.7.4 All view 24.7.4.1 General 24.7.4.2 Class template ref_view 24.7.5 Filter view 24.7.5.1 Overview 24.7.5.2 Class template filter_view 24.7.5.3 Class filter_view::iterator 24.7.5.4 Class filter_view::sentinel 24.7.6 Transform view 24.7.6.1 Overview 24.7.6.2 Class template transform_view 24.7.6.3 Class template transform_view::iterator 24.7.6.4 Class template transform_view::sentinel 24.7.7 Take view 24.7.7.1 Overview 24.7.7.2 Class template take_view 24.7.7.3 Class template take_view::sentinel 24.7.8 Take while view 24.7.8.1 Overview 24.7.8.2 Class template take_while_view 24.7.8.3 Class template take_while_view::sentinel 24.7.9 Drop view 24.7.9.1 Overview 24.7.9.2 Class template drop_view 24.7.10 Drop while view 24.7.10.1 Overview 24.7.10.2 Class template drop_while_view 24.7.11 Join view 24.7.11.1 Overview 24.7.11.2 Class template join_view 24.7.11.3 Class template join_view::iterator 24.7.11.4 Class template join_view::sentinel 24.7.12 Split view 24.7.12.1 Overview 24.7.12.2 Class template split_view 24.7.12.3 Class template split_view::outer-iterator 24.7.12.4 Class split_view::outer-iterator::value_type 24.7.12.5 Class template split_view::inner-iterator 24.7.13 Counted view 24.7.14 Common view 24.7.14.1 Overview 24.7.14.2 Class template common_view 24.7.15 Reverse view 24.7.15.1 Overview 24.7.15.2 Class template reverse_view 24.7.16 Elements view 24.7.16.1 Overview 24.7.16.2 Class template elements_view 24.7.16.3 Class template elements_view::iterator 24.7.16.4 Class template elements_view::sentinel 25 Algorithms library 25.1 General 25.2 Algorithms requirements 25.3 Parallel algorithms 25.3.1 Preamble 25.3.2 Requirements on user-provided function objects 25.3.3 Effect of execution policies on algorithm execution 25.3.4 Parallel algorithm exceptions 25.3.5 ExecutionPolicy algorithm overloads 25.4 Header synopsis 25.5 Algorithm result types 25.6 Non-modifying sequence operations 25.6.1 All of 25.6.2 Any of 25.6.3 None of 25.6.4 For each 25.6.5 Find 25.6.6 Find end 25.6.7 Find first 25.6.8 Adjacent find 25.6.9 Count 25.6.10 Mismatch 25.6.11 Equal 25.6.12 Is permutation 25.6.13 Search 25.7 Mutating sequence operations 25.7.1 Copy 25.7.2 Move 25.7.3 Swap 25.7.4 Transform 25.7.5 Replace 25.7.6 Fill 25.7.7 Generate 25.7.8 Remove 25.7.9 Unique 25.7.10 Reverse 25.7.11 Rotate 25.7.12 Sample 25.7.13 Shuffle 25.7.14 Shift 25.8 Sorting and related operations 25.8.1 General 25.8.2 Sorting 25.8.2.1 sort 25.8.2.2 stable_sort 25.8.2.3 partial_sort 25.8.2.4 partial_sort_copy 25.8.2.5 is_sorted 25.8.3 Nth element 25.8.4 Binary search 25.8.4.1 General 25.8.4.2 lower_bound 25.8.4.3 upper_bound 25.8.4.4 equal_range 25.8.4.5 binary_search 25.8.5 Partitions 25.8.6 Merge 25.8.7 Set operations on sorted structures 25.8.7.1 General 25.8.7.2 includes 25.8.7.3 set_union 25.8.7.4 set_intersection 25.8.7.5 set_difference 25.8.7.6 set_symmetric_difference 25.8.8 Heap operations 25.8.8.1 General 25.8.8.2 push_heap 25.8.8.3 pop_heap 25.8.8.4 make_heap 25.8.8.5 sort_heap 25.8.8.6 is_heap 25.8.9 Minimum and maximum 25.8.10 Bounded value 25.8.11 Lexicographical comparison 25.8.12 Three-way comparison algorithms 25.8.13 Permutation generators 25.9 Header synopsis 25.10 Generalized numeric operations 25.10.1 General 25.10.2 Definitions 25.10.3 Accumulate 25.10.4 Reduce 25.10.5 Inner product 25.10.6 Transform reduce 25.10.7 Partial sum 25.10.8 Exclusive scan 25.10.9 Inclusive scan 25.10.10 Transform exclusive scan 25.10.11 Transform inclusive scan 25.10.12 Adjacent difference 25.10.13 Iota 25.10.14 Greatest common divisor 25.10.15 Least common multiple 25.10.16 Midpoint 25.11 Specialized algorithms 25.11.1 General 25.11.2 Special memory concepts 25.11.3 uninitialized_default_construct 25.11.4 uninitialized_value_construct 25.11.5 uninitialized_copy 25.11.6 uninitialized_move 25.11.7 uninitialized_fill 25.11.8 construct_at 25.11.9 destroy 25.12 C library algorithms 26 Numerics library 26.1 General 26.2 Numeric type requirements 26.3 The floating-point environment 26.3.1 Header synopsis 26.3.2 Threads 26.4 Complex numbers 26.4.1 General 26.4.2 Header synopsis 26.4.3 Class template complex 26.4.4 Specializations 26.4.5 Member functions 26.4.6 Member operators 26.4.7 Non-member operations 26.4.8 Value operations 26.4.9 Transcendentals 26.4.10 Additional overloads 26.4.11 Suffixes for complex number literals 26.5 Bit manipulation 26.5.1 General 26.5.2 Header synopsis 26.5.3 Function template bit_cast 26.5.4 Integral powers of 2 26.5.5 Rotating 26.5.6 Counting 26.5.7 Endian 26.6 Random number generation 26.6.1 General 26.6.2 Header synopsis 26.6.3 Requirements 26.6.3.1 General requirements 26.6.3.2 Seed sequence requirements 26.6.3.3 Uniform random bit generator requirements 26.6.3.4 Random number engine requirements 26.6.3.5 Random number engine adaptor requirements 26.6.3.6 Random number distribution requirements 26.6.4 Random number engine class templates 26.6.4.1 General 26.6.4.2 Class template linear_congruential_engine 26.6.4.3 Class template mersenne_twister_engine 26.6.4.4 Class template subtract_with_carry_engine 26.6.5 Random number engine adaptor class templates 26.6.5.1 In general 26.6.5.2 Class template discard_block_engine 26.6.5.3 Class template independent_bits_engine 26.6.5.4 Class template shuffle_order_engine 26.6.6 Engines and engine adaptors with predefined parameters 26.6.7 Class random_device 26.6.8 Utilities 26.6.8.1 Class seed_seq 26.6.8.2 Function template generate_canonical 26.6.9 Random number distribution class templates 26.6.9.1 In general 26.6.9.2 Uniform distributions 26.6.9.2.1 Class template uniform_int_distribution 26.6.9.2.2 Class template uniform_real_distribution 26.6.9.3 Bernoulli distributions 26.6.9.3.1 Class bernoulli_distribution 26.6.9.3.2 Class template binomial_distribution 26.6.9.3.3 Class template geometric_distribution 26.6.9.3.4 Class template negative_binomial_distribution 26.6.9.4 Poisson distributions 26.6.9.4.1 Class template poisson_distribution 26.6.9.4.2 Class template exponential_distribution 26.6.9.4.3 Class template gamma_distribution 26.6.9.4.4 Class template weibull_distribution 26.6.9.4.5 Class template extreme_value_distribution 26.6.9.5 Normal distributions 26.6.9.5.1 Class template normal_distribution 26.6.9.5.2 Class template lognormal_distribution 26.6.9.5.3 Class template chi_squared_distribution 26.6.9.5.4 Class template cauchy_distribution 26.6.9.5.5 Class template fisher_f_distribution 26.6.9.5.6 Class template student_t_distribution 26.6.9.6 Sampling distributions 26.6.9.6.1 Class template discrete_distribution 26.6.9.6.2 Class template piecewise_constant_distribution 26.6.9.6.3 Class template piecewise_linear_distribution 26.6.10 Low-quality random number generation 26.7 Numeric arrays 26.7.1 Header synopsis 26.7.2 Class template valarray 26.7.2.1 Overview 26.7.2.2 Constructors 26.7.2.3 Assignment 26.7.2.4 Element access 26.7.2.5 Subset operations 26.7.2.6 Unary operators 26.7.2.7 Compound assignment 26.7.2.8 Member functions 26.7.3 valarray non-member operations 26.7.3.1 Binary operators 26.7.3.2 Logical operators 26.7.3.3 Transcendentals 26.7.3.4 Specialized algorithms 26.7.4 Class slice 26.7.4.1 Overview 26.7.4.2 Constructors 26.7.4.3 Access functions 26.7.4.4 Operators 26.7.5 Class template slice_array 26.7.5.1 Overview 26.7.5.2 Assignment 26.7.5.3 Compound assignment 26.7.5.4 Fill function 26.7.6 The gslice class 26.7.6.1 Overview 26.7.6.2 Constructors 26.7.6.3 Access functions 26.7.7 Class template gslice_array 26.7.7.1 Overview 26.7.7.2 Assignment 26.7.7.3 Compound assignment 26.7.7.4 Fill function 26.7.8 Class template mask_array 26.7.8.1 Overview 26.7.8.2 Assignment 26.7.8.3 Compound assignment 26.7.8.4 Fill function 26.7.9 Class template indirect_array 26.7.9.1 Overview 26.7.9.2 Assignment 26.7.9.3 Compound assignment 26.7.9.4 Fill function 26.7.10 valarray range access 26.8 Mathematical functions for floating-point types 26.8.1 Header synopsis 26.8.2 Absolute values 26.8.3 Three-dimensional hypotenuse 26.8.4 Linear interpolation 26.8.5 Classification / comparison functions 26.8.6 Mathematical special functions 26.8.6.1 General 26.8.6.2 Associated Laguerre polynomials 26.8.6.3 Associated Legendre functions 26.8.6.4 Beta function 26.8.6.5 Complete elliptic integral of the first kind 26.8.6.6 Complete elliptic integral of the second kind 26.8.6.7 Complete elliptic integral of the third kind 26.8.6.8 Regular modified cylindrical Bessel functions 26.8.6.9 Cylindrical Bessel functions of the first kind 26.8.6.10 Irregular modified cylindrical Bessel functions 26.8.6.11 Cylindrical Neumann functions 26.8.6.12 Incomplete elliptic integral of the first kind 26.8.6.13 Incomplete elliptic integral of the second kind 26.8.6.14 Incomplete elliptic integral of the third kind 26.8.6.15 Exponential integral 26.8.6.16 Hermite polynomials 26.8.6.17 Laguerre polynomials 26.8.6.18 Legendre polynomials 26.8.6.19 Riemann zeta function 26.8.6.20 Spherical Bessel functions of the first kind 26.8.6.21 Spherical associated Legendre functions 26.8.6.22 Spherical Neumann functions 26.9 Numbers 26.9.1 Header synopsis 26.9.2 Mathematical constants 27 Time library 27.1 General 27.2 Header synopsis 27.3 Cpp17Clock requirements 27.4 Time-related traits 27.4.1 treat_as_floating_point 27.4.2 duration_values 27.4.3 Specializations of common_type 27.4.4 Class template is_clock 27.5 Class template duration 27.5.1 General 27.5.2 Constructors 27.5.3 Observer 27.5.4 Arithmetic 27.5.5 Special values 27.5.6 Non-member arithmetic 27.5.7 Comparisons 27.5.8 Conversions 27.5.9 Suffixes for duration literals 27.5.10 Algorithms 27.5.11 I/O 27.6 Class template time_point 27.6.1 General 27.6.2 Constructors 27.6.3 Observer 27.6.4 Arithmetic 27.6.5 Special values 27.6.6 Non-member arithmetic 27.6.7 Comparisons 27.6.8 Conversions 27.7 Clocks 27.7.1 General 27.7.2 Class system_clock 27.7.2.1 Overview 27.7.2.2 Members 27.7.2.3 Non-member functions 27.7.3 Class utc_clock 27.7.3.1 Overview 27.7.3.2 Member functions 27.7.3.3 Non-member functions 27.7.4 Class tai_clock 27.7.4.1 Overview 27.7.4.2 Member functions 27.7.4.3 Non-member functions 27.7.5 Class gps_clock 27.7.5.1 Overview 27.7.5.2 Member functions 27.7.5.3 Non-member functions 27.7.6 Type file_clock 27.7.6.1 Overview 27.7.6.2 Member functions 27.7.6.3 Non-member functions 27.7.7 Class steady_clock 27.7.8 Class high_resolution_clock 27.7.9 Local time 27.7.10 time_point conversions 27.7.10.1 Class template clock_time_conversion 27.7.10.2 Identity conversions 27.7.10.3 Conversions between system_clock and utc_clock 27.7.10.4 Conversions between system_clock and other clocks 27.7.10.5 Conversions between utc_clock and other clocks 27.7.10.6 Function template clock_cast 27.8 The civil calendar 27.8.1 In general 27.8.2 Class last_spec 27.8.3 Class day 27.8.3.1 Overview 27.8.3.2 Member functions 27.8.3.3 Non-member functions 27.8.4 Class month 27.8.4.1 Overview 27.8.4.2 Member functions 27.8.4.3 Non-member functions 27.8.5 Class year 27.8.5.1 Overview 27.8.5.2 Member functions 27.8.5.3 Non-member functions 27.8.6 Class weekday 27.8.6.1 Overview 27.8.6.2 Member functions 27.8.6.3 Non-member functions 27.8.7 Class weekday_indexed 27.8.7.1 Overview 27.8.7.2 Member functions 27.8.7.3 Non-member functions 27.8.8 Class weekday_last 27.8.8.1 Overview 27.8.8.2 Member functions 27.8.8.3 Non-member functions 27.8.9 Class month_day 27.8.9.1 Overview 27.8.9.2 Member functions 27.8.9.3 Non-member functions 27.8.10 Class month_day_last 27.8.11 Class month_weekday 27.8.11.1 Overview 27.8.11.2 Member functions 27.8.11.3 Non-member functions 27.8.12 Class month_weekday_last 27.8.12.1 Overview 27.8.12.2 Member functions 27.8.12.3 Non-member functions 27.8.13 Class year_month 27.8.13.1 Overview 27.8.13.2 Member functions 27.8.13.3 Non-member functions 27.8.14 Class year_month_day 27.8.14.1 Overview 27.8.14.2 Member functions 27.8.14.3 Non-member functions 27.8.15 Class year_month_day_last 27.8.15.1 Overview 27.8.15.2 Member functions 27.8.15.3 Non-member functions 27.8.16 Class year_month_weekday 27.8.16.1 Overview 27.8.16.2 Member functions 27.8.16.3 Non-member functions 27.8.17 Class year_month_weekday_last 27.8.17.1 Overview 27.8.17.2 Member functions 27.8.17.3 Non-member functions 27.8.18 Conventional syntax operators 27.9 Class template hh_mm_ss 27.9.1 Overview 27.9.2 Members 27.9.3 Non-members 27.10 12/24 hours functions 27.11 Time zones 27.11.1 In general 27.11.2 Time zone database 27.11.2.1 Class tzdb 27.11.2.2 Class tzdb_list 27.11.2.3 Time zone database access 27.11.2.4 Remote time zone database support 27.11.3 Exception classes 27.11.3.1 Class nonexistent_local_time 27.11.3.2 Class ambiguous_local_time 27.11.4 Information classes 27.11.4.1 Class sys_info 27.11.4.2 Class local_info 27.11.5 Class time_zone 27.11.5.1 Overview 27.11.5.2 Member functions 27.11.5.3 Non-member functions 27.11.6 Class template zoned_traits 27.11.7 Class template zoned_time 27.11.7.1 Overview 27.11.7.2 Constructors 27.11.7.3 Member functions 27.11.7.4 Non-member functions 27.11.8 Class leap_second 27.11.8.1 Overview 27.11.8.2 Member functions 27.11.8.3 Non-member functions 27.11.9 Class time_zone_link 27.11.9.1 Overview 27.11.9.2 Member functions 27.11.9.3 Non-member functions 27.12 Formatting 27.13 Parsing 27.14 Header synopsis 28 Localization library 28.1 General 28.2 Header synopsis 28.3 Locales 28.3.1 Class locale 28.3.1.1 General 28.3.1.2 Types 28.3.1.2.1 Type locale::category 28.3.1.2.2 Class locale::facet 28.3.1.2.3 Class locale::id 28.3.1.3 Constructors and destructor 28.3.1.4 Members 28.3.1.5 Operators 28.3.1.6 Static members 28.3.2 locale globals 28.3.3 Convenience interfaces 28.3.3.1 Character classification 28.3.3.2 Character conversions 28.4 Standard locale categories 28.4.1 General 28.4.2 The ctype category 28.4.2.1 General 28.4.2.2 Class template ctype 28.4.2.2.1 General 28.4.2.2.2 ctype members 28.4.2.2.3 ctype virtual functions 28.4.2.3 Class template ctype_byname 28.4.2.4 ctype specialization 28.4.2.4.1 General 28.4.2.4.2 Destructor 28.4.2.4.3 Members 28.4.2.4.4 Static members 28.4.2.4.5 Virtual functions 28.4.2.5 Class template codecvt 28.4.2.5.1 General 28.4.2.5.2 Members 28.4.2.5.3 Virtual functions 28.4.2.6 Class template codecvt_byname 28.4.3 The numeric category 28.4.3.1 General 28.4.3.2 Class template num_get 28.4.3.2.1 General 28.4.3.2.2 Members 28.4.3.2.3 Virtual functions 28.4.3.3 Class template num_put 28.4.3.3.1 General 28.4.3.3.2 Members 28.4.3.3.3 Virtual functions 28.4.4 The numeric punctuation facet 28.4.4.1 Class template numpunct 28.4.4.1.1 General 28.4.4.1.2 Members 28.4.4.1.3 Virtual functions 28.4.4.2 Class template numpunct_byname 28.4.5 The collate category 28.4.5.1 Class template collate 28.4.5.1.1 General 28.4.5.1.2 Members 28.4.5.1.3 Virtual functions 28.4.5.2 Class template collate_byname 28.4.6 The time category 28.4.6.1 General 28.4.6.2 Class template time_get 28.4.6.2.1 General 28.4.6.2.2 Members 28.4.6.2.3 Virtual functions 28.4.6.3 Class template time_get_byname 28.4.6.4 Class template time_put 28.4.6.4.1 Members 28.4.6.4.2 Virtual functions 28.4.6.5 Class template time_put_byname 28.4.7 The monetary category 28.4.7.1 General 28.4.7.2 Class template money_get 28.4.7.2.1 Members 28.4.7.2.2 Virtual functions 28.4.7.3 Class template money_put 28.4.7.3.1 Members 28.4.7.3.2 Virtual functions 28.4.7.4 Class template moneypunct 28.4.7.4.1 General 28.4.7.4.2 Members 28.4.7.4.3 Virtual functions 28.4.7.5 Class template moneypunct_byname 28.4.8 The message retrieval category 28.4.8.1 General 28.4.8.2 Class template messages 28.4.8.2.1 General 28.4.8.2.2 Members 28.4.8.2.3 Virtual functions 28.4.8.3 Class template messages_byname 28.5 C library locales 28.5.1 Header synopsis 28.5.2 Data races 29 Input/output library 29.1 General 29.2 Iostreams requirements 29.2.1 Imbue limitations 29.2.2 Positioning type limitations 29.2.3 Thread safety 29.3 Forward declarations 29.3.1 Header synopsis 29.3.2 Overview 29.4 Standard iostream objects 29.4.1 Header synopsis 29.4.2 Overview 29.4.3 Narrow stream objects 29.4.4 Wide stream objects 29.5 Iostreams base classes 29.5.1 Header synopsis 29.5.2 Types 29.5.3 Class ios_base 29.5.3.1 General 29.5.3.2 Types 29.5.3.2.1 Class ios_base::failure 29.5.3.2.2 Type ios_base::fmtflags 29.5.3.2.3 Type ios_base::iostate 29.5.3.2.4 Type ios_base::openmode 29.5.3.2.5 Type ios_base::seekdir 29.5.3.2.6 Class ios_base::Init 29.5.3.3 State functions 29.5.3.4 Functions 29.5.3.5 Static members 29.5.3.6 Storage functions 29.5.3.7 Callbacks 29.5.3.8 Constructors and destructor 29.5.4 Class template fpos 29.5.4.1 Members 29.5.4.2 Requirements 29.5.5 Class template basic_ios 29.5.5.1 Overview 29.5.5.2 Constructors 29.5.5.3 Member functions 29.5.5.4 Flags functions 29.5.6 ios_base manipulators 29.5.6.1 fmtflags manipulators 29.5.6.2 adjustfield manipulators 29.5.6.3 basefield manipulators 29.5.6.4 floatfield manipulators 29.5.7 Error reporting 29.6 Stream buffers 29.6.1 Header synopsis 29.6.2 Stream buffer requirements 29.6.3 Class template basic_streambuf 29.6.3.1 General 29.6.3.2 Constructors 29.6.3.3 Public member functions 29.6.3.3.1 Locales 29.6.3.3.2 Buffer management and positioning 29.6.3.3.3 Get area 29.6.3.3.4 Putback 29.6.3.3.5 Put area 29.6.3.4 Protected member functions 29.6.3.4.1 Assignment 29.6.3.4.2 Get area access 29.6.3.4.3 Put area access 29.6.3.5 Virtual functions 29.6.3.5.1 Locales 29.6.3.5.2 Buffer management and positioning 29.6.3.5.3 Get area 29.6.3.5.4 Putback 29.6.3.5.5 Put area 29.7 Formatting and manipulators 29.7.1 Header synopsis 29.7.2 Header synopsis 29.7.3 Header synopsis 29.7.4 Input streams 29.7.4.1 General 29.7.4.2 Class template basic_istream 29.7.4.2.1 General 29.7.4.2.2 Constructors 29.7.4.2.3 Assignment and swap 29.7.4.2.4 Class basic_istream::sentry 29.7.4.3 Formatted input functions 29.7.4.3.1 Common requirements 29.7.4.3.2 Arithmetic extractors 29.7.4.3.3 basic_istream::operator>> 29.7.4.4 Unformatted input functions 29.7.4.5 Standard basic_istream manipulators 29.7.4.6 Rvalue stream extraction 29.7.4.7 Class template basic_iostream 29.7.4.7.1 General 29.7.4.7.2 Constructors 29.7.4.7.3 Destructor 29.7.4.7.4 Assignment and swap 29.7.5 Output streams 29.7.5.1 General 29.7.5.2 Class template basic_ostream 29.7.5.2.1 General 29.7.5.2.2 Constructors 29.7.5.2.3 Assignment and swap 29.7.5.2.4 Class basic_ostream::sentry 29.7.5.2.5 Seek members 29.7.5.3 Formatted output functions 29.7.5.3.1 Common requirements 29.7.5.3.2 Arithmetic inserters 29.7.5.3.3 basic_ostream::operator<< 29.7.5.3.4 Character inserter function templates 29.7.5.4 Unformatted output functions 29.7.5.5 Standard manipulators 29.7.5.6 Rvalue stream insertion 29.7.6 Standard manipulators 29.7.7 Extended manipulators 29.7.8 Quoted manipulators 29.8 String-based streams 29.8.1 Header synopsis 29.8.2 Class template basic_stringbuf 29.8.2.1 General 29.8.2.2 Constructors 29.8.2.3 Assignment and swap 29.8.2.4 Member functions 29.8.2.5 Overridden virtual functions 29.8.3 Class template basic_istringstream 29.8.3.1 General 29.8.3.2 Constructors 29.8.3.3 Assignment and swap 29.8.3.4 Member functions 29.8.4 Class template basic_ostringstream 29.8.4.1 General 29.8.4.2 Constructors 29.8.4.3 Assignment and swap 29.8.4.4 Member functions 29.8.5 Class template basic_stringstream 29.8.5.1 General 29.8.5.2 Constructors 29.8.5.3 Assignment and swap 29.8.5.4 Member functions 29.9 File-based streams 29.9.1 Header synopsis 29.9.2 Class template basic_filebuf 29.9.2.1 General 29.9.2.2 Constructors 29.9.2.3 Assignment and swap 29.9.2.4 Member functions 29.9.2.5 Overridden virtual functions 29.9.3 Class template basic_ifstream 29.9.3.1 General 29.9.3.2 Constructors 29.9.3.3 Assignment and swap 29.9.3.4 Member functions 29.9.4 Class template basic_ofstream 29.9.4.1 General 29.9.4.2 Constructors 29.9.4.3 Assignment and swap 29.9.4.4 Member functions 29.9.5 Class template basic_fstream 29.9.5.1 General 29.9.5.2 Constructors 29.9.5.3 Assignment and swap 29.9.5.4 Member functions 29.10 Synchronized output streams 29.10.1 Header synopsis 29.10.2 Class template basic_syncbuf 29.10.2.1 Overview 29.10.2.2 Construction and destruction 29.10.2.3 Assignment and swap 29.10.2.4 Member functions 29.10.2.5 Overridden virtual functions 29.10.2.6 Specialized algorithms 29.10.3 Class template basic_osyncstream 29.10.3.1 Overview 29.10.3.2 Construction and destruction 29.10.3.3 Member functions 29.11 File systems 29.11.1 General 29.11.2 Conformance 29.11.2.1 General 29.11.2.2 POSIX conformance 29.11.2.3 Operating system dependent behavior conformance 29.11.2.4 File system race behavior 29.11.3 Requirements 29.11.3.1 General 29.11.3.2 Namespaces and headers 29.11.4 Header synopsis 29.11.5 Error reporting 29.11.6 Class path 29.11.6.1 General 29.11.6.2 Generic pathname format 29.11.6.3 Conversions 29.11.6.3.1 Argument format conversions 29.11.6.3.2 Type and encoding conversions 29.11.6.4 Requirements 29.11.6.5 Members 29.11.6.5.1 Constructors 29.11.6.5.2 Assignments 29.11.6.5.3 Appends 29.11.6.5.4 Concatenation 29.11.6.5.5 Modifiers 29.11.6.5.6 Native format observers 29.11.6.5.7 Generic format observers 29.11.6.5.8 Compare 29.11.6.5.9 Decomposition 29.11.6.5.10 Query 29.11.6.5.11 Generation 29.11.6.6 Iterators 29.11.6.7 Inserter and extractor 29.11.6.8 Non-member functions 29.11.7 Class filesystem_error 29.11.7.1 General 29.11.7.2 Members 29.11.8 Enumerations 29.11.8.1 Enum path::format 29.11.8.2 Enum class file_type 29.11.8.3 Enum class copy_options 29.11.8.4 Enum class perms 29.11.8.5 Enum class perm_options 29.11.8.6 Enum class directory_options 29.11.9 Class file_status 29.11.9.1 General 29.11.9.2 Constructors 29.11.9.3 Observers 29.11.9.4 Modifiers 29.11.10 Class directory_entry 29.11.10.1 General 29.11.10.2 Constructors 29.11.10.3 Modifiers 29.11.10.4 Observers 29.11.11 Class directory_iterator 29.11.11.1 General 29.11.11.2 Members 29.11.11.3 Non-member functions 29.11.12 Class recursive_directory_iterator 29.11.12.1 General 29.11.12.2 Members 29.11.12.3 Non-member functions 29.11.13 Filesystem operation functions 29.11.13.1 General 29.11.13.2 Absolute 29.11.13.3 Canonical 29.11.13.4 Copy 29.11.13.5 Copy file 29.11.13.6 Copy symlink 29.11.13.7 Create directories 29.11.13.8 Create directory 29.11.13.9 Create directory symlink 29.11.13.10 Create hard link 29.11.13.11 Create symlink 29.11.13.12 Current path 29.11.13.13 Equivalent 29.11.13.14 Exists 29.11.13.15 File size 29.11.13.16 Hard link count 29.11.13.17 Is block file 29.11.13.18 Is character file 29.11.13.19 Is directory 29.11.13.20 Is empty 29.11.13.21 Is fifo 29.11.13.22 Is other 29.11.13.23 Is regular file 29.11.13.24 Is socket 29.11.13.25 Is symlink 29.11.13.26 Last write time 29.11.13.27 Permissions 29.11.13.28 Proximate 29.11.13.29 Read symlink 29.11.13.30 Relative 29.11.13.31 Remove 29.11.13.32 Remove all 29.11.13.33 Rename 29.11.13.34 Resize file 29.11.13.35 Space 29.11.13.36 Status 29.11.13.37 Status known 29.11.13.38 Symlink status 29.11.13.39 Temporary directory path 29.11.13.40 Weakly canonical 29.12 C library files 29.12.1 Header synopsis 29.12.2 Header synopsis 30 Regular expressions library 30.1 General 30.2 Definitions 30.3 Requirements 30.4 Header synopsis 30.5 Namespace std::regex_constants 30.5.1 General 30.5.2 Bitmask type syntax_option_type 30.5.3 Bitmask type match_flag_type 30.5.4 Implementation-defined error_type 30.6 Class regex_error 30.7 Class template regex_traits 30.8 Class template basic_regex 30.8.1 General 30.8.2 Constructors 30.8.3 Assignment 30.8.4 Constant operations 30.8.5 Locale 30.8.6 Swap 30.8.7 Non-member functions 30.9 Class template sub_match 30.9.1 General 30.9.2 Members 30.9.3 Non-member operators 30.10 Class template match_results 30.10.1 General 30.10.2 Constructors 30.10.3 State 30.10.4 Size 30.10.5 Element access 30.10.6 Formatting 30.10.7 Allocator 30.10.8 Swap 30.10.9 Non-member functions 30.11 Regular expression algorithms 30.11.1 Exceptions 30.11.2 regex_match 30.11.3 regex_search 30.11.4 regex_replace 30.12 Regular expression iterators 30.12.1 Class template regex_iterator 30.12.1.1 General 30.12.1.2 Constructors 30.12.1.3 Comparisons 30.12.1.4 Indirection 30.12.1.5 Increment 30.12.2 Class template regex_token_iterator 30.12.2.1 General 30.12.2.2 Constructors 30.12.2.3 Comparisons 30.12.2.4 Indirection 30.12.2.5 Increment 30.13 Modified ECMAScript regular expression grammar 31 Atomic operations library 31.1 General 31.2 Header synopsis 31.3 Type aliases 31.4 Order and consistency 31.5 Lock-free property 31.6 Waiting and notifying 31.7 Class template atomic_ref 31.7.1 General 31.7.2 Operations 31.7.3 Specializations for integral types 31.7.4 Specializations for floating-point types 31.7.5 Partial specialization for pointers 31.7.6 Member operators common to integers and pointers to objects 31.8 Class template atomic 31.8.1 General 31.8.2 Operations on atomic types 31.8.3 Specializations for integers 31.8.4 Specializations for floating-point types 31.8.5 Partial specialization for pointers 31.8.6 Member operators common to integers and pointers to objects 31.8.7 Partial specializations for smart pointers 31.8.7.1 General 31.8.7.2 Partial specialization for shared_ptr 31.8.7.3 Partial specialization for weak_ptr 31.9 Non-member functions 31.10 Flag type and operations 31.11 Fences 32 Thread support library 32.1 General 32.2 Requirements 32.2.1 Template parameter names 32.2.2 Exceptions 32.2.3 Native handles 32.2.4 Timing specifications 32.2.5 Requirements for Cpp17Lockable types 32.2.5.1 In general 32.2.5.2 Cpp17BasicLockable requirements 32.2.5.3 Cpp17Lockable requirements 32.2.5.4 Cpp17TimedLockable requirements 32.3 Stop tokens 32.3.1 Introduction 32.3.2 Header synopsis 32.3.3 Class stop_token 32.3.3.1 General 32.3.3.2 Constructors, copy, and assignment 32.3.3.3 Members 32.3.3.4 Non-member functions 32.3.4 Class stop_source 32.3.4.1 General 32.3.4.2 Constructors, copy, and assignment 32.3.4.3 Members 32.3.4.4 Non-member functions 32.3.5 Class template stop_callback 32.3.5.1 General 32.3.5.2 Constructors and destructor 32.4 Threads 32.4.1 General 32.4.2 Header synopsis 32.4.3 Class thread 32.4.3.1 General 32.4.3.2 Class thread::id 32.4.3.3 Constructors 32.4.3.4 Destructor 32.4.3.5 Assignment 32.4.3.6 Members 32.4.3.7 Static members 32.4.3.8 Specialized algorithms 32.4.4 Class jthread 32.4.4.1 General 32.4.4.2 Constructors, move, and assignment 32.4.4.3 Members 32.4.4.4 Stop token handling 32.4.4.5 Specialized algorithms 32.4.4.6 Static members 32.4.5 Namespace this_thread 32.5 Mutual exclusion 32.5.1 General 32.5.2 Header synopsis 32.5.3 Header synopsis 32.5.4 Mutex requirements 32.5.4.1 In general 32.5.4.2 Mutex types 32.5.4.2.1 General 32.5.4.2.2 Class mutex 32.5.4.2.3 Class recursive_mutex 32.5.4.3 Timed mutex types 32.5.4.3.1 General 32.5.4.3.2 Class timed_mutex 32.5.4.3.3 Class recursive_timed_mutex 32.5.4.4 Shared mutex types 32.5.4.4.1 General 32.5.4.4.2 Class shared_mutex 32.5.4.5 Shared timed mutex types 32.5.4.5.1 General 32.5.4.5.2 Class shared_timed_mutex 32.5.5 Locks 32.5.5.1 General 32.5.5.2 Class template lock_guard 32.5.5.3 Class template scoped_lock 32.5.5.4 Class template unique_lock 32.5.5.4.1 General 32.5.5.4.2 Constructors, destructor, and assignment 32.5.5.4.3 Locking 32.5.5.4.4 Modifiers 32.5.5.4.5 Observers 32.5.5.5 Class template shared_lock 32.5.5.5.1 General 32.5.5.5.2 Constructors, destructor, and assignment 32.5.5.5.3 Locking 32.5.5.5.4 Modifiers 32.5.5.5.5 Observers 32.5.6 Generic locking algorithms 32.5.7 Call once 32.5.7.1 Struct once_flag 32.5.7.2 Function call_once 32.6 Condition variables 32.6.1 General 32.6.2 Header synopsis 32.6.3 Non-member functions 32.6.4 Class condition_variable 32.6.5 Class condition_variable_any 32.6.5.1 General 32.6.5.2 Noninterruptible waits 32.6.5.3 Interruptible waits 32.7 Semaphore 32.7.1 General 32.7.2 Header synopsis 32.7.3 Class template counting_semaphore 32.8 Coordination types 32.8.1 General 32.8.2 Latches 32.8.2.1 General 32.8.2.2 Header synopsis 32.8.2.3 Class latch 32.8.3 Barriers 32.8.3.1 General 32.8.3.2 Header synopsis 32.8.3.3 Class template barrier 32.9 Futures 32.9.1 Overview 32.9.2 Header synopsis 32.9.3 Error handling 32.9.4 Class future_error 32.9.5 Shared state 32.9.6 Class template promise 32.9.7 Class template future 32.9.8 Class template shared_future 32.9.9 Function template async 32.9.10 Class template packaged_task 32.9.10.1 General 32.9.10.2 Member functions 32.9.10.3 Globals A Grammar summary A.1 General A.2 Keywords A.3 Lexical conventions A.4 Basics A.5 Expressions A.6 Statements A.7 Declarations A.8 Modules A.9 Classes A.10 Overloading A.11 Templates A.12 Exception handling A.13 Preprocessing directives B Implementation quantities C Compatibility C.1 C++ and ISO C++ 2017 C.1.1 General C.1.2 Clause 5: lexical conventions C.1.3 Clause 6: basics C.1.4 Clause 7: expressions C.1.5 Clause 9: declarations C.1.6 Clause 11: classes C.1.7 Clause 12: overloading C.1.8 Clause 13: templates C.1.9 Clause 14: exception handling C.1.10 Clause 16: library introduction C.1.11 Clause 22: containers library C.1.12 Clause 23: iterators library C.1.13 Clause 25: algorithms library C.1.14 Clause 29: input/output library C.1.15 Annex D: compatibility features C.2 C++ and ISO C++ 2014 C.2.1 General C.2.2 Clause 5: lexical conventions C.2.3 Clause 7: expressions C.2.4 Clause 9: declarations C.2.5 Clause 11: classes C.2.6 Clause 13: templates C.2.7 Clause 14: exception handling C.2.8 Clause 16: library introduction C.2.9 Clause 20: general utilities library C.2.10 Clause 21: strings library C.2.11 Clause 22: containers library C.2.12 Annex D: compatibility features C.3 C++ and ISO C++ 2011 C.3.1 General C.3.2 Clause 5: lexical conventions C.3.3 Clause 6: basics C.3.4 Clause 7: expressions C.3.5 Clause 9: declarations C.3.6 Clause 16: library introduction C.3.7 Clause 29: input/output library C.4 C++ and ISO C++ 2003 C.4.1 General C.4.2 Clause 5: lexical conventions C.4.3 Clause 7: expressions C.4.4 Clause 9: declarations C.4.5 Clause 11: classes C.4.6 Clause 13: templates C.4.7 Clause 16: library introduction C.4.8 Clause 17: language support library C.4.9 Clause 19: diagnostics library C.4.10 Clause 20: general utilities library C.4.11 Clause 21: strings library C.4.12 Clause 22: containers library C.4.13 Clause 25: algorithms library C.4.14 Clause 26: numerics library C.4.15 Clause 29: input/output library C.5 C++ and ISO C C.5.1 General C.5.2 Clause 5: lexical conventions C.5.3 Clause 6: basics C.5.4 Clause 7: expressions C.5.5 Clause 8: statements C.5.6 Clause 9: declarations C.5.7 Clause 11: classes C.5.8 Clause 15: preprocessing directives C.6 C standard library C.6.1 General C.6.2 Modifications to headers C.6.3 Modifications to definitions C.6.3.1 Types char16_t and char32_t C.6.3.2 Type wchar_t C.6.3.3 Header C.6.3.4 Header C.6.3.5 Header C.6.3.6 Header C.6.3.7 Macro NULL C.6.4 Modifications to declarations C.6.5 Modifications to behavior C.6.5.1 General C.6.5.2 Macro offsetof(type, member-designator) C.6.5.3 Memory allocation functions D Compatibility features D.1 General D.2 Arithmetic conversion on enumerations D.3 Implicit capture of *this by reference D.4 Comma operator in subscript expressions D.5 Array comparisons D.6 Deprecated volatile types D.7 Redeclaration of static constexpr data members D.8 Non-local use of TU-local entities D.9 Implicit declaration of copy functions D.10 C headers D.10.1 General D.10.2 Header synopsis D.10.3 Header synopsis D.10.4 Header synopsis D.10.5 Header synopsis D.10.6 Header synopsis D.10.7 Other C headers D.11 Requires paragraph D.12 Relational operators D.13 char* streams D.13.1 Header synopsis D.13.2 Class strstreambuf D.13.2.1 General D.13.2.2 strstreambuf constructors D.13.2.3 Member functions D.13.2.4 strstreambuf overridden virtual functions D.13.3 Class istrstream D.13.3.1 General D.13.3.2 istrstream constructors D.13.3.3 Member functions D.13.4 Class ostrstream D.13.4.1 General D.13.4.2 ostrstream constructors D.13.4.3 Member functions D.13.5 Class strstream D.13.5.1 General D.13.5.2 strstream constructors D.13.5.3 strstream destructor D.13.5.4 strstream operations D.14 Deprecated type traits D.15 Tuple D.16 Variant D.17 Deprecated iterator class template D.18 Deprecated move_iterator access D.19 Deprecated shared_ptr atomic access D.20 Deprecated basic_string capacity D.21 Deprecated standard code conversion facets D.21.1 General D.21.2 Header synopsis D.21.3 Requirements D.22 Deprecated convenience conversion interfaces D.22.1 General D.22.2 Class template wstring_convert D.22.3 Class template wbuffer_convert D.23 Deprecated locale category facets D.24 Deprecated filesystem path factory functions D.25 Deprecated atomic operations D.25.1 General D.25.2 Volatile access D.25.3 Non-member functions D.25.4 Operations on atomic types D.25.5 Flag type and operations Bibliography Cross references Cross references from ISO C++ 2017 Index Symbols Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Index of grammar productions Index of library headers Index of library names Symbols Numbers A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Index of library concepts Index of implementation-defined behavior Blank Page




پست ها تصادفی