CppStd
:
content
From emmtrix Wiki
Jump to navigation
Jump to search
Contents
1
C++11
2
C++14
3
C++17
4
C++20
5
C++23
C++11
C++14
C++17
C++20
C++23
[
edit
]
Contents
List of Tables
[tab]
List of Figures
[fig]
1
General
[intro]
1.1
Scope
[intro.scope]
1.2
Normative references
[intro.refs]
1.3
Terms and definitions
[intro.defs]
1.3.1
argument
[defns.argument]
1.3.2
argument
[defns.argument.macro]
1.3.3
argument
[defns.argument.throw]
1.3.4
argument
[defns.argument.templ]
1.3.5
conditionally-supported
[defns.cond.supp]
1.3.6
diagnostic message
[defns.diagnostic]
1.3.7
dynamic type
[defns.dynamic.type]
1.3.8
dynamic type
[defns.dynamic.type.prvalue]
1.3.9
ill-formed program
[defns.ill.formed]
1.3.10
implementation-defined behavior
[defns.impl.defined]
1.3.11
implementation limits
[defns.impl.limits]
1.3.12
locale-specific behavior
[defns.locale.specific]
1.3.13
multibyte character
[defns.multibyte]
1.3.14
parameter
[defns.parameter]
1.3.15
parameter
[defns.parameter.macro]
1.3.16
parameter
[defns.parameter.templ]
1.3.17
signature
[defns.signature]
1.3.18
signature
[defns.signature.templ]
1.3.19
signature
[defns.signature.spec]
1.3.20
signature
[defns.signature.member]
1.3.21
signature
[defns.signature.member.templ]
1.3.22
signature
[defns.signature.member.spec]
1.3.23
static type
[defns.static.type]
1.3.24
undefined behavior
[defns.undefined]
1.3.25
unspecified behavior
[defns.unspecified]
1.3.26
well-formed program
[defns.well.formed]
1.4
Implementation compliance
[intro.compliance]
1.5
Structure of this International Standard
[intro.structure]
1.6
Syntax notation
[syntax]
1.7
The C++ memory model
[intro.memory]
1.8
The C++ object model
[intro.object]
1.9
Program execution
[intro.execution]
1.10
Multi-threaded executions and data races
[intro.multithread]
1.11
Acknowledgments
[intro.ack]
2
Lexical conventions
[lex]
2.1
Separate translation
[lex.separate]
2.2
Phases of translation
[lex.phases]
2.3
Character sets
[lex.charset]
2.4
Trigraph sequences
[lex.trigraph]
2.5
Preprocessing tokens
[lex.pptoken]
2.6
Alternative tokens
[lex.digraph]
2.7
Tokens
[lex.token]
2.8
Comments
[lex.comment]
2.9
Header names
[lex.header]
2.10
Preprocessing numbers
[lex.ppnumber]
2.11
Identifiers
[lex.name]
2.12
Keywords
[lex.key]
2.13
Operators and punctuators
[lex.operators]
2.14
Literals
[lex.literal]
2.14.1
Kinds of literals
[lex.literal.kinds]
2.14.2
Integer literals
[lex.icon]
2.14.3
Character literals
[lex.ccon]
2.14.4
Floating literals
[lex.fcon]
2.14.5
String literals
[lex.string]
2.14.6
Boolean literals
[lex.bool]
2.14.7
Pointer literals
[lex.nullptr]
2.14.8
User-defined literals
[lex.ext]
3
Basic concepts
[basic]
3.1
Declarations and definitions
[basic.def]
3.2
One definition rule
[basic.def.odr]
3.3
Scope
[basic.scope]
3.3.1
Declarative regions and scopes
[basic.scope.declarative]
3.3.2
Point of declaration
[basic.scope.pdecl]
3.3.3
Block scope
[basic.scope.local]
3.3.4
Function prototype scope
[basic.scope.proto]
3.3.5
Function scope
[basic.funscope]
3.3.6
Namespace scope
[basic.scope.namespace]
3.3.7
Class scope
[basic.scope.class]
3.3.8
Enumeration scope
[basic.scope.enum]
3.3.9
Template parameter scope
[basic.scope.temp]
3.3.10
Name hiding
[basic.scope.hiding]
3.4
Name lookup
[basic.lookup]
3.4.1
Unqualified name lookup
[basic.lookup.unqual]
3.4.2
Argument-dependent name lookup
[basic.lookup.argdep]
3.4.3
Qualified name lookup
[basic.lookup.qual]
3.4.3.1
Class members
[class.qual]
3.4.3.2
Namespace members
[namespace.qual]
3.4.4
Elaborated type specifiers
[basic.lookup.elab]
3.4.5
Class member access
[basic.lookup.classref]
3.4.6
Using-directives and namespace aliases
[basic.lookup.udir]
3.5
Program and linkage
[basic.link]
3.6
Start and termination
[basic.start]
3.6.1
Main function
[basic.start.main]
3.6.2
Initialization of non-local variables
[basic.start.init]
3.6.3
Termination
[basic.start.term]
3.7
Storage duration
[basic.stc]
3.7.1
Static storage duration
[basic.stc.static]
3.7.2
Thread storage duration
[basic.stc.thread]
3.7.3
Automatic storage duration
[basic.stc.auto]
3.7.4
Dynamic storage duration
[basic.stc.dynamic]
3.7.4.1
Allocation functions
[basic.stc.dynamic.allocation]
3.7.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
3.7.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
3.7.5
Duration of subobjects
[basic.stc.inherit]
3.8
Object lifetime
[basic.life]
3.9
Types
[basic.types]
3.9.1
Fundamental types
[basic.fundamental]
3.9.2
Compound types
[basic.compound]
3.9.3
CV-qualifiers
[basic.type.qualifier]
3.10
Lvalues and rvalues
[basic.lval]
3.11
Alignment
[basic.align]
4
Standard conversions
[conv]
4.1
Lvalue-to-rvalue conversion
[conv.lval]
4.2
Array-to-pointer conversion
[conv.array]
4.3
Function-to-pointer conversion
[conv.func]
4.4
Qualification conversions
[conv.qual]
4.5
Integral promotions
[conv.prom]
4.6
Floating point promotion
[conv.fpprom]
4.7
Integral conversions
[conv.integral]
4.8
Floating point conversions
[conv.double]
4.9
Floating-integral conversions
[conv.fpint]
4.10
Pointer conversions
[conv.ptr]
4.11
Pointer to member conversions
[conv.mem]
4.12
Boolean conversions
[conv.bool]
4.13
Integer conversion rank
[conv.rank]
5
Expressions
[expr]
5.1
Primary expressions
[expr.prim]
5.1.1
General
[expr.prim.general]
5.1.2
Lambda expressions
[expr.prim.lambda]
5.2
Postfix expressions
[expr.post]
5.2.1
Subscripting
[expr.sub]
5.2.2
Function call
[expr.call]
5.2.3
Explicit type conversion (functional notation)
[expr.type.conv]
5.2.4
Pseudo destructor call
[expr.pseudo]
5.2.5
Class member access
[expr.ref]
5.2.6
Increment and decrement
[expr.post.incr]
5.2.7
Dynamic cast
[expr.dynamic.cast]
5.2.8
Type identification
[expr.typeid]
5.2.9
Static cast
[expr.static.cast]
5.2.10
Reinterpret cast
[expr.reinterpret.cast]
5.2.11
Const cast
[expr.const.cast]
5.3
Unary expressions
[expr.unary]
5.3.1
Unary operators
[expr.unary.op]
5.3.2
Increment and decrement
[expr.pre.incr]
5.3.3
Sizeof
[expr.sizeof]
5.3.4
New
[expr.new]
5.3.5
Delete
[expr.delete]
5.3.6
Alignof
[expr.alignof]
5.3.7
noexcept operator
[expr.unary.noexcept]
5.4
Explicit type conversion (cast notation)
[expr.cast]
5.5
Pointer-to-member operators
[expr.mptr.oper]
5.6
Multiplicative operators
[expr.mul]
5.7
Additive operators
[expr.add]
5.8
Shift operators
[expr.shift]
5.9
Relational operators
[expr.rel]
5.10
Equality operators
[expr.eq]
5.11
Bitwise AND operator
[expr.bit.and]
5.12
Bitwise exclusive OR operator
[expr.xor]
5.13
Bitwise inclusive OR operator
[expr.or]
5.14
Logical AND operator
[expr.log.and]
5.15
Logical OR operator
[expr.log.or]
5.16
Conditional operator
[expr.cond]
5.17
Assignment and compound assignment operators
[expr.ass]
5.18
Comma operator
[expr.comma]
5.19
Constant expressions
[expr.const]
6
Statements
[stmt.stmt]
6.1
Labeled statement
[stmt.label]
6.2
Expression statement
[stmt.expr]
6.3
Compound statement or block
[stmt.block]
6.4
Selection statements
[stmt.select]
6.4.1
The if statement
[stmt.if]
6.4.2
The switch statement
[stmt.switch]
6.5
Iteration statements
[stmt.iter]
6.5.1
The while statement
[stmt.while]
6.5.2
The do statement
[stmt.do]
6.5.3
The for statement
[stmt.for]
6.5.4
The range-based for statement
[stmt.ranged]
6.6
Jump statements
[stmt.jump]
6.6.1
The break statement
[stmt.break]
6.6.2
The continue statement
[stmt.cont]
6.6.3
The return statement
[stmt.return]
6.6.4
The goto statement
[stmt.goto]
6.7
Declaration statement
[stmt.dcl]
6.8
Ambiguity resolution
[stmt.ambig]
7
Declarations
[dcl.dcl]
7.1
Specifiers
[dcl.spec]
7.1.1
Storage class specifiers
[dcl.stc]
7.1.2
Function specifiers
[dcl.fct.spec]
7.1.3
The typedef specifier
[dcl.typedef]
7.1.4
The friend specifier
[dcl.friend]
7.1.5
The constexpr specifier
[dcl.constexpr]
7.1.6
Type specifiers
[dcl.type]
7.1.6.1
The cv-qualifiers
[dcl.type.cv]
7.1.6.2
Simple type specifiers
[dcl.type.simple]
7.1.6.3
Elaborated type specifiers
[dcl.type.elab]
7.1.6.4
auto specifier
[dcl.spec.auto]
7.2
Enumeration declarations
[dcl.enum]
7.3
Namespaces
[basic.namespace]
7.3.1
Namespace definition
[namespace.def]
7.3.1.1
Unnamed namespaces
[namespace.unnamed]
7.3.1.2
Namespace member definitions
[namespace.memdef]
7.3.2
Namespace alias
[namespace.alias]
7.3.3
The using declaration
[namespace.udecl]
7.3.4
Using directive
[namespace.udir]
7.4
The asm declaration
[dcl.asm]
7.5
Linkage specifications
[dcl.link]
7.6
Attributes
[dcl.attr]
7.6.1
Attribute syntax and semantics
[dcl.attr.grammar]
7.6.2
Alignment specifier
[dcl.align]
7.6.3
Noreturn attribute
[dcl.attr.noreturn]
7.6.4
Carries dependency attribute
[dcl.attr.depend]
8
Declarators
[dcl.decl]
8.1
Type names
[dcl.name]
8.2
Ambiguity resolution
[dcl.ambig.res]
8.3
Meaning of declarators
[dcl.meaning]
8.3.1
Pointers
[dcl.ptr]
8.3.2
References
[dcl.ref]
8.3.3
Pointers to members
[dcl.mptr]
8.3.4
Arrays
[dcl.array]
8.3.5
Functions
[dcl.fct]
8.3.6
Default arguments
[dcl.fct.default]
8.4
Function definitions
[dcl.fct.def]
8.4.1
In general
[dcl.fct.def.general]
8.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
8.4.3
Deleted definitions
[dcl.fct.def.delete]
8.5
Initializers
[dcl.init]
8.5.1
Aggregates
[dcl.init.aggr]
8.5.2
Character arrays
[dcl.init.string]
8.5.3
References
[dcl.init.ref]
8.5.4
List-initialization
[dcl.init.list]
9
Classes
[class]
9.1
Class names
[class.name]
9.2
Class members
[class.mem]
9.3
Member functions
[class.mfct]
9.3.1
Nonstatic member functions
[class.mfct.non-static]
9.3.2
The this pointer
[class.this]
9.4
Static members
[class.static]
9.4.1
Static member functions
[class.static.mfct]
9.4.2
Static data members
[class.static.data]
9.5
Unions
[class.union]
9.6
Bit-fields
[class.bit]
9.7
Nested class declarations
[class.nest]
9.8
Local class declarations
[class.local]
9.9
Nested type names
[class.nested.type]
10
Derived classes
[class.derived]
10.1
Multiple base classes
[class.mi]
10.2
Member name lookup
[class.member.lookup]
10.3
Virtual functions
[class.virtual]
10.4
Abstract classes
[class.abstract]
11
Member access control
[class.access]
11.1
Access specifiers
[class.access.spec]
11.2
Accessibility of base classes and base class members
[class.access.base]
11.3
Friends
[class.friend]
11.4
Protected member access
[class.protected]
11.5
Access to virtual functions
[class.access.virt]
11.6
Multiple access
[class.paths]
11.7
Nested classes
[class.access.nest]
12
Special member functions
[special]
12.1
Constructors
[class.ctor]
12.2
Temporary objects
[class.temporary]
12.3
Conversions
[class.conv]
12.3.1
Conversion by constructor
[class.conv.ctor]
12.3.2
Conversion functions
[class.conv.fct]
12.4
Destructors
[class.dtor]
12.5
Free store
[class.free]
12.6
Initialization
[class.init]
12.6.1
Explicit initialization
[class.expl.init]
12.6.2
Initializing bases and members
[class.base.init]
12.7
Construction and destruction
[class.cdtor]
12.8
Copying and moving class objects
[class.copy]
12.9
Inheriting constructors
[class.inhctor]
13
Overloading
[over]
13.1
Overloadable declarations
[over.load]
13.2
Declaration matching
[over.dcl]
13.3
Overload resolution
[over.match]
13.3.1
Candidate functions and argument lists
[over.match.funcs]
13.3.1.1
Function call syntax
[over.match.call]
13.3.1.1.1
Call to named function
[over.call.func]
13.3.1.1.2
Call to object of class type
[over.call.object]
13.3.1.2
Operators in expressions
[over.match.oper]
13.3.1.3
Initialization by constructor
[over.match.ctor]
13.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
13.3.1.5
Initialization by conversion function
[over.match.conv]
13.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
13.3.1.7
Initialization by list-initialization
[over.match.list]
13.3.2
Viable functions
[over.match.viable]
13.3.3
Best viable function
[over.match.best]
13.3.3.1
Implicit conversion sequences
[over.best.ics]
13.3.3.1.1
Standard conversion sequences
[over.ics.scs]
13.3.3.1.2
User-defined conversion sequences
[over.ics.user]
13.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
13.3.3.1.4
Reference binding
[over.ics.ref]
13.3.3.1.5
List-initialization sequence
[over.ics.list]
13.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
13.4
Address of overloaded function
[over.over]
13.5
Overloaded operators
[over.oper]
13.5.1
Unary operators
[over.unary]
13.5.2
Binary operators
[over.binary]
13.5.3
Assignment
[over.ass]
13.5.4
Function call
[over.call]
13.5.5
Subscripting
[over.sub]
13.5.6
Class member access
[over.ref]
13.5.7
Increment and decrement
[over.inc]
13.5.8
User-defined literals
[over.literal]
13.6
Built-in operators
[over.built]
14
Templates
[temp]
14.1
Template parameters
[temp.param]
14.2
Names of template specializations
[temp.names]
14.3
Template arguments
[temp.arg]
14.3.1
Template type arguments
[temp.arg.type]
14.3.2
Template non-type arguments
[temp.arg.nontype]
14.3.3
Template template arguments
[temp.arg.template]
14.4
Type equivalence
[temp.type]
14.5
Template declarations
[temp.decls]
14.5.1
Class templates
[temp.class]
14.5.1.1
Member functions of class templates
[temp.mem.func]
14.5.1.2
Member classes of class templates
[temp.mem.class]
14.5.1.3
Static data members of class templates
[temp.static]
14.5.1.4
Enumeration members of class templates
[temp.mem.enum]
14.5.2
Member templates
[temp.mem]
14.5.3
Variadic templates
[temp.variadic]
14.5.4
Friends
[temp.friend]
14.5.5
Class template partial specializations
[temp.class.spec]
14.5.5.1
Matching of class template partial specializations
[temp.class.spec.match]
14.5.5.2
Partial ordering of class template specializations
[temp.class.order]
14.5.5.3
Members of class template specializations
[temp.class.spec.mfunc]
14.5.6
Function templates
[temp.fct]
14.5.6.1
Function template overloading
[temp.over.link]
14.5.6.2
Partial ordering of function templates
[temp.func.order]
14.5.7
Alias templates
[temp.alias]
14.6
Name resolution
[temp.res]
14.6.1
Locally declared names
[temp.local]
14.6.2
Dependent names
[temp.dep]
14.6.2.1
Dependent types
[temp.dep.type]
14.6.2.2
Type-dependent expressions
[temp.dep.expr]
14.6.2.3
Value-dependent expressions
[temp.dep.constexpr]
14.6.2.4
Dependent template arguments
[temp.dep.temp]
14.6.3
Non-dependent names
[temp.nondep]
14.6.4
Dependent name resolution
[temp.dep.res]
14.6.4.1
Point of instantiation
[temp.point]
14.6.4.2
Candidate functions
[temp.dep.candidate]
14.6.5
Friend names declared within a class template
[temp.inject]
14.7
Template instantiation and specialization
[temp.spec]
14.7.1
Implicit instantiation
[temp.inst]
14.7.2
Explicit instantiation
[temp.explicit]
14.7.3
Explicit specialization
[temp.expl.spec]
14.8
Function template specializations
[temp.fct.spec]
14.8.1
Explicit template argument specification
[temp.arg.explicit]
14.8.2
Template argument deduction
[temp.deduct]
14.8.2.1
Deducing template arguments from a function call
[temp.deduct.call]
14.8.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
14.8.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
14.8.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
14.8.2.5
Deducing template arguments from a type
[temp.deduct.type]
14.8.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
14.8.3
Overload resolution
[temp.over]
15
Exception handling
[except]
15.1
Throwing an exception
[except.throw]
15.2
Constructors and destructors
[except.ctor]
15.3
Handling an exception
[except.handle]
15.4
Exception specifications
[except.spec]
15.5
Special functions
[except.special]
15.5.1
The std::terminate() function
[except.terminate]
15.5.2
The std::unexpected() function
[except.unexpected]
15.5.3
The std::uncaught_exception() function
[except.uncaught]
16
Preprocessing directives
[cpp]
16.1
Conditional inclusion
[cpp.cond]
16.2
Source file inclusion
[cpp.include]
16.3
Macro replacement
[cpp.replace]
16.3.1
Argument substitution
[cpp.subst]
16.3.2
The # operator
[cpp.stringize]
16.3.3
The ## operator
[cpp.concat]
16.3.4
Rescanning and further replacement
[cpp.rescan]
16.3.5
Scope of macro definitions
[cpp.scope]
16.4
Line control
[cpp.line]
16.5
Error directive
[cpp.error]
16.6
Pragma directive
[cpp.pragma]
16.7
Null directive
[cpp.null]
16.8
Predefined macro names
[cpp.predefined]
16.9
Pragma operator
[cpp.pragma.op]
17
Library introduction
[library]
17.1
General
[library.general]
17.2
The C standard library
[library.c]
17.3
Definitions
[definitions]
17.3.1
arbitrary-positional stream
[defns.arbitrary.stream]
17.3.2
block
[defns.block]
17.3.3
blocked thread
[defns.blocked]
17.3.4
character
[defns.character]
17.3.5
character container type
[defns.character.container]
17.3.6
comparison function
[defns.comparison]
17.3.7
component
[defns.component]
17.3.8
deadlock
[defns.deadlock]
17.3.9
default behavior
[defns.default.behavior.impl]
17.3.10
default behavior
[defns.default.behavior.func]
17.3.11
handler function
[defns.handler]
17.3.12
iostream class templates
[defns.iostream.templates]
17.3.13
modifier function
[defns.modifier]
17.3.14
move construction
[defns.move.constr]
17.3.15
move assignment
[defns.move.assign]
17.3.16
object state
[defns.obj.state]
17.3.17
NTCTS
[defns.ntcts]
17.3.18
observer function
[defns.observer]
17.3.19
replacement function
[defns.replacement]
17.3.20
repositional stream
[defns.repositional.stream]
17.3.21
required behavior
[defns.required.behavior]
17.3.22
reserved function
[defns.reserved.function]
17.3.23
stable algorithm
[defns.stable]
17.3.24
traits class
[defns.traits]
17.3.25
unblock
[defns.unblock]
17.3.26
valid but unspecified state
[defns.valid]
17.4
Additional definitions
[defns.additional]
17.5
Method of description (Informative)
[description]
17.5.1
Structure of each clause
[structure]
17.5.1.1
Elements
[structure.elements]
17.5.1.2
Summary
[structure.summary]
17.5.1.3
Requirements
[structure.requirements]
17.5.1.4
Detailed specifications
[structure.specifications]
17.5.1.5
C library
[structure.see.also]
17.5.2
Other conventions
[conventions]
17.5.2.1
Type descriptions
[type.descriptions]
17.5.2.1.1
General
[type.descriptions.general]
17.5.2.1.2
Enumerated types
[enumerated.types]
17.5.2.1.3
Bitmask types
[bitmask.types]
17.5.2.1.4
Character sequences
[character.seq]
17.5.2.1.4.1
Byte strings
[byte.strings]
17.5.2.1.4.2
Multibyte strings
[multibyte.strings]
17.5.2.2
Functions within classes
[functions.within.classes]
17.5.2.3
Private members
[objects.within.classes]
17.6
Library-wide requirements
[requirements]
17.6.1
Library contents and organization
[organization]
17.6.1.1
Library contents
[contents]
17.6.1.2
Headers
[headers]
17.6.1.3
Freestanding implementations
[compliance]
17.6.2
Using the library
[using]
17.6.2.1
Overview
[using.overview]
17.6.2.2
Headers
[using.headers]
17.6.2.3
Linkage
[using.linkage]
17.6.3
Requirements on types and expressions
[utility.requirements]
17.6.3.1
Template argument requirements
[utility.arg.requirements]
17.6.3.2
Swappable requirements
[swappable.requirements]
17.6.3.3
NullablePointer requirements
[nullablepointer.requirements]
17.6.3.4
Hash requirements
[hash.requirements]
17.6.3.5
Allocator requirements
[allocator.requirements]
17.6.4
Constraints on programs
[constraints]
17.6.4.1
Overview
[constraints.overview]
17.6.4.2
Namespace use
[namespace.constraints]
17.6.4.2.1
Namespace std
[namespace.std]
17.6.4.2.2
Namespace posix
[namespace.posix]
17.6.4.3
Reserved names
[reserved.names]
17.6.4.3.1
Macro names
[macro.names]
17.6.4.3.2
Global names
[global.names]
17.6.4.3.3
External linkage
[extern.names]
17.6.4.3.4
Types
[extern.types]
17.6.4.3.5
User-defined literal suffixes
[usrlit.suffix]
17.6.4.4
Headers
[alt.headers]
17.6.4.5
Derived classes
[derived.classes]
17.6.4.6
Replacement functions
[replacement.functions]
17.6.4.7
Handler functions
[handler.functions]
17.6.4.8
Other functions
[res.on.functions]
17.6.4.9
Function arguments
[res.on.arguments]
17.6.4.10
Shared objects and the library
[res.on.objects]
17.6.4.11
Requires paragraph
[res.on.required]
17.6.5
Conforming implementations
[conforming]
17.6.5.1
Overview
[conforming.overview]
17.6.5.2
Headers
[res.on.headers]
17.6.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
17.6.5.4
Global and non-member functions
[global.functions]
17.6.5.5
Member functions
[member.functions]
17.6.5.6
constexpr functions and constructors
[constexpr.functions]
17.6.5.7
Requirements for stable algorithms
[algorithm.stable]
17.6.5.8
Reentrancy
[reentrancy]
17.6.5.9
Data race avoidance
[res.on.data.races]
17.6.5.10
Protection within classes
[protection.within.classes]
17.6.5.11
Derived classes
[derivation]
17.6.5.12
Restrictions on exception handling
[res.on.exception.handling]
17.6.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
17.6.5.14
Value of error codes
[value.error.codes]
17.6.5.15
Moved-from state of library types
[lib.types.movedfrom]
18
Language support library
[language.support]
18.1
General
[support.general]
18.2
Types
[support.types]
18.3
Implementation properties
[support.limits]
18.3.1
In general
[support.limits.general]
18.3.2
Numeric limits
[limits]
18.3.2.1
Class template numeric_limits
[limits.numeric]
18.3.2.2
Header <limits> synopsis
[limits.syn]
18.3.2.3
Class template numeric_limits
[numeric.limits]
18.3.2.4
numeric_limits members
[numeric.limits.members]
18.3.2.5
Type float_round_style
[round.style]
18.3.2.6
Type float_denorm_style
[denorm.style]
18.3.2.7
numeric_limits specializations
[numeric.special]
18.3.3
C library
[c.limits]
18.4
Integer types
[cstdint]
18.4.1
Header <cstdint> synopsis
[cstdint.syn]
18.5
Start and termination
[support.start.term]
18.6
Dynamic memory management
[support.dynamic]
18.6.1
Storage allocation and deallocation
[new.delete]
18.6.1.1
Single-object forms
[new.delete.single]
18.6.1.2
Array forms
[new.delete.array]
18.6.1.3
Placement forms
[new.delete.placement]
18.6.1.4
Data races
[new.delete.dataraces]
18.6.2
Storage allocation errors
[alloc.errors]
18.6.2.1
Class bad_alloc
[bad.alloc]
18.6.2.2
Class bad_array_new_length
[new.badlength]
18.6.2.3
Type new_handler
[new.handler]
18.6.2.4
set_new_handler
[set.new.handler]
18.6.2.5
get_new_handler
[get.new.handler]
18.7
Type identification
[support.rtti]
18.7.1
Class type_info
[type.info]
18.7.2
Class bad_cast
[bad.cast]
18.7.3
Class bad_typeid
[bad.typeid]
18.8
Exception handling
[support.exception]
18.8.1
Class exception
[exception]
18.8.2
Class bad_exception
[bad.exception]
18.8.3
Abnormal termination
[exception.terminate]
18.8.3.1
Type terminate_handler
[terminate.handler]
18.8.3.2
set_terminate
[set.terminate]
18.8.3.3
get_terminate
[get.terminate]
18.8.3.4
terminate
[terminate]
18.8.4
uncaught_exception
[uncaught]
18.8.5
Exception propagation
[propagation]
18.8.6
nested_exception
[except.nested]
18.9
Initializer lists
[support.initlist]
18.9.1
Initializer list constructors
[support.initlist.cons]
18.9.2
Initializer list access
[support.initlist.access]
18.9.3
Initializer list range access
[support.initlist.range]
18.10
Other runtime support
[support.runtime]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
Class logic_error
[logic.error]
19.2.2
Class domain_error
[domain.error]
19.2.3
Class invalid_argument
[invalid.argument]
19.2.4
Class length_error
[length.error]
19.2.5
Class out_of_range
[out.of.range]
19.2.6
Class runtime_error
[runtime.error]
19.2.7
Class range_error
[range.error]
19.2.8
Class overflow_error
[overflow.error]
19.2.9
Class underflow_error
[underflow.error]
19.3
Assertions
[assertions]
19.4
Error numbers
[errno]
19.5
System error support
[syserr]
19.5.1
Class error_category
[syserr.errcat]
19.5.1.1
Class error_category overview
[syserr.errcat.overview]
19.5.1.2
Class error_category virtual members
[syserr.errcat.virtuals]
19.5.1.3
Class error_category non-virtual members
[syserr.errcat.nonvirtuals]
19.5.1.4
Program defined classes derived from error_category
[syserr.errcat.derived]
19.5.1.5
Error category objects
[syserr.errcat.objects]
19.5.2
Class error_code
[syserr.errcode]
19.5.2.1
Class error_code overview
[syserr.errcode.overview]
19.5.2.2
Class error_code constructors
[syserr.errcode.constructors]
19.5.2.3
Class error_code modifiers
[syserr.errcode.modifiers]
19.5.2.4
Class error_code observers
[syserr.errcode.observers]
19.5.2.5
Class error_code non-member functions
[syserr.errcode.nonmembers]
19.5.3
Class error_condition
[syserr.errcondition]
19.5.3.1
Class error_condition overview
[syserr.errcondition.overview]
19.5.3.2
Class error_condition constructors
[syserr.errcondition.constructors]
19.5.3.3
Class error_condition modifiers
[syserr.errcondition.modifiers]
19.5.3.4
Class error_condition observers
[syserr.errcondition.observers]
19.5.3.5
Class error_condition non-member functions
[syserr.errcondition.nonmembers]
19.5.4
Comparison operators
[syserr.compare]
19.5.5
System error hash support
[syserr.hash]
19.5.6
Class system_error
[syserr.syserr]
19.5.6.1
Class system_error overview
[syserr.syserr.overview]
19.5.6.2
Class system_error members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Operators
[operators]
20.2.2
swap
[utility.swap]
20.2.3
forward/move helpers
[forward]
20.2.4
Function template declval
[declval]
20.3
Pairs
[pairs]
20.3.1
In general
[pairs.general]
20.3.2
Class template pair
[pairs.pair]
20.3.3
Specialized algorithms
[pairs.spec]
20.3.4
Tuple-like access to pair
[pair.astuple]
20.3.5
Piecewise construction
[pair.piecewise]
20.4
Tuples
[tuple]
20.4.1
In general
[tuple.general]
20.4.2
Class template tuple
[tuple.tuple]
20.4.2.1
Construction
[tuple.cnstr]
20.4.2.2
Assignment
[tuple.assign]
20.4.2.3
swap
[tuple.swap]
20.4.2.4
Tuple creation functions
[tuple.creation]
20.4.2.5
Tuple helper classes
[tuple.helper]
20.4.2.6
Element access
[tuple.elem]
20.4.2.7
Relational operators
[tuple.rel]
20.4.2.8
Tuple traits
[tuple.traits]
20.4.2.9
Tuple specialized algorithms
[tuple.special]
20.5
Class template bitset
[template.bitset]
20.5.1
bitset constructors
[bitset.cons]
20.5.2
bitset members
[bitset.members]
20.5.3
bitset hash support
[bitset.hash]
20.5.4
bitset operators
[bitset.operators]
20.6
Memory
[memory]
20.6.1
In general
[memory.general]
20.6.2
Header <memory> synopsis
[memory.syn]
20.6.3
Pointer traits
[pointer.traits]
20.6.3.1
Pointer traits member types
[pointer.traits.types]
20.6.3.2
Pointer traits member functions
[pointer.traits.functions]
20.6.4
Pointer safety
[util.dynamic.safety]
20.6.5
Align
[ptr.align]
20.6.6
Allocator argument tag
[allocator.tag]
20.6.7
uses_allocator
[allocator.uses]
20.6.7.1
uses_allocator trait
[allocator.uses.trait]
20.6.7.2
uses-allocator construction
[allocator.uses.construction]
20.6.8
Allocator traits
[allocator.traits]
20.6.8.1
Allocator traits member types
[allocator.traits.types]
20.6.8.2
Allocator traits static member functions
[allocator.traits.members]
20.6.9
The default allocator
[default.allocator]
20.6.9.1
allocator members
[allocator.members]
20.6.9.2
allocator globals
[allocator.globals]
20.6.10
Raw storage iterator
[storage.iterator]
20.6.11
Temporary buffers
[temporary.buffer]
20.6.12
Specialized algorithms
[specialized.algorithms]
20.6.12.1
addressof
[specialized.addressof]
20.6.12.2
uninitialized_copy
[uninitialized.copy]
20.6.12.3
uninitialized_fill
[uninitialized.fill]
20.6.12.4
uninitialized_fill_n
[uninitialized.fill.n]
20.6.13
C library
[c.malloc]
20.7
Smart pointers
[smartptr]
20.7.1
Class template unique_ptr
[unique.ptr]
20.7.1.1
Default deleters
[unique.ptr.dltr]
20.7.1.1.1
In general
[unique.ptr.dltr.general]
20.7.1.1.2
default_delete
[unique.ptr.dltr.dflt]
20.7.1.1.3
default_delete<T[]>
[unique.ptr.dltr.dflt1]
20.7.1.2
unique_ptr for single objects
[unique.ptr.single]
20.7.1.2.1
unique_ptr constructors
[unique.ptr.single.ctor]
20.7.1.2.2
unique_ptr destructor
[unique.ptr.single.dtor]
20.7.1.2.3
unique_ptr assignment
[unique.ptr.single.asgn]
20.7.1.2.4
unique_ptr observers
[unique.ptr.single.observers]
20.7.1.2.5
unique_ptr modifiers
[unique.ptr.single.modifiers]
20.7.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.7.1.3.1
unique_ptr constructors
[unique.ptr.runtime.ctor]
20.7.1.3.2
unique_ptr observers
[unique.ptr.runtime.observers]
20.7.1.3.3
unique_ptr modifiers
[unique.ptr.runtime.modifiers]
20.7.1.4
unique_ptr specialized algorithms
[unique.ptr.special]
20.7.2
Shared-ownership pointers
[util.smartptr]
20.7.2.1
Class bad_weak_ptr
[util.smartptr.weakptr]
20.7.2.2
Class template shared_ptr
[util.smartptr.shared]
20.7.2.2.1
shared_ptr constructors
[util.smartptr.shared.const]
20.7.2.2.2
shared_ptr destructor
[util.smartptr.shared.dest]
20.7.2.2.3
shared_ptr assignment
[util.smartptr.shared.assign]
20.7.2.2.4
shared_ptr modifiers
[util.smartptr.shared.mod]
20.7.2.2.5
shared_ptr observers
[util.smartptr.shared.obs]
20.7.2.2.6
shared_ptr creation
[util.smartptr.shared.create]
20.7.2.2.7
shared_ptr comparison
[util.smartptr.shared.cmp]
20.7.2.2.8
shared_ptr specialized algorithms
[util.smartptr.shared.spec]
20.7.2.2.9
shared_ptr casts
[util.smartptr.shared.cast]
20.7.2.2.10
get_deleter
[util.smartptr.getdeleter]
20.7.2.2.11
shared_ptr I/O
[util.smartptr.shared.io]
20.7.2.3
Class template weak_ptr
[util.smartptr.weak]
20.7.2.3.1
weak_ptr constructors
[util.smartptr.weak.const]
20.7.2.3.2
weak_ptr destructor
[util.smartptr.weak.dest]
20.7.2.3.3
weak_ptr assignment
[util.smartptr.weak.assign]
20.7.2.3.4
weak_ptr modifiers
[util.smartptr.weak.mod]
20.7.2.3.5
weak_ptr observers
[util.smartptr.weak.obs]
20.7.2.3.6
weak_ptr specialized algorithms
[util.smartptr.weak.spec]
20.7.2.3.7
Class template owner_less
[util.smartptr.ownerless]
20.7.2.4
Class template enable_shared_from_this
[util.smartptr.enab]
20.7.2.5
shared_ptr atomic access
[util.smartptr.shared.atomic]
20.7.2.6
Smart pointer hash support
[util.smartptr.hash]
20.8
Function objects
[function.objects]
20.8.1
Definitions
[func.def]
20.8.2
Requirements
[func.require]
20.8.3
Class template reference_wrapper
[refwrap]
20.8.3.1
reference_wrapper construct/copy/destroy
[refwrap.const]
20.8.3.2
reference_wrapper assignment
[refwrap.assign]
20.8.3.3
reference_wrapper access
[refwrap.access]
20.8.3.4
reference_wrapper invocation
[refwrap.invoke]
20.8.3.5
reference_wrapper helper functions
[refwrap.helpers]
20.8.4
Arithmetic operations
[arithmetic.operations]
20.8.5
Comparisons
[comparisons]
20.8.6
Logical operations
[logical.operations]
20.8.7
Bitwise operations
[bitwise.operations]
20.8.8
Negators
[negators]
20.8.9
Function template bind
[bind]
20.8.9.1
Function object binders
[func.bind]
20.8.9.1.1
Class template is_bind_expression
[func.bind.isbind]
20.8.9.1.2
Function template bind
[func.bind.bind]
20.8.9.1.3
Placeholders
[func.bind.place]
20.8.10
Function template mem_fn
[func.memfn]
20.8.11
Polymorphic function wrappers
[func.wrap]
20.8.11.1
Class bad_function_call
[func.wrap.badcall]
20.8.11.1.1
bad_function_call constructor
[func.wrap.badcall.const]
20.8.11.2
Class template function
[func.wrap.func]
20.8.11.2.1
function construct/copy/destroy
[func.wrap.func.con]
20.8.11.2.2
function modifiers
[func.wrap.func.mod]
20.8.11.2.3
function capacity
[func.wrap.func.cap]
20.8.11.2.4
function invocation
[func.wrap.func.inv]
20.8.11.2.5
function target access
[func.wrap.func.targ]
20.8.11.2.6
null pointer comparison operators
[func.wrap.func.nullptr]
20.8.11.2.7
specialized algorithms
[func.wrap.func.alg]
20.8.12
Class template hash
[unord.hash]
20.9
Metaprogramming and type traits
[meta]
20.9.1
Requirements
[meta.rqmts]
20.9.2
Header <type_traits> synopsis
[meta.type.synop]
20.9.3
Helper classes
[meta.help]
20.9.4
Unary type traits
[meta.unary]
20.9.4.1
Primary type categories
[meta.unary.cat]
20.9.4.2
Composite type traits
[meta.unary.comp]
20.9.4.3
Type properties
[meta.unary.prop]
20.9.5
Type property queries
[meta.unary.prop.query]
20.9.6
Relationships between types
[meta.rel]
20.9.7
Transformations between types
[meta.trans]
20.9.7.1
Const-volatile modifications
[meta.trans.cv]
20.9.7.2
Reference modifications
[meta.trans.ref]
20.9.7.3
Sign modifications
[meta.trans.sign]
20.9.7.4
Array modifications
[meta.trans.arr]
20.9.7.5
Pointer modifications
[meta.trans.ptr]
20.9.7.6
Other transformations
[meta.trans.other]
20.10
Compile-time rational arithmetic
[ratio]
20.10.1
In general
[ratio.general]
20.10.2
Header <ratio> synopsis
[ratio.syn]
20.10.3
Class template ratio
[ratio.ratio]
20.10.4
Arithmetic on ratios
[ratio.arithmetic]
20.10.5
Comparison of ratios
[ratio.comparison]
20.10.6
SI types for ratio
[ratio.si]
20.11
Time utilities
[time]
20.11.1
In general
[time.general]
20.11.2
Header <chrono> synopsis
[time.syn]
20.11.3
Clock requirements
[time.clock.req]
20.11.4
Time-related traits
[time.traits]
20.11.4.1
treat_as_floating_point
[time.traits.is_fp]
20.11.4.2
duration_values
[time.traits.duration_values]
20.11.4.3
Specializations of common_type
[time.traits.specializations]
20.11.5
Class template duration
[time.duration]
20.11.5.1
duration constructors
[time.duration.cons]
20.11.5.2
duration observer
[time.duration.observer]
20.11.5.3
duration arithmetic
[time.duration.arithmetic]
20.11.5.4
duration special values
[time.duration.special]
20.11.5.5
duration non-member arithmetic
[time.duration.nonmember]
20.11.5.6
duration comparisons
[time.duration.comparisons]
20.11.5.7
duration_cast
[time.duration.cast]
20.11.6
Class template time_point
[time.point]
20.11.6.1
time_point constructors
[time.point.cons]
20.11.6.2
time_point observer
[time.point.observer]
20.11.6.3
time_point arithmetic
[time.point.arithmetic]
20.11.6.4
time_point special values
[time.point.special]
20.11.6.5
time_point non-member arithmetic
[time.point.nonmember]
20.11.6.6
time_point comparisons
[time.point.comparisons]
20.11.6.7
time_point_cast
[time.point.cast]
20.11.7
Clocks
[time.clock]
20.11.7.1
Class system_clock
[time.clock.system]
20.11.7.2
Class steady_clock
[time.clock.steady]
20.11.7.3
Class high_resolution_clock
[time.clock.hires]
20.11.8
Date and time functions
[date.time]
20.12
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.12.1
Header <scoped_allocator> synopsis
[allocator.adaptor.syn]
20.12.2
Scoped allocator adaptor member types
[allocator.adaptor.types]
20.12.3
Scoped allocator adaptor constructors
[allocator.adaptor.cnstr]
20.12.4
Scoped allocator adaptor members
[allocator.adaptor.members]
20.12.5
Scoped allocator operators
[scoped.adaptor.operators]
20.13
Class type_index
[type.index]
20.13.1
Header <typeindex> synopsis
[type.index.synopsis]
20.13.2
type_index overview
[type.index.overview]
20.13.3
type_index members
[type.index.members]
20.13.4
Hash support
[type.index.hash]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
Character traits requirements
[char.traits.require]
21.2.2
traits typedefs
[char.traits.typedefs]
21.2.3
char_traits specializations
[char.traits.specializations]
21.2.3.1
struct char_traits<char>
[char.traits.specializations.char]
21.2.3.2
struct char_traits<char16_t>
[char.traits.specializations.char16_t]
21.2.3.3
struct char_traits<char32_t>
[char.traits.specializations.char32_t]
21.2.3.4
struct char_traits<wchar_t>
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.4
Class template basic_string
[basic.string]
21.4.1
basic_string general requirements
[string.require]
21.4.2
basic_string constructors and assignment operators
[string.cons]
21.4.3
basic_string iterator support
[string.iterators]
21.4.4
basic_string capacity
[string.capacity]
21.4.5
basic_string element access
[string.access]
21.4.6
basic_string modifiers
[string.modifiers]
21.4.6.1
[[CppStd:./string::op+=|basic_string::operator+= [string::op+=]]]
[./string::op+=]
21.4.6.2
[[CppStd:./string::append|basic_string::append [string::append]]]
[./string::append]
21.4.6.3
[[CppStd:./string::assign|basic_string::assign [string::assign]]]
[./string::assign]
21.4.6.4
[[CppStd:./string::insert|basic_string::insert [string::insert]]]
[./string::insert]
21.4.6.5
[[CppStd:./string::erase|basic_string::erase [string::erase]]]
[./string::erase]
21.4.6.6
[[CppStd:./string::replace|basic_string::replace [string::replace]]]
[./string::replace]
21.4.6.7
[[CppStd:./string::copy|basic_string::copy [string::copy]]]
[./string::copy]
21.4.6.8
[[CppStd:./string::swap|basic_string::swap [string::swap]]]
[./string::swap]
21.4.7
basic_string string operations
[string.ops]
21.4.7.1
basic_string accessors
[string.accessors]
21.4.7.2
[[CppStd:./string::find|basic_string::find [string::find]]]
[./string::find]
21.4.7.3
[[CppStd:./string::rfind|basic_string::rfind [string::rfind]]]
[./string::rfind]
21.4.7.4
[[CppStd:./string::find.first.of|basic_string::find_first_of [string::find.first.of]]]
[./string::find.first.of]
21.4.7.5
[[CppStd:./string::find.last.of|basic_string::find_last_of [string::find.last.of]]]
[./string::find.last.of]
21.4.7.6
[[CppStd:./string::find.first.not.of|basic_string::find_first_not_of [string::find.first.not.of]]]
[./string::find.first.not.of]
21.4.7.7
[[CppStd:./string::find.last.not.of|basic_string::find_last_not_of [string::find.last.not.of]]]
[./string::find.last.not.of]
21.4.7.8
[[CppStd:./string::substr|basic_string::substr [string::substr]]]
[./string::substr]
21.4.7.9
[[CppStd:./string::compare|basic_string::compare [string::compare]]]
[./string::compare]
21.4.8
basic_string non-member functions
[string.nonmembers]
21.4.8.1
[[CppStd:./string::op+|operator+ [string::op+]]]
[./string::op+]
21.4.8.2
[[CppStd:./string::operator==|operator== [string::operator==]]]
[./string::operator==]
21.4.8.3
[[CppStd:./string::op!=|operator!= [string::op!=]]]
[./string::op!=]
21.4.8.4
[[CppStd:./string::op%3c|operator< [string::op<]]]
[./string::op%3c]
21.4.8.5
[[CppStd:./string::op%3e|operator> [string::op>]]]
[./string::op%3e]
21.4.8.6
[[CppStd:./string::op%3c=|operator<= [string::op<=]]]
[./string::op%3c=]
21.4.8.7
[[CppStd:./string::op%3e=|operator>= [string::op>=]]]
[./string::op%3e=]
21.4.8.8
swap
[string.special]
21.4.8.9
Inserters and extractors
[string.io]
21.5
Numeric conversions
[string.conversions]
21.6
Hash support
[basic.string.hash]
21.7
Null-terminated sequence utilities
[c.strings]
22
Localization library
[localization]
22.1
General
[localization.general]
22.2
Header <locale> synopsis
[locale.syn]
22.3
Locales
[locales]
22.3.1
Class locale
[locale]
22.3.1.1
locale types
[locale.types]
22.3.1.1.1
Type locale::category
[locale.category]
22.3.1.1.2
Class locale::facet
[locale.facet]
22.3.1.1.3
Class locale::id
[locale.id]
22.3.1.2
locale constructors and destructor
[locale.cons]
22.3.1.3
locale members
[locale.members]
22.3.1.4
locale operators
[locale.operators]
22.3.1.5
locale static members
[locale.statics]
22.3.2
locale globals
[locale.global.templates]
22.3.3
Convenience interfaces
[locale.convenience]
22.3.3.1
Character classification
[classification]
22.3.3.2
Conversions
[conversions]
22.3.3.2.1
Character conversions
[conversions.character]
22.3.3.2.2
string conversions
[conversions.string]
22.3.3.2.3
Buffer conversions
[conversions.buffer]
22.4
Standard locale categories
[locale.categories]
22.4.1
The ctype category
[category.ctype]
22.4.1.1
Class template ctype
[locale.ctype]
22.4.1.1.1
ctype members
[locale.ctype.members]
22.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
22.4.1.2
Class template ctype_byname
[locale.ctype.byname]
22.4.1.3
ctype specializations
[facet.ctype.special]
22.4.1.3.1
ctype<char> destructor
[facet.ctype.char.dtor]
22.4.1.3.2
ctype<char> members
[facet.ctype.char.members]
22.4.1.3.3
ctype<char> static members
[facet.ctype.char.statics]
22.4.1.3.4
ctype<char> virtual functions
[facet.ctype.char.virtuals]
22.4.1.4
Class template codecvt
[locale.codecvt]
22.4.1.4.1
codecvt members
[locale.codecvt.members]
22.4.1.4.2
codecvt virtual functions
[locale.codecvt.virtuals]
22.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
22.4.2
The numeric category
[category.numeric]
22.4.2.1
Class template num_get
[locale.num.get]
22.4.2.1.1
num_get members
[facet.num.get.members]
22.4.2.1.2
num_get virtual functions
[facet.num.get.virtuals]
22.4.2.2
Class template num_put
[locale.nm.put]
22.4.2.2.1
num_put members
[facet.num.put.members]
22.4.2.2.2
num_put virtual functions
[facet.num.put.virtuals]
22.4.3
The numeric punctuation facet
[facet.numpunct]
22.4.3.1
Class template numpunct
[locale.numpunct]
22.4.3.1.1
numpunct members
[facet.numpunct.members]
22.4.3.1.2
numpunct virtual functions
[facet.numpunct.virtuals]
22.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
22.4.4
The collate category
[category.collate]
22.4.4.1
Class template collate
[locale.collate]
22.4.4.1.1
collate members
[locale.collate.members]
22.4.4.1.2
collate virtual functions
[locale.collate.virtuals]
22.4.4.2
Class template collate_byname
[locale.collate.byname]
22.4.5
The time category
[category.time]
22.4.5.1
Class template time_get
[locale.time.get]
22.4.5.1.1
time_get members
[locale.time.get.members]
22.4.5.1.2
time_get virtual functions
[locale.time.get.virtuals]
22.4.5.2
Class template time_get_byname
[locale.time.get.byname]
22.4.5.3
Class template time_put
[locale.time.put]
22.4.5.3.1
time_put members
[locale.time.put.members]
22.4.5.3.2
time_put virtual functions
[locale.time.put.virtuals]
22.4.5.4
Class template time_put_byname
[locale.time.put.byname]
22.4.6
The monetary category
[category.monetary]
22.4.6.1
Class template money_get
[locale.money.get]
22.4.6.1.1
money_get members
[locale.money.get.members]
22.4.6.1.2
money_get virtual functions
[locale.money.get.virtuals]
22.4.6.2
Class template money_put
[locale.money.put]
22.4.6.2.1
money_put members
[locale.money.put.members]
22.4.6.2.2
money_put virtual functions
[locale.money.put.virtuals]
22.4.6.3
Class template moneypunct
[locale.moneypunct]
22.4.6.3.1
moneypunct members
[locale.moneypunct.members]
22.4.6.3.2
moneypunct virtual functions
[locale.moneypunct.virtuals]
22.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
22.4.7
The message retrieval category
[category.messages]
22.4.7.1
Class template messages
[locale.messages]
22.4.7.1.1
messages members
[locale.messages.members]
22.4.7.1.2
messages virtual functions
[locale.messages.virtuals]
22.4.7.2
Class template messages_byname
[locale.messages.byname]
22.4.8
Program-defined facets
[facets.examples]
22.5
Standard code conversion facets
[locale.stdcvt]
22.6
C library locales
[c.locales]
23
Containers library
[containers]
23.1
General
[containers.general]
23.2
Container requirements
[container.requirements]
23.2.1
General container requirements
[container.requirements.general]
23.2.2
Container data races
[container.requirements.dataraces]
23.2.3
Sequence containers
[sequence.reqmts]
23.2.4
Associative containers
[associative.reqmts]
23.2.4.1
Exception safety guarantees
[associative.reqmts.except]
23.2.5
Unordered associative containers
[unord.req]
23.2.5.1
Exception safety guarantees
[unord.req.except]
23.3
Sequence containers
[sequences]
23.3.1
In general
[sequences.general]
23.3.2
Class template array
[array]
23.3.2.1
Class template array overview
[array.overview]
23.3.2.2
array constructors, copy, and assignment
[array.cons]
23.3.2.3
array specialized algorithms
[array.special]
23.3.2.4
array::size
[array.size]
23.3.2.5
array::data
[array.data]
23.3.2.6
array::fill
[array.fill]
23.3.2.7
array::swap
[array.swap]
23.3.2.8
Zero sized arrays
[array.zero]
23.3.2.9
Tuple interface to class template array
[array.tuple]
23.3.3
Class template deque
[deque]
23.3.3.1
Class template deque overview
[deque.overview]
23.3.3.2
deque constructors, copy, and assignment
[deque.cons]
23.3.3.3
deque capacity
[deque.capacity]
23.3.3.4
deque modifiers
[deque.modifiers]
23.3.3.5
deque specialized algorithms
[deque.special]
23.3.4
Class template forward_list
[forwardlist]
23.3.4.1
Class template forward_list overview
[forwardlist.overview]
23.3.4.2
forward_list constructors, copy, assignment
[forwardlist.cons]
23.3.4.3
forward_list iterators
[forwardlist.iter]
23.3.4.4
forward_list element access
[forwardlist.access]
23.3.4.5
forward_list modifiers
[forwardlist.modifiers]
23.3.4.6
forward_list operations
[forwardlist.ops]
23.3.4.7
forward_list specialized algorithms
[forwardlist.spec]
23.3.5
Class template list
[list]
23.3.5.1
Class template list overview
[list.overview]
23.3.5.2
list constructors, copy, and assignment
[list.cons]
23.3.5.3
list capacity
[list.capacity]
23.3.5.4
list modifiers
[list.modifiers]
23.3.5.5
list operations
[list.ops]
23.3.5.6
list specialized algorithms
[list.special]
23.3.6
Class template vector
[vector]
23.3.6.1
Class template vector overview
[vector.overview]
23.3.6.2
vector constructors, copy, and assignment
[vector.cons]
23.3.6.3
vector capacity
[vector.capacity]
23.3.6.4
vector data
[vector.data]
23.3.6.5
vector modifiers
[vector.modifiers]
23.3.6.6
vector specialized algorithms
[vector.special]
23.3.7
Class vector<bool>
[vector.bool]
23.4
Associative containers
[associative]
23.4.1
In general
[associative.general]
23.4.2
Header <map> synopsis
[associative.map.syn]
23.4.3
Header <set> synopsis
[associative.set.syn]
23.4.4
Class template map
[map]
23.4.4.1
Class template map overview
[map.overview]
23.4.4.2
map constructors, copy, and assignment
[map.cons]
23.4.4.3
map element access
[map.access]
23.4.4.4
map modifiers
[map.modifiers]
23.4.4.5
map operations
[map.ops]
23.4.4.6
map specialized algorithms
[map.special]
23.4.5
Class template multimap
[multimap]
23.4.5.1
Class template multimap overview
[multimap.overview]
23.4.5.2
multimap constructors
[multimap.cons]
23.4.5.3
multimap modifiers
[multimap.modifiers]
23.4.5.4
multimap operations
[multimap.ops]
23.4.5.5
multimap specialized algorithms
[multimap.special]
23.4.6
Class template set
[set]
23.4.6.1
Class template set overview
[set.overview]
23.4.6.2
set constructors, copy, and assignment
[set.cons]
23.4.6.3
set specialized algorithms
[set.special]
23.4.7
Class template multiset
[multiset]
23.4.7.1
Class template multiset overview
[multiset.overview]
23.4.7.2
multiset constructors
[multiset.cons]
23.4.7.3
multiset specialized algorithms
[multiset.special]
23.5
Unordered associative containers
[unord]
23.5.1
In general
[unord.general]
23.5.2
Header <unordered_map> synopsis
[unord.map.syn]
23.5.3
Header <unordered_set> synopsis
[unord.set.syn]
23.5.4
Class template unordered_map
[unord.map]
23.5.4.1
Class template unordered_map overview
[unord.map.overview]
23.5.4.2
unordered_map constructors
[unord.map.cnstr]
23.5.4.3
unordered_map element access
[unord.map.elem]
23.5.4.4
unordered_map modifiers
[unord.map.modifiers]
23.5.4.5
unordered_map swap
[unord.map.swap]
23.5.5
Class template unordered_multimap
[unord.multimap]
23.5.5.1
Class template unordered_multimap overview
[unord.multimap.overview]
23.5.5.2
unordered_multimap constructors
[unord.multimap.cnstr]
23.5.5.3
unordered_multimap modifiers
[unord.multimap.modifiers]
23.5.5.4
unordered_multimap swap
[unord.multimap.swap]
23.5.6
Class template unordered_set
[unord.set]
23.5.6.1
Class template unordered_set overview
[unord.set.overview]
23.5.6.2
unordered_set constructors
[unord.set.cnstr]
23.5.6.3
unordered_set swap
[unord.set.swap]
23.5.7
Class template unordered_multiset
[unord.multiset]
23.5.7.1
Class template unordered_multiset overview
[unord.multiset.overview]
23.5.7.2
unordered_multiset constructors
[unord.multiset.cnstr]
23.5.7.3
unordered_multiset swap
[unord.multiset.swap]
23.6
Container adaptors
[container.adaptors]
23.6.1
In general
[container.adaptors.general]
23.6.2
Header <queue> synopsis
[queue.syn]
23.6.3
Class template queue
[queue]
23.6.3.1
queue definition
[queue.defn]
23.6.3.2
queue constructors
[queue.cons]
23.6.3.3
queue constructors with allocators
[queue.cons.alloc]
23.6.3.4
queue operators
[queue.ops]
23.6.3.5
queue specialized algorithms
[queue.special]
23.6.4
Class template priority_queue
[priority.queue]
23.6.4.1
priority_queue constructors
[priqueue.cons]
23.6.4.2
priority_queue constructors with allocators
[priqueue.cons.alloc]
23.6.4.3
priority_queue members
[priqueue.members]
23.6.4.4
priority_queue specialized algorithms
[priqueue.special]
23.6.5
Class template stack
[stack]
23.6.5.1
Header <stack> synopsis
[stack.syn]
23.6.5.2
stack definition
[stack.defn]
23.6.5.3
stack constructors
[stack.cons]
23.6.5.4
stack constructors with allocators
[stack.cons.alloc]
23.6.5.5
stack operators
[stack.ops]
23.6.5.6
stack specialized algorithms
[stack.special]
24
Iterators library
[iterators]
24.1
General
[iterators.general]
24.2
Iterator requirements
[iterator.requirements]
24.2.1
In general
[iterator.requirements.general]
24.2.2
Iterator
[iterator.iterators]
24.2.3
Input iterators
[input.iterators]
24.2.4
Output iterators
[output.iterators]
24.2.5
Forward iterators
[forward.iterators]
24.2.6
Bidirectional iterators
[bidirectional.iterators]
24.2.7
Random access iterators
[random.access.iterators]
24.3
Header <iterator> synopsis
[iterator.synopsis]
24.4
Iterator primitives
[iterator.primitives]
24.4.1
Iterator traits
[iterator.traits]
24.4.2
Basic iterator
[iterator.basic]
24.4.3
Standard iterator tags
[std.iterator.tags]
24.4.4
Iterator operations
[iterator.operations]
24.5
Iterator adaptors
[predef.iterators]
24.5.1
Reverse iterators
[reverse.iterators]
24.5.1.1
Class template reverse_iterator
[reverse.iterator]
24.5.1.2
reverse_iterator requirements
[reverse.iter.requirements]
24.5.1.3
reverse_iterator operations
[reverse.iter.ops]
24.5.1.3.1
reverse_iterator constructor
[reverse.iter.cons]
24.5.1.3.2
reverse_iterator::operator=
[reverse.iter.op=]
24.5.1.3.3
Conversion
[reverse.iter.conv]
24.5.1.3.4
operator*
[reverse.iter.op.star]
24.5.1.3.5
operator->
[reverse.iter.opref]
24.5.1.3.6
operator++
[reverse.iter.op++]
24.5.1.3.7
operator--
[reverse.iter.op--]
24.5.1.3.8
operator+
[reverse.iter.op+]
24.5.1.3.9
operator+=
[reverse.iter.op+=]
24.5.1.3.10
operator-
[reverse.iter.op-]
24.5.1.3.11
operator-=
[reverse.iter.op-=]
24.5.1.3.12
operator[]
[reverse.iter.opindex]
24.5.1.3.13
operator==
[reverse.iter.op==]
24.5.1.3.14
[[CppStd:reverse.iter.op%3c|operator< [reverse.iter.op<]]]
[reverse.iter.op%3c]
24.5.1.3.15
operator!=
[reverse.iter.op!=]
24.5.1.3.16
[[CppStd:reverse.iter.op%3e|operator> [reverse.iter.op>]]]
[reverse.iter.op%3e]
24.5.1.3.17
[[CppStd:reverse.iter.op%3e=|operator>= [reverse.iter.op>=]]]
[reverse.iter.op%3e=]
24.5.1.3.18
[[CppStd:reverse.iter.op%3c=|operator<= [reverse.iter.op<=]]]
[reverse.iter.op%3c=]
24.5.1.3.19
operator-
[reverse.iter.opdiff]
24.5.1.3.20
operator+
[reverse.iter.opsum]
24.5.2
Insert iterators
[insert.iterators]
24.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
24.5.2.2
back_insert_iterator operations
[back.insert.iter.ops]
24.5.2.2.1
back_insert_iterator constructor
[back.insert.iter.cons]
24.5.2.2.2
back_insert_iterator::operator=
[back.insert.iter.op=]
24.5.2.2.3
back_insert_iterator::operator*
[back.insert.iter.op*]
24.5.2.2.4
back_insert_iterator::operator++
[back.insert.iter.op++]
24.5.2.2.5
back_inserter
[back.inserter]
24.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
24.5.2.4
front_insert_iterator operations
[front.insert.iter.ops]
24.5.2.4.1
front_insert_iterator constructor
[front.insert.iter.cons]
24.5.2.4.2
front_insert_iterator::operator=
[front.insert.iter.op=]
24.5.2.4.3
front_insert_iterator::operator*
[front.insert.iter.op*]
24.5.2.4.4
front_insert_iterator::operator++
[front.insert.iter.op++]
24.5.2.4.5
front_inserter
[front.inserter]
24.5.2.5
Class template insert_iterator
[insert.iterator]
24.5.2.6
insert_iterator operations
[insert.iter.ops]
24.5.2.6.1
insert_iterator constructor
[insert.iter.cons]
24.5.2.6.2
insert_iterator::operator=
[insert.iter.op=]
24.5.2.6.3
insert_iterator::operator*
[insert.iter.op*]
24.5.2.6.4
insert_iterator::operator++
[insert.iter.op++]
24.5.2.6.5
inserter
[inserter]
24.5.3
Move iterators
[move.iterators]
24.5.3.1
Class template move_iterator
[move.iterator]
24.5.3.2
move_iterator requirements
[move.iter.requirements]
24.5.3.3
move_iterator operations
[move.iter.ops]
24.5.3.3.1
move_iterator constructors
[move.iter.op.const]
24.5.3.3.2
move_iterator::operator=
[move.iter.op=]
24.5.3.3.3
move_iterator conversion
[move.iter.op.conv]
24.5.3.3.4
move_iterator::operator*
[move.iter.op.star]
24.5.3.3.5
move_iterator::operator->
[move.iter.op.ref]
24.5.3.3.6
move_iterator::operator++
[move.iter.op.incr]
24.5.3.3.7
move_iterator::operator--
[move.iter.op.decr]
24.5.3.3.8
move_iterator::operator+
[move.iter.op.+]
24.5.3.3.9
move_iterator::operator+=
[move.iter.op.+=]
24.5.3.3.10
move_iterator::operator-
[move.iter.op.-]
24.5.3.3.11
move_iterator::operator-=
[move.iter.op.-=]
24.5.3.3.12
move_iterator::operator[]
[move.iter.op.index]
24.5.3.3.13
move_iterator comparisons
[move.iter.op.comp]
24.5.3.3.14
move_iterator non-member functions
[move.iter.nonmember]
24.6
Stream iterators
[stream.iterators]
24.6.1
Class template istream_iterator
[istream.iterator]
24.6.1.1
istream_iterator constructors and destructor
[istream.iterator.cons]
24.6.1.2
istream_iterator operations
[istream.iterator.ops]
24.6.2
Class template ostream_iterator
[ostream.iterator]
24.6.2.1
ostream_iterator constructors and destructor
[ostream.iterator.cons.des]
24.6.2.2
ostream_iterator operations
[ostream.iterator.ops]
24.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
24.6.3.1
[[CppStd:./istreambuf.iterator::proxy|Class template istreambuf_iterator::proxy [istreambuf.iterator::proxy]]]
[./istreambuf.iterator::proxy]
24.6.3.2
istreambuf_iterator constructors
[istreambuf.iterator.cons]
24.6.3.3
[[CppStd:./istreambuf.iterator::op*|istreambuf_iterator::operator* [istreambuf.iterator::op*]]]
[./istreambuf.iterator::op*]
24.6.3.4
[[CppStd:./istreambuf.iterator::op++|istreambuf_iterator::operator++ [istreambuf.iterator::op++]]]
[./istreambuf.iterator::op++]
24.6.3.5
[[CppStd:./istreambuf.iterator::equal|istreambuf_iterator::equal [istreambuf.iterator::equal]]]
[./istreambuf.iterator::equal]
24.6.3.6
[[CppStd:./istreambuf.iterator::op==|operator== [istreambuf.iterator::op==]]]
[./istreambuf.iterator::op==]
24.6.3.7
[[CppStd:./istreambuf.iterator::op!=|operator!= [istreambuf.iterator::op!=]]]
[./istreambuf.iterator::op!=]
24.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
24.6.4.1
ostreambuf_iterator constructors
[ostreambuf.iter.cons]
24.6.4.2
ostreambuf_iterator operations
[ostreambuf.iter.ops]
24.6.5
range access
[iterator.range]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Non-modifying sequence operations
[alg.nonmodifying]
25.2.1
All of
[alg.all_of]
25.2.2
Any of
[alg.any_of]
25.2.3
None of
[alg.none_of]
25.2.4
For each
[alg.foreach]
25.2.5
Find
[alg.find]
25.2.6
Find end
[alg.find.end]
25.2.7
Find first
[alg.find.first.of]
25.2.8
Adjacent find
[alg.adjacent.find]
25.2.9
Count
[alg.count]
25.2.10
Mismatch
[mismatch]
25.2.11
Equal
[alg.equal]
25.2.12
Is permutation
[alg.is_permutation]
25.2.13
Search
[alg.search]
25.3
Mutating sequence operations
[alg.modifying.operations]
25.3.1
Copy
[alg.copy]
25.3.2
Move
[alg.move]
25.3.3
swap
[alg.swap]
25.3.4
Transform
[alg.transform]
25.3.5
Replace
[alg.replace]
25.3.6
Fill
[alg.fill]
25.3.7
Generate
[alg.generate]
25.3.8
Remove
[alg.remove]
25.3.9
Unique
[alg.unique]
25.3.10
Reverse
[alg.reverse]
25.3.11
Rotate
[alg.rotate]
25.3.12
Random shuffle
[alg.random.shuffle]
25.3.13
Partitions
[alg.partitions]
25.4
Sorting and related operations
[alg.sorting]
25.4.1
Sorting
[alg.sort]
25.4.1.1
sort
[sort]
25.4.1.2
stable_sort
[stable.sort]
25.4.1.3
partial_sort
[partial.sort]
25.4.1.4
partial_sort_copy
[partial.sort.copy]
25.4.1.5
is_sorted
[is.sorted]
25.4.2
Nth element
[alg.nth.element]
25.4.3
Binary search
[alg.binary.search]
25.4.3.1
lower_bound
[lower.bound]
25.4.3.2
upper_bound
[upper.bound]
25.4.3.3
equal_range
[equal.range]
25.4.3.4
binary_search
[binary.search]
25.4.4
Merge
[alg.merge]
25.4.5
Set operations on sorted structures
[alg.set.operations]
25.4.5.1
includes
[includes]
25.4.5.2
set_union
[set.union]
25.4.5.3
set_intersection
[set.intersection]
25.4.5.4
set_difference
[set.difference]
25.4.5.5
set_symmetric_difference
[set.symmetric.difference]
25.4.6
Heap operations
[alg.heap.operations]
25.4.6.1
push_heap
[push.heap]
25.4.6.2
pop_heap
[pop.heap]
25.4.6.3
make_heap
[make.heap]
25.4.6.4
sort_heap
[sort.heap]
25.4.6.5
is_heap
[is.heap]
25.4.7
Minimum and maximum
[alg.min.max]
25.4.8
Lexicographical comparison
[alg.lex.comparison]
25.4.9
Permutation generators
[alg.permutation.generators]
25.5
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Numeric type requirements
[numeric.requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header <cfenv> synopsis
[cfenv.syn]
26.4
Complex numbers
[complex.numbers]
26.4.1
Header <complex> synopsis
[complex.syn]
26.4.2
Class template complex
[complex]
26.4.3
complex specializations
[complex.special]
26.4.4
complex member functions
[complex.members]
26.4.5
complex member operators
[complex.member.ops]
26.4.6
complex non-member operations
[complex.ops]
26.4.7
complex value operations
[complex.value.ops]
26.4.8
complex transcendentals
[complex.transcendentals]
26.4.9
Additional overloads
[cmplx.over]
26.4.10
Header <ccomplex>
[ccmplx]
26.5
Random number generation
[rand]
26.5.1
Requirements
[rand.req]
26.5.1.1
General requirements
[rand.req.genl]
26.5.1.2
Seed sequence requirements
[rand.req.seedseq]
26.5.1.3
Uniform random number generator requirements
[rand.req.urng]
26.5.1.4
Random number engine requirements
[rand.req.eng]
26.5.1.5
Random number engine adaptor requirements
[rand.req.adapt]
26.5.1.6
Random number distribution requirements
[rand.req.dist]
26.5.2
Header <random> synopsis
[rand.synopsis]
26.5.3
Random number engine class templates
[rand.eng]
26.5.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
26.5.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
26.5.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
26.5.4
Random number engine adaptor class templates
[rand.adapt]
26.5.4.1
In general
[rand.adapt.general]
26.5.4.2
Class template discard_block_engine
[rand.adapt.disc]
26.5.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
26.5.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
26.5.5
Engines and engine adaptors with predefined parameters
[rand.predef]
26.5.6
Class random_device
[rand.device]
26.5.7
Utilities
[rand.util]
26.5.7.1
Class seed_seq
[rand.util.seedseq]
26.5.7.2
Function template generate_canonical
[rand.util.canonical]
26.5.8
Random number distribution class templates
[rand.dist]
26.5.8.1
In general
[rand.dist.general]
26.5.8.2
Uniform distributions
[rand.dist.uni]
26.5.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
26.5.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
26.5.8.3
Bernoulli distributions
[rand.dist.bern]
26.5.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
26.5.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
26.5.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
26.5.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
26.5.8.4
Poisson distributions
[rand.dist.pois]
26.5.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
26.5.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
26.5.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
26.5.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
26.5.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
26.5.8.5
Normal distributions
[rand.dist.norm]
26.5.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
26.5.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
26.5.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
26.5.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
26.5.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
26.5.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
26.5.8.6
Sampling distributions
[rand.dist.samp]
26.5.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
26.5.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
26.5.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
26.6
Numeric arrays
[numarray]
26.6.1
Header <valarray> synopsis
[valarray.syn]
26.6.2
Class template valarray
[template.valarray]
26.6.2.1
Class template valarray overview
[template.valarray.overview]
26.6.2.2
valarray constructors
[valarray.cons]
26.6.2.3
valarray assignment
[valarray.assign]
26.6.2.4
valarray element access
[valarray.access]
26.6.2.5
valarray subset operations
[valarray.sub]
26.6.2.6
valarray unary operators
[valarray.unary]
26.6.2.7
valarray computed assignment
[valarray.cassign]
26.6.2.8
valarray member functions
[valarray.members]
26.6.3
valarray non-member operations
[valarray.nonmembers]
26.6.3.1
valarray binary operators
[valarray.binary]
26.6.3.2
valarray logical operators
[valarray.comparison]
26.6.3.3
valarray transcendentals
[valarray.transcend]
26.6.3.4
valarray specialized algorithms
[valarray.special]
26.6.4
Class slice
[class.slice]
26.6.4.1
Class slice overview
[class.slice.overview]
26.6.4.2
slice constructors
[cons.slice]
26.6.4.3
slice access functions
[slice.access]
26.6.5
Class template slice_array
[template.slice.array]
26.6.5.1
Class template slice_array overview
[template.slice.array.overview]
26.6.5.2
slice_array assignment
[slice.arr.assign]
26.6.5.3
slice_array computed assignment
[slice.arr.comp.assign]
26.6.5.4
slice_array fill function
[slice.arr.fill]
26.6.6
The gslice class
[class.gslice]
26.6.6.1
The gslice class overview
[class.gslice.overview]
26.6.6.2
gslice constructors
[gslice.cons]
26.6.6.3
gslice access functions
[gslice.access]
26.6.7
Class template gslice_array
[template.gslice.array]
26.6.7.1
Class template gslice_array overview
[template.gslice.array.overview]
26.6.7.2
gslice_array assignment
[gslice.array.assign]
26.6.7.3
gslice_array
[gslice.array.comp.assign]
26.6.7.4
gslice_array fill function
[gslice.array.fill]
26.6.8
Class template mask_array
[template.mask.array]
26.6.8.1
Class template mask_array overview
[template.mask.array.overview]
26.6.8.2
mask_array assignment
[mask.array.assign]
26.6.8.3
mask_array computed assignment
[mask.array.comp.assign]
26.6.8.4
mask_array fill function
[mask.array.fill]
26.6.9
Class template indirect_array
[template.indirect.array]
26.6.9.1
Class template indirect_array overview
[template.indirect.array.overview]
26.6.9.2
indirect_array assignment
[indirect.array.assign]
26.6.9.3
indirect_array computed assignment
[indirect.array.comp.assign]
26.6.9.4
indirect_array fill function
[indirect.array.fill]
26.6.10
valarray range access
[valarray.range]
26.7
Generalized numeric operations
[numeric.ops]
26.7.1
Header <numeric> synopsis
[numeric.ops.overview]
26.7.2
Accumulate
[accumulate]
26.7.3
Inner product
[inner.product]
26.7.4
Partial sum
[partial.sum]
26.7.5
Adjacent difference
[adjacent.difference]
26.7.6
Iota
[numeric.iota]
26.8
C library
[c.math]
27
Input/output library
[input.output]
27.1
General
[input.output.general]
27.2
Iostreams requirements
[iostreams.requirements]
27.2.1
Imbue limitations
[iostream.limits.imbue]
27.2.2
Positioning type limitations
[iostreams.limits.pos]
27.2.3
Thread safety
[iostreams.threadsafety]
27.3
Forward declarations
[iostream.forward]
27.4
Standard iostream objects
[iostream.objects]
27.4.1
Overview
[iostream.objects.overview]
27.4.2
Narrow stream objects
[narrow.stream.objects]
27.4.3
Wide stream objects
[wide.stream.objects]
27.5
Iostreams base classes
[iostreams.base]
27.5.1
Overview
[iostreams.base.overview]
27.5.2
Types
[stream.types]
27.5.3
Class ios_base
[ios.base]
27.5.3.1
Types
[ios.types]
27.5.3.1.1
[[CppStd:./ios::failure|Class ios_base::failure [ios::failure]]]
[./ios::failure]
27.5.3.1.2
[[CppStd:./ios::fmtflags|Type ios_base::fmtflags [ios::fmtflags]]]
[./ios::fmtflags]
27.5.3.1.3
[[CppStd:./ios::iostate|Type ios_base::iostate [ios::iostate]]]
[./ios::iostate]
27.5.3.1.4
[[CppStd:./ios::openmode|Type ios_base::openmode [ios::openmode]]]
[./ios::openmode]
27.5.3.1.5
[[CppStd:./ios::seekdir|Type ios_base::seekdir [ios::seekdir]]]
[./ios::seekdir]
27.5.3.1.6
[[CppStd:./ios::Init|Class ios_base::Init [ios::Init]]]
[./ios::Init]
27.5.3.2
ios_base state functions
[fmtflags.state]
27.5.3.3
ios_base functions
[ios.base.locales]
27.5.3.4
ios_base static members
[ios.members.static]
27.5.3.5
ios_base storage functions
[ios.base.storage]
27.5.3.6
ios_base callbacks
[ios.base.callback]
27.5.3.7
ios_base constructors/destructor
[ios.base.cons]
27.5.4
Class template fpos
[fpos]
27.5.4.1
fpos members
[fpos.members]
27.5.4.2
fpos requirements
[fpos.operations]
27.5.5
Class template basic_ios
[ios]
27.5.5.1
Overview
[ios.overview]
27.5.5.2
basic_ios constructors
[basic.ios.cons]
27.5.5.3
Member functions
[basic.ios.members]
27.5.5.4
basic_ios flags functions
[iostate.flags]
27.5.6
ios_base manipulators
[std.ios.manip]
27.5.6.1
fmtflags manipulators
[fmtflags.manip]
27.5.6.2
adjustfield manipulators
[adjustfield.manip]
27.5.6.3
basefield manipulators
[basefield.manip]
27.5.6.4
floatfield manipulators
[floatfield.manip]
27.5.6.5
Error reporting
[error.reporting]
27.6
Stream buffers
[stream.buffers]
27.6.1
Overview
[stream.buffers.overview]
27.6.2
Stream buffer requirements
[streambuf.reqts]
27.6.3
Class template basic_streambuf<charT,traits>
[streambuf]
27.6.3.1
basic_streambuf constructors
[streambuf.cons]
27.6.3.2
basic_streambuf public member functions
[streambuf.members]
27.6.3.2.1
Locales
[streambuf.locales]
27.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
27.6.3.2.3
Get area
[streambuf.pub.get]
27.6.3.2.4
Putback
[streambuf.pub.pback]
27.6.3.2.5
Put area
[streambuf.pub.put]
27.6.3.3
basic_streambuf protected member functions
[streambuf.protected]
27.6.3.3.1
Assignment
[streambuf.assign]
27.6.3.3.2
Get area access
[streambuf.get.area]
27.6.3.3.3
Put area access
[streambuf.put.area]
27.6.3.4
basic_streambuf virtual functions
[streambuf.virtuals]
27.6.3.4.1
Locales
[streambuf.virt.locales]
27.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
27.6.3.4.3
Get area
[streambuf.virt.get]
27.6.3.4.4
Putback
[streambuf.virt.pback]
27.6.3.4.5
Put area
[streambuf.virt.put]
27.7
Formatting and manipulators
[iostream.format]
27.7.1
Overview
[iostream.format.overview]
27.7.2
Input streams
[input.streams]
27.7.2.1
Class template basic_istream
[istream]
27.7.2.1.1
basic_istream constructors
[istream.cons]
27.7.2.1.2
Class basic_istream assign and swap
[istream.assign]
27.7.2.1.3
[[CppStd:./istream::sentry|Class basic_istream::sentry [istream::sentry]]]
[./istream::sentry]
27.7.2.2
Formatted input functions
[istream.formatted]
27.7.2.2.1
Common requirements
[istream.formatted.reqmts]
27.7.2.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
27.7.2.2.3
[[CppStd:./istream::extractors|basic_istream::operator>> [istream::extractors]]]
[./istream::extractors]
27.7.2.3
Unformatted input functions
[istream.unformatted]
27.7.2.4
Standard basic_istream manipulators
[istream.manip]
27.7.2.5
Class template basic_iostream
[iostreamclass]
27.7.2.5.1
basic_iostream constructors
[iostream.cons]
27.7.2.5.2
basic_iostream destructor
[iostream.dest]
27.7.2.5.3
basic_iostream assign and swap
[iostream.assign]
27.7.2.6
Rvalue stream extraction
[istream.rvalue]
27.7.3
Output streams
[output.streams]
27.7.3.1
Class template basic_ostream
[ostream]
27.7.3.2
basic_ostream constructors
[ostream.cons]
27.7.3.3
Class basic_ostream assign and swap
[ostream.assign]
27.7.3.4
[[CppStd:./ostream::sentry|Class basic_ostream::sentry [ostream::sentry]]]
[./ostream::sentry]
27.7.3.5
basic_ostream seek members
[ostream.seeks]
27.7.3.6
Formatted output functions
[ostream.formatted]
27.7.3.6.1
Common requirements
[ostream.formatted.reqmts]
27.7.3.6.2
Arithmetic inserters
[ostream.inserters.arithmetic]
27.7.3.6.3
basic_ostream::operator<<
[ostream.inserters]
27.7.3.6.4
Character inserter function templates
[ostream.inserters.character]
27.7.3.7
Unformatted output functions
[ostream.unformatted]
27.7.3.8
Standard basic_ostream manipulators
[ostream.manip]
27.7.3.9
Rvalue stream insertion
[ostream.rvalue]
27.7.4
Standard manipulators
[std.manip]
27.7.5
Extended manipulators
[ext.manip]
27.8
String-based streams
[string.streams]
27.8.1
Overview
[string.streams.overview]
27.8.2
Class template basic_stringbuf
[stringbuf]
27.8.2.1
basic_stringbuf constructors
[stringbuf.cons]
27.8.2.2
Assign and swap
[stringbuf.assign]
27.8.2.3
Member functions
[stringbuf.members]
27.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
27.8.3
Class template basic_istringstream
[istringstream]
27.8.3.1
basic_istringstream constructors
[istringstream.cons]
27.8.3.2
Assign and swap
[istringstream.assign]
27.8.3.3
Member functions
[istringstream.members]
27.8.4
Class template basic_ostringstream
[ostringstream]
27.8.4.1
basic_ostringstream constructors
[ostringstream.cons]
27.8.4.2
Assign and swap
[ostringstream.assign]
27.8.4.3
Member functions
[ostringstream.members]
27.8.5
Class template basic_stringstream
[stringstream]
27.8.6
basic_stringstream constructors
[stringstream.cons]
27.8.6.1
Assign and swap
[stringstream.assign]
27.8.7
Member functions
[stringstream.members]
27.9
File-based streams
[file.streams]
27.9.1
File streams
[fstreams]
27.9.1.1
Class template basic_filebuf
[filebuf]
27.9.1.2
basic_filebuf constructors
[filebuf.cons]
27.9.1.3
Assign and swap
[filebuf.assign]
27.9.1.4
Member functions
[filebuf.members]
27.9.1.5
Overridden virtual functions
[filebuf.virtuals]
27.9.1.6
Class template basic_ifstream
[ifstream]
27.9.1.7
basic_ifstream constructors
[ifstream.cons]
27.9.1.8
Assign and swap
[ifstream.assign]
27.9.1.9
Member functions
[ifstream.members]
27.9.1.10
Class template basic_ofstream
[ofstream]
27.9.1.11
basic_ofstream constructors
[ofstream.cons]
27.9.1.12
Assign and swap
[ofstream.assign]
27.9.1.13
Member functions
[ofstream.members]
27.9.1.14
Class template basic_fstream
[fstream]
27.9.1.15
basic_fstream constructors
[fstream.cons]
27.9.1.16
Assign and swap
[fstream.assign]
27.9.1.17
Member functions
[fstream.members]
27.9.2
C library files
[c.files]
28
Regular expressions library
[re]
28.1
General
[re.general]
28.2
Definitions
[re.def]
28.2.1
collating element
[defns.regex.collating.element]
28.2.2
finite state machine
[defns.regex.finite.state.machine]
28.2.3
format specifier
[defns.regex.format.specifier]
28.2.4
matched
[defns.regex.matched]
28.2.5
primary equivalence class
[defns.regex.primary.equivalence.class]
28.2.6
regular expression
[defns.regex.regular.expression]
28.2.7
sub-expression
[defns.regex.subexpression]
28.3
Requirements
[re.req]
28.4
Header <regex> synopsis
[re.syn]
28.5
Namespace std::regex_constants
[re.const]
28.5.1
Bitmask type syntax_option_type
[re.synopt]
28.5.2
Bitmask type regex_constants::match_flag_type
[re.matchflag]
28.5.3
Implementation-defined error_type
[re.err]
28.6
Class regex_error
[re.badexp]
28.7
Class template regex_traits
[re.traits]
28.8
Class template basic_regex
[re.regex]
28.8.1
basic_regex constants
[re.regex.const]
28.8.2
basic_regex constructors
[re.regex.construct]
28.8.3
basic_regex assign
[re.regex.assign]
28.8.4
basic_regex constant operations
[re.regex.operations]
28.8.5
basic_regex locale
[re.regex.locale]
28.8.6
basic_regex swap
[re.regex.swap]
28.8.7
basic_regex non-member functions
[re.regex.nonmemb]
28.8.7.1
basic_regex non-member swap
[re.regex.nmswap]
28.9
Class template sub_match
[re.submatch]
28.9.1
sub_match members
[re.submatch.members]
28.9.2
sub_match non-member operators
[re.submatch.op]
28.10
Class template match_results
[re.results]
28.10.1
match_results constructors
[re.results.const]
28.10.2
match_results state
[re.results.state]
28.10.3
match_results size
[re.results.size]
28.10.4
match_results element access
[re.results.acc]
28.10.5
match_results formatting
[re.results.form]
28.10.6
match_results allocator
[re.results.all]
28.10.7
match_results swap
[re.results.swap]
28.10.8
match_results non-member functions
[re.results.nonmember]
28.11
Regular expression algorithms
[re.alg]
28.11.1
exceptions
[re.except]
28.11.2
regex_match
[re.alg.match]
28.11.3
regex_search
[re.alg.search]
28.11.4
regex_replace
[re.alg.replace]
28.12
Regular expression iterators
[re.iter]
28.12.1
Class template regex_iterator
[re.regiter]
28.12.1.1
regex_iterator constructors
[re.regiter.cnstr]
28.12.1.2
regex_iterator comparisons
[re.regiter.comp]
28.12.1.3
regex_iterator dereference
[re.regiter.deref]
28.12.1.4
regex_iterator increment
[re.regiter.incr]
28.12.2
Class template regex_token_iterator
[re.tokiter]
28.12.2.1
regex_token_iterator constructors
[re.tokiter.cnstr]
28.12.2.2
regex_token_iterator comparisons
[re.tokiter.comp]
28.12.2.3
regex_token_iterator dereference
[re.tokiter.deref]
28.12.2.4
regex_token_iterator increment
[re.tokiter.incr]
28.13
Modified ECMAScript regular expression grammar
[re.grammar]
29
Atomic operations library
[atomics]
29.1
General
[atomics.general]
29.2
Header <atomic> synopsis
[atomics.syn]
29.3
Order and consistency
[atomics.order]
29.4
Lock-free property
[atomics.lockfree]
29.5
Atomic types
[atomics.types.generic]
29.6
Operations on atomic types
[atomics.types.operations]
29.6.1
General operations on atomic types
[atomics.types.operations.general]
29.6.2
Templated operations on atomic types
[atomics.types.operations.templ]
29.6.3
Arithmetic operations on atomic types
[atomics.types.operations.arith]
29.6.4
Operations on atomic pointer types
[atomics.types.operations.pointer]
29.6.5
Requirements for operations on atomic types
[atomics.types.operations.req]
29.7
Flag type and operations
[atomics.flag]
29.8
Fences
[atomics.fences]
30
Thread support library
[thread]
30.1
General
[thread.general]
30.2
Requirements
[thread.req]
30.2.1
Template parameter names
[thread.req.paramname]
30.2.2
Exceptions
[thread.req.exception]
30.2.3
Native handles
[thread.req.native]
30.2.4
Timing specifications
[thread.req.timing]
30.2.5
Requirements for Lockable types
[thread.req.lockable]
30.2.5.1
In general
[thread.req.lockable.general]
30.2.5.2
BasicLockable requirements
[thread.req.lockable.basic]
30.2.5.3
Lockable requirements
[thread.req.lockable.req]
30.2.5.4
TimedLockable requirements
[thread.req.lockable.timed]
30.2.6
decay_copy
[thread.decaycopy]
30.3
Threads
[thread.threads]
30.3.1
Class thread
[thread.thread.class]
30.3.1.1
Class thread::id
[thread.thread.id]
30.3.1.2
thread constructors
[thread.thread.constr]
30.3.1.3
thread destructor
[thread.thread.destr]
30.3.1.4
thread assignment
[thread.thread.assign]
30.3.1.5
thread members
[thread.thread.member]
30.3.1.6
thread static members
[thread.thread.static]
30.3.1.7
thread specialized algorithms
[thread.thread.algorithm]
30.3.2
Namespace this_thread
[thread.thread.this]
30.4
Mutual exclusion
[thread.mutex]
30.4.1
Mutex requirements
[thread.mutex.requirements]
30.4.1.1
In general
[thread.mutex.requirements.general]
30.4.1.2
Mutex types
[thread.mutex.requirements.mutex]
30.4.1.2.1
Class mutex
[thread.mutex.class]
30.4.1.2.2
Class recursive_mutex
[thread.mutex.recursive]
30.4.1.3
Timed mutex types
[thread.timedmutex.requirements]
30.4.1.3.1
Class timed_mutex
[thread.timedmutex.class]
30.4.1.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
30.4.2
Locks
[thread.lock]
30.4.2.1
Class template lock_guard
[thread.lock.guard]
30.4.2.2
Class template unique_lock
[thread.lock.unique]
30.4.2.2.1
unique_lock constructors, destructor, and assignment
[thread.lock.unique.cons]
30.4.2.2.2
unique_lock locking
[thread.lock.unique.locking]
30.4.2.2.3
unique_lock modifiers
[thread.lock.unique.mod]
30.4.2.2.4
unique_lock observers
[thread.lock.unique.obs]
30.4.3
Generic locking algorithms
[thread.lock.algorithm]
30.4.4
Call once
[thread.once]
30.4.4.1
Struct once_flag
[thread.once.onceflag]
30.4.4.2
Function call_once
[thread.once.callonce]
30.5
Condition variables
[thread.condition]
30.5.1
Class condition_variable
[thread.condition.condvar]
30.5.2
Class condition_variable_any
[thread.condition.condvarany]
30.6
Futures
[futures]
30.6.1
Overview
[futures.overview]
30.6.2
Error handling
[futures.errors]
30.6.3
Class future_error
[futures.future_error]
30.6.4
Shared state
[futures.state]
30.6.5
Class template promise
[futures.promise]
30.6.6
Class template future
[futures.unique_future]
30.6.7
Class template shared_future
[futures.shared_future]
30.6.8
Function template async
[futures.async]
30.6.9
Class template packaged_task
[futures.task]
30.6.9.1
packaged_task member functions
[futures.task.members]
30.6.9.2
packaged_task globals
[futures.task.nonmembers]
Annex A (informative) Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basic concepts
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Declarators
[gram.decl]
A.8
Classes
[gram.class]
A.9
Derived classes
[gram.derived]
A.10
Special member functions
[gram.special]
A.11
Overloading
[gram.over]
A.12
Templates
[gram.temp]
A.13
Exception handling
[gram.except]
A.14
Preprocessing directives
[gram.cpp]
Annex B (informative) Implementation quantities
[implimits]
Annex C (informative) Compatibility
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
Clause [lex]: lexical conventions
[diff.lex]
C.1.2
Clause [basic]: basic concepts
[diff.basic]
C.1.3
Clause [conv]: standard conversions
[diff.conv]
C.1.4
Clause [expr]: expressions
[diff.expr]
C.1.5
Clause [stmt.stmt]: statements
[diff.stat]
C.1.6
Clause [dcl.dcl]: declarations
[diff.dcl]
C.1.7
Clause [dcl.decl]: declarators
[diff.decl]
C.1.8
Clause [class]: classes
[diff.class]
C.1.9
Clause [special]: special member functions
[diff.special]
C.1.10
Clause [cpp]: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.2.2
Clause [expr]: expressions
[diff.cpp03.expr]
C.2.3
Clause [dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.2.4
Clause [dcl.decl]: declarators
[diff.cpp03.dcl.decl]
C.2.5
Clause [special]: special member functions
[diff.cpp03.special]
C.2.6
Clause [temp]: templates
[diff.cpp03.temp]
C.2.7
Clause [library]: library introduction
[diff.cpp03.library]
C.2.8
Clause [language.support]: language support library
[diff.cpp03.language.support]
C.2.9
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.2.10
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.2.11
Clause [strings]: strings library
[diff.cpp03.strings]
C.2.12
Clause [containers]: containers library
[diff.cpp03.containers]
C.2.13
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.2.14
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.2.15
Clause [input.output]: Input/output library
[diff.cpp03.input.output]
C.3
C standard library
[diff.library]
C.3.1
Modifications to headers
[diff.mods.to.headers]
C.3.2
Modifications to definitions
[diff.mods.to.definitions]
C.3.2.1
Types char16_t and char32_t
[diff.char16]
C.3.2.2
Type wchar_t
[diff.wchar.t]
C.3.2.3
Header <iso646.h>
[diff.header.iso646.h]
C.3.2.4
Macro NULL
[diff.null]
C.3.3
Modifications to declarations
[diff.mods.to.declarations]
C.3.4
Modifications to behavior
[diff.mods.to.behavior]
C.3.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.3.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative) Compatibility features
[depr]
D.1
Increment operator with bool operand
[depr.incr.bool]
D.2
register keyword
[depr.register]
D.3
Implicit declaration of copy functions
[depr.impldec]
D.4
Dynamic exception specifications
[depr.except.spec]
D.5
C standard library headers
[depr.c.headers]
D.6
Old iostreams members
[depr.ios.members]
D.7
char* streams
[depr.str.strstreams]
D.7.1
Class strstreambuf
[depr.strstreambuf]
D.7.1.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.7.1.2
Member functions
[depr.strstreambuf.members]
D.7.1.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.7.2
Class istrstream
[depr.istrstream]
D.7.2.1
istrstream constructors
[depr.istrstream.cons]
D.7.2.2
Member functions
[depr.istrstream.members]
D.7.3
Class ostrstream
[depr.ostrstream]
D.7.3.1
ostrstream constructors
[depr.ostrstream.cons]
D.7.3.2
Member functions
[depr.ostrstream.members]
D.7.4
Class strstream
[depr.strstream]
D.7.4.1
strstream constructors
[depr.strstream.cons]
D.7.4.2
strstream destructor
[depr.strstream.dest]
D.7.4.3
strstream operations
[depr.strstream.oper]
D.8
Function objects
[depr.function.objects]
D.8.1
Base
[depr.base]
D.8.2
Function adaptors
[depr.adaptors]
D.8.2.1
Adaptors for pointers to functions
[depr.function.pointer.adaptors]
D.8.2.2
Adaptors for pointers to members
[depr.member.pointer.adaptors]
D.9
Binders
[depr.lib.binders]
D.9.1
Class template binder1st
[depr.lib.binder.1st]
D.9.2
bind1st
[depr.lib.bind.1st]
D.9.3
Class template binder2nd
[depr.lib.binder.2nd]
D.9.4
bind2nd
[depr.lib.bind.2nd]
D.10
auto_ptr
[depr.auto.ptr]
D.10.1
Class template auto_ptr
[auto.ptr]
D.10.1.1
auto_ptr constructors
[auto.ptr.cons]
D.10.1.2
auto_ptr members
[auto.ptr.members]
D.10.1.3
auto_ptr conversions
[auto.ptr.conv]
D.11
Violating exception-specifications
[exception.unexpected]
D.11.1
Type unexpected_handler
[unexpected.handler]
D.11.2
set_unexpected
[set.unexpected]
D.11.3
get_unexpected
[get.unexpected]
D.11.4
unexpected
[unexpected]
Annex E (normative) Universal character names for identifier characters
[charname]
E.1
Ranges of characters allowed
[charname.allowed]
E.2
Ranges of characters disallowed initially
[charname.disallowed]
Index
[generalindex]
Index of library names
[libraryindex]
Index of implementation-defined behavior
[impldefindex]
[
edit
]
Contents
List of Tables
[tab]
List of Figures
[fig]
1
General
[intro]
1.1
Scope
[intro.scope]
1.2
Normative references
[intro.refs]
1.3
Terms and definitions
[intro.defs]
1.3.1
argument
[defns.argument]
1.3.2
argument
[defns.argument.macro]
1.3.3
argument
[defns.argument.throw]
1.3.4
argument
[defns.argument.templ]
1.3.5
conditionally-supported
[defns.cond.supp]
1.3.6
diagnostic message
[defns.diagnostic]
1.3.7
dynamic type
[defns.dynamic.type]
1.3.8
dynamic type
[defns.dynamic.type.prvalue]
1.3.9
ill-formed program
[defns.ill.formed]
1.3.10
implementation-defined behavior
[defns.impl.defined]
1.3.11
implementation limits
[defns.impl.limits]
1.3.12
locale-specific behavior
[defns.locale.specific]
1.3.13
multibyte character
[defns.multibyte]
1.3.14
parameter
[defns.parameter]
1.3.15
parameter
[defns.parameter.macro]
1.3.16
parameter
[defns.parameter.templ]
1.3.17
signature
[defns.signature]
1.3.18
signature
[defns.signature.templ]
1.3.19
signature
[defns.signature.spec]
1.3.20
signature
[defns.signature.member]
1.3.21
signature
[defns.signature.member.templ]
1.3.22
signature
[defns.signature.member.spec]
1.3.23
static type
[defns.static.type]
1.3.24
undefined behavior
[defns.undefined]
1.3.25
unspecified behavior
[defns.unspecified]
1.3.26
well-formed program
[defns.well.formed]
1.4
Implementation compliance
[intro.compliance]
1.5
Structure of this International Standard
[intro.structure]
1.6
Syntax notation
[syntax]
1.7
The C++ memory model
[intro.memory]
1.8
The C++ object model
[intro.object]
1.9
Program execution
[intro.execution]
1.10
Multi-threaded executions and data races
[intro.multithread]
1.11
Acknowledgments
[intro.ack]
2
Lexical conventions
[lex]
2.1
Separate translation
[lex.separate]
2.2
Phases of translation
[lex.phases]
2.3
Character sets
[lex.charset]
2.4
Trigraph sequences
[lex.trigraph]
2.5
Preprocessing tokens
[lex.pptoken]
2.6
Alternative tokens
[lex.digraph]
2.7
Tokens
[lex.token]
2.8
Comments
[lex.comment]
2.9
Header names
[lex.header]
2.10
Preprocessing numbers
[lex.ppnumber]
2.11
Identifiers
[lex.name]
2.12
Keywords
[lex.key]
2.13
Operators and punctuators
[lex.operators]
2.14
Literals
[lex.literal]
2.14.1
Kinds of literals
[lex.literal.kinds]
2.14.2
Integer literals
[lex.icon]
2.14.3
Character literals
[lex.ccon]
2.14.4
Floating literals
[lex.fcon]
2.14.5
String literals
[lex.string]
2.14.6
Boolean literals
[lex.bool]
2.14.7
Pointer literals
[lex.nullptr]
2.14.8
User-defined literals
[lex.ext]
3
Basic concepts
[basic]
3.1
Declarations and definitions
[basic.def]
3.2
One definition rule
[basic.def.odr]
3.3
Scope
[basic.scope]
3.3.1
Declarative regions and scopes
[basic.scope.declarative]
3.3.2
Point of declaration
[basic.scope.pdecl]
3.3.3
Block scope
[basic.scope.block]
3.3.4
Function prototype scope
[basic.scope.proto]
3.3.5
Function scope
[basic.funscope]
3.3.6
Namespace scope
[basic.scope.namespace]
3.3.7
Class scope
[basic.scope.class]
3.3.8
Enumeration scope
[basic.scope.enum]
3.3.9
Template parameter scope
[basic.scope.temp]
3.3.10
Name hiding
[basic.scope.hiding]
3.4
Name lookup
[basic.lookup]
3.4.1
Unqualified name lookup
[basic.lookup.unqual]
3.4.2
Argument-dependent name lookup
[basic.lookup.argdep]
3.4.3
Qualified name lookup
[basic.lookup.qual]
3.4.3.1
Class members
[class.qual]
3.4.3.2
Namespace members
[namespace.qual]
3.4.4
Elaborated type specifiers
[basic.lookup.elab]
3.4.5
Class member access
[basic.lookup.classref]
3.4.6
Using-directives and namespace aliases
[basic.lookup.udir]
3.5
Program and linkage
[basic.link]
3.6
Start and termination
[basic.start]
3.6.1
Main function
[basic.start.main]
3.6.2
Initialization of non-local variables
[basic.start.init]
3.6.3
Termination
[basic.start.term]
3.7
Storage duration
[basic.stc]
3.7.1
Static storage duration
[basic.stc.static]
3.7.2
Thread storage duration
[basic.stc.thread]
3.7.3
Automatic storage duration
[basic.stc.auto]
3.7.4
Dynamic storage duration
[basic.stc.dynamic]
3.7.4.1
Allocation functions
[basic.stc.dynamic.allocation]
3.7.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
3.7.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
3.7.5
Duration of subobjects
[basic.stc.inherit]
3.8
Object lifetime
[basic.life]
3.9
Types
[basic.types]
3.9.1
Fundamental types
[basic.fundamental]
3.9.2
Compound types
[basic.compound]
3.9.3
CV-qualifiers
[basic.type.qualifier]
3.10
Lvalues and rvalues
[basic.lval]
3.11
Alignment
[basic.align]
4
Standard conversions
[conv]
4.1
Lvalue-to-rvalue conversion
[conv.lval]
4.2
Array-to-pointer conversion
[conv.array]
4.3
Function-to-pointer conversion
[conv.func]
4.4
Qualification conversions
[conv.qual]
4.5
Integral promotions
[conv.prom]
4.6
Floating point promotion
[conv.fpprom]
4.7
Integral conversions
[conv.integral]
4.8
Floating point conversions
[conv.double]
4.9
Floating-integral conversions
[conv.fpint]
4.10
Pointer conversions
[conv.ptr]
4.11
Pointer to member conversions
[conv.mem]
4.12
Boolean conversions
[conv.bool]
4.13
Integer conversion rank
[conv.rank]
5
Expressions
[expr]
5.1
Primary expressions
[expr.prim]
5.1.1
General
[expr.prim.general]
5.1.2
Lambda expressions
[expr.prim.lambda]
5.2
Postfix expressions
[expr.post]
5.2.1
Subscripting
[expr.sub]
5.2.2
Function call
[expr.call]
5.2.3
Explicit type conversion (functional notation)
[expr.type.conv]
5.2.4
Pseudo destructor call
[expr.pseudo]
5.2.5
Class member access
[expr.ref]
5.2.6
Increment and decrement
[expr.post.incr]
5.2.7
Dynamic cast
[expr.dynamic.cast]
5.2.8
Type identification
[expr.typeid]
5.2.9
Static cast
[expr.static.cast]
5.2.10
Reinterpret cast
[expr.reinterpret.cast]
5.2.11
Const cast
[expr.const.cast]
5.3
Unary expressions
[expr.unary]
5.3.1
Unary operators
[expr.unary.op]
5.3.2
Increment and decrement
[expr.pre.incr]
5.3.3
Sizeof
[expr.sizeof]
5.3.4
New
[expr.new]
5.3.5
Delete
[expr.delete]
5.3.6
Alignof
[expr.alignof]
5.3.7
noexcept operator
[expr.unary.noexcept]
5.4
Explicit type conversion (cast notation)
[expr.cast]
5.5
Pointer-to-member operators
[expr.mptr.oper]
5.6
Multiplicative operators
[expr.mul]
5.7
Additive operators
[expr.add]
5.8
Shift operators
[expr.shift]
5.9
Relational operators
[expr.rel]
5.10
Equality operators
[expr.eq]
5.11
Bitwise AND operator
[expr.bit.and]
5.12
Bitwise exclusive OR operator
[expr.xor]
5.13
Bitwise inclusive OR operator
[expr.or]
5.14
Logical AND operator
[expr.log.and]
5.15
Logical OR operator
[expr.log.or]
5.16
Conditional operator
[expr.cond]
5.17
Assignment and compound assignment operators
[expr.ass]
5.18
Comma operator
[expr.comma]
5.19
Constant expressions
[expr.const]
6
Statements
[stmt.stmt]
6.1
Labeled statement
[stmt.label]
6.2
Expression statement
[stmt.expr]
6.3
Compound statement or block
[stmt.block]
6.4
Selection statements
[stmt.select]
6.4.1
The if statement
[stmt.if]
6.4.2
The switch statement
[stmt.switch]
6.5
Iteration statements
[stmt.iter]
6.5.1
The while statement
[stmt.while]
6.5.2
The do statement
[stmt.do]
6.5.3
The for statement
[stmt.for]
6.5.4
The range-based for statement
[stmt.ranged]
6.6
Jump statements
[stmt.jump]
6.6.1
The break statement
[stmt.break]
6.6.2
The continue statement
[stmt.cont]
6.6.3
The return statement
[stmt.return]
6.6.4
The goto statement
[stmt.goto]
6.7
Declaration statement
[stmt.dcl]
6.8
Ambiguity resolution
[stmt.ambig]
7
Declarations
[dcl.dcl]
7.1
Specifiers
[dcl.spec]
7.1.1
Storage class specifiers
[dcl.stc]
7.1.2
Function specifiers
[dcl.fct.spec]
7.1.3
The typedef specifier
[dcl.typedef]
7.1.4
The friend specifier
[dcl.friend]
7.1.5
The constexpr specifier
[dcl.constexpr]
7.1.6
Type specifiers
[dcl.type]
7.1.6.1
The cv-qualifiers
[dcl.type.cv]
7.1.6.2
Simple type specifiers
[dcl.type.simple]
7.1.6.3
Elaborated type specifiers
[dcl.type.elab]
7.1.6.4
auto specifier
[dcl.spec.auto]
7.2
Enumeration declarations
[dcl.enum]
7.3
Namespaces
[basic.namespace]
7.3.1
Namespace definition
[namespace.def]
7.3.1.1
Unnamed namespaces
[namespace.unnamed]
7.3.1.2
Namespace member definitions
[namespace.memdef]
7.3.2
Namespace alias
[namespace.alias]
7.3.3
The using declaration
[namespace.udecl]
7.3.4
Using directive
[namespace.udir]
7.4
The asm declaration
[dcl.asm]
7.5
Linkage specifications
[dcl.link]
7.6
Attributes
[dcl.attr]
7.6.1
Attribute syntax and semantics
[dcl.attr.grammar]
7.6.2
Alignment specifier
[dcl.align]
7.6.3
Noreturn attribute
[dcl.attr.noreturn]
7.6.4
Carries dependency attribute
[dcl.attr.depend]
7.6.5
Deprecated attribute
[dcl.attr.deprecated]
8
Declarators
[dcl.decl]
8.1
Type names
[dcl.name]
8.2
Ambiguity resolution
[dcl.ambig.res]
8.3
Meaning of declarators
[dcl.meaning]
8.3.1
Pointers
[dcl.ptr]
8.3.2
References
[dcl.ref]
8.3.3
Pointers to members
[dcl.mptr]
8.3.4
Arrays
[dcl.array]
8.3.5
Functions
[dcl.fct]
8.3.6
Default arguments
[dcl.fct.default]
8.4
Function definitions
[dcl.fct.def]
8.4.1
In general
[dcl.fct.def.general]
8.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
8.4.3
Deleted definitions
[dcl.fct.def.delete]
8.5
Initializers
[dcl.init]
8.5.1
Aggregates
[dcl.init.aggr]
8.5.2
Character arrays
[dcl.init.string]
8.5.3
References
[dcl.init.ref]
8.5.4
List-initialization
[dcl.init.list]
9
Classes
[class]
9.1
Class names
[class.name]
9.2
Class members
[class.mem]
9.3
Member functions
[class.mfct]
9.3.1
Nonstatic member functions
[class.mfct.non-static]
9.3.2
The this pointer
[class.this]
9.4
Static members
[class.static]
9.4.1
Static member functions
[class.static.mfct]
9.4.2
Static data members
[class.static.data]
9.5
Unions
[class.union]
9.6
Bit-fields
[class.bit]
9.7
Nested class declarations
[class.nest]
9.8
Local class declarations
[class.local]
9.9
Nested type names
[class.nested.type]
10
Derived classes
[class.derived]
10.1
Multiple base classes
[class.mi]
10.2
Member name lookup
[class.member.lookup]
10.3
Virtual functions
[class.virtual]
10.4
Abstract classes
[class.abstract]
11
Member access control
[class.access]
11.1
Access specifiers
[class.access.spec]
11.2
Accessibility of base classes and base class members
[class.access.base]
11.3
Friends
[class.friend]
11.4
Protected member access
[class.protected]
11.5
Access to virtual functions
[class.access.virt]
11.6
Multiple access
[class.paths]
11.7
Nested classes
[class.access.nest]
12
Special member functions
[special]
12.1
Constructors
[class.ctor]
12.2
Temporary objects
[class.temporary]
12.3
Conversions
[class.conv]
12.3.1
Conversion by constructor
[class.conv.ctor]
12.3.2
Conversion functions
[class.conv.fct]
12.4
Destructors
[class.dtor]
12.5
Free store
[class.free]
12.6
Initialization
[class.init]
12.6.1
Explicit initialization
[class.expl.init]
12.6.2
Initializing bases and members
[class.base.init]
12.7
Construction and destruction
[class.cdtor]
12.8
Copying and moving class objects
[class.copy]
12.9
Inheriting constructors
[class.inhctor]
13
Overloading
[over]
13.1
Overloadable declarations
[over.load]
13.2
Declaration matching
[over.dcl]
13.3
Overload resolution
[over.match]
13.3.1
Candidate functions and argument lists
[over.match.funcs]
13.3.1.1
Function call syntax
[over.match.call]
13.3.1.1.1
Call to named function
[over.call.func]
13.3.1.1.2
Call to object of class type
[over.call.object]
13.3.1.2
Operators in expressions
[over.match.oper]
13.3.1.3
Initialization by constructor
[over.match.ctor]
13.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
13.3.1.5
Initialization by conversion function
[over.match.conv]
13.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
13.3.1.7
Initialization by list-initialization
[over.match.list]
13.3.2
Viable functions
[over.match.viable]
13.3.3
Best viable function
[over.match.best]
13.3.3.1
Implicit conversion sequences
[over.best.ics]
13.3.3.1.1
Standard conversion sequences
[over.ics.scs]
13.3.3.1.2
User-defined conversion sequences
[over.ics.user]
13.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
13.3.3.1.4
Reference binding
[over.ics.ref]
13.3.3.1.5
List-initialization sequence
[over.ics.list]
13.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
13.4
Address of overloaded function
[over.over]
13.5
Overloaded operators
[over.oper]
13.5.1
Unary operators
[over.unary]
13.5.2
Binary operators
[over.binary]
13.5.3
Assignment
[over.ass]
13.5.4
Function call
[over.call]
13.5.5
Subscripting
[over.sub]
13.5.6
Class member access
[over.ref]
13.5.7
Increment and decrement
[over.inc]
13.5.8
User-defined literals
[over.literal]
13.6
Built-in operators
[over.built]
14
Templates
[temp]
14.1
Template parameters
[temp.param]
14.2
Names of template specializations
[temp.names]
14.3
Template arguments
[temp.arg]
14.3.1
Template type arguments
[temp.arg.type]
14.3.2
Template non-type arguments
[temp.arg.nontype]
14.3.3
Template template arguments
[temp.arg.template]
14.4
Type equivalence
[temp.type]
14.5
Template declarations
[temp.decls]
14.5.1
Class templates
[temp.class]
14.5.1.1
Member functions of class templates
[temp.mem.func]
14.5.1.2
Member classes of class templates
[temp.mem.class]
14.5.1.3
Static data members of class templates
[temp.static]
14.5.1.4
Enumeration members of class templates
[temp.mem.enum]
14.5.2
Member templates
[temp.mem]
14.5.3
Variadic templates
[temp.variadic]
14.5.4
Friends
[temp.friend]
14.5.5
Class template partial specializations
[temp.class.spec]
14.5.5.1
Matching of class template partial specializations
[temp.class.spec.match]
14.5.5.2
Partial ordering of class template specializations
[temp.class.order]
14.5.5.3
Members of class template specializations
[temp.class.spec.mfunc]
14.5.6
Function templates
[temp.fct]
14.5.6.1
Function template overloading
[temp.over.link]
14.5.6.2
Partial ordering of function templates
[temp.func.order]
14.5.7
Alias templates
[temp.alias]
14.6
Name resolution
[temp.res]
14.6.1
Locally declared names
[temp.local]
14.6.2
Dependent names
[temp.dep]
14.6.2.1
Dependent types
[temp.dep.type]
14.6.2.2
Type-dependent expressions
[temp.dep.expr]
14.6.2.3
Value-dependent expressions
[temp.dep.constexpr]
14.6.2.4
Dependent template arguments
[temp.dep.temp]
14.6.3
Non-dependent names
[temp.nondep]
14.6.4
Dependent name resolution
[temp.dep.res]
14.6.4.1
Point of instantiation
[temp.point]
14.6.4.2
Candidate functions
[temp.dep.candidate]
14.6.5
Friend names declared within a class template
[temp.inject]
14.7
Template instantiation and specialization
[temp.spec]
14.7.1
Implicit instantiation
[temp.inst]
14.7.2
Explicit instantiation
[temp.explicit]
14.7.3
Explicit specialization
[temp.expl.spec]
14.8
Function template specializations
[temp.fct.spec]
14.8.1
Explicit template argument specification
[temp.arg.explicit]
14.8.2
Template argument deduction
[temp.deduct]
14.8.2.1
Deducing template arguments from a function call
[temp.deduct.call]
14.8.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
14.8.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
14.8.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
14.8.2.5
Deducing template arguments from a type
[temp.deduct.type]
14.8.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
14.8.3
Overload resolution
[temp.over]
15
Exception handling
[except]
15.1
Throwing an exception
[except.throw]
15.2
Constructors and destructors
[except.ctor]
15.3
Handling an exception
[except.handle]
15.4
Exception specifications
[except.spec]
15.5
Special functions
[except.special]
15.5.1
The std::terminate() function
[except.terminate]
15.5.2
The std::unexpected() function
[except.unexpected]
15.5.3
The std::uncaught_exception() function
[except.uncaught]
16
Preprocessing directives
[cpp]
16.1
Conditional inclusion
[cpp.cond]
16.2
Source file inclusion
[cpp.include]
16.3
Macro replacement
[cpp.replace]
16.3.1
Argument substitution
[cpp.subst]
16.3.2
The # operator
[cpp.stringize]
16.3.3
The ## operator
[cpp.concat]
16.3.4
Rescanning and further replacement
[cpp.rescan]
16.3.5
Scope of macro definitions
[cpp.scope]
16.4
Line control
[cpp.line]
16.5
Error directive
[cpp.error]
16.6
Pragma directive
[cpp.pragma]
16.7
Null directive
[cpp.null]
16.8
Predefined macro names
[cpp.predefined]
16.9
Pragma operator
[cpp.pragma.op]
17
Library introduction
[library]
17.1
General
[library.general]
17.2
The C standard library
[library.c]
17.3
Definitions
[definitions]
17.3.1
arbitrary-positional stream
[defns.arbitrary.stream]
17.3.2
block
[defns.block]
17.3.3
blocked thread
[defns.blocked]
17.3.4
character
[defns.character]
17.3.5
character container type
[defns.character.container]
17.3.6
comparison function
[defns.comparison]
17.3.7
component
[defns.component]
17.3.8
deadlock
[defns.deadlock]
17.3.9
default behavior
[defns.default.behavior.impl]
17.3.10
default behavior
[defns.default.behavior.func]
17.3.11
handler function
[defns.handler]
17.3.12
iostream class templates
[defns.iostream.templates]
17.3.13
modifier function
[defns.modifier]
17.3.14
move construction
[defns.move.constr]
17.3.15
move assignment
[defns.move.assign]
17.3.16
object state
[defns.obj.state]
17.3.17
NTCTS
[defns.ntcts]
17.3.18
observer function
[defns.observer]
17.3.19
referenceable type
[defns.referenceable]
17.3.20
replacement function
[defns.replacement]
17.3.21
repositional stream
[defns.repositional.stream]
17.3.22
required behavior
[defns.required.behavior]
17.3.23
reserved function
[defns.reserved.function]
17.3.24
stable algorithm
[defns.stable]
17.3.25
traits class
[defns.traits]
17.3.26
unblock
[defns.unblock]
17.3.27
valid but unspecified state
[defns.valid]
17.4
Additional definitions
[defns.additional]
17.5
Method of description (Informative)
[description]
17.5.1
Structure of each clause
[structure]
17.5.1.1
Elements
[structure.elements]
17.5.1.2
Summary
[structure.summary]
17.5.1.3
Requirements
[structure.requirements]
17.5.1.4
Detailed specifications
[structure.specifications]
17.5.1.5
C library
[structure.see.also]
17.5.2
Other conventions
[conventions]
17.5.2.1
Type descriptions
[type.descriptions]
17.5.2.1.1
General
[type.descriptions.general]
17.5.2.1.2
Enumerated types
[enumerated.types]
17.5.2.1.3
Bitmask types
[bitmask.types]
17.5.2.1.4
Character sequences
[character.seq]
17.5.2.1.4.1
Byte strings
[byte.strings]
17.5.2.1.4.2
Multibyte strings
[multibyte.strings]
17.5.2.2
Functions within classes
[functions.within.classes]
17.5.2.3
Private members
[objects.within.classes]
17.6
Library-wide requirements
[requirements]
17.6.1
Library contents and organization
[organization]
17.6.1.1
Library contents
[contents]
17.6.1.2
Headers
[headers]
17.6.1.3
Freestanding implementations
[compliance]
17.6.2
Using the library
[using]
17.6.2.1
Overview
[using.overview]
17.6.2.2
Headers
[using.headers]
17.6.2.3
Linkage
[using.linkage]
17.6.3
Requirements on types and expressions
[utility.requirements]
17.6.3.1
Template argument requirements
[utility.arg.requirements]
17.6.3.2
Swappable requirements
[swappable.requirements]
17.6.3.3
NullablePointer requirements
[nullablepointer.requirements]
17.6.3.4
Hash requirements
[hash.requirements]
17.6.3.5
Allocator requirements
[allocator.requirements]
17.6.4
Constraints on programs
[constraints]
17.6.4.1
Overview
[constraints.overview]
17.6.4.2
Namespace use
[namespace.constraints]
17.6.4.2.1
Namespace std
[namespace.std]
17.6.4.2.2
Namespace posix
[namespace.posix]
17.6.4.3
Reserved names
[reserved.names]
17.6.4.3.1
Macro names
[macro.names]
17.6.4.3.2
Global names
[global.names]
17.6.4.3.3
External linkage
[extern.names]
17.6.4.3.4
Types
[extern.types]
17.6.4.3.5
User-defined literal suffixes
[usrlit.suffix]
17.6.4.4
Headers
[alt.headers]
17.6.4.5
Derived classes
[derived.classes]
17.6.4.6
Replacement functions
[replacement.functions]
17.6.4.7
Handler functions
[handler.functions]
17.6.4.8
Other functions
[res.on.functions]
17.6.4.9
Function arguments
[res.on.arguments]
17.6.4.10
Shared objects and the library
[res.on.objects]
17.6.4.11
Requires paragraph
[res.on.required]
17.6.5
Conforming implementations
[conforming]
17.6.5.1
Overview
[conforming.overview]
17.6.5.2
Headers
[res.on.headers]
17.6.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
17.6.5.4
Global and non-member functions
[global.functions]
17.6.5.5
Member functions
[member.functions]
17.6.5.6
constexpr functions and constructors
[constexpr.functions]
17.6.5.7
Requirements for stable algorithms
[algorithm.stable]
17.6.5.8
Reentrancy
[reentrancy]
17.6.5.9
Data race avoidance
[res.on.data.races]
17.6.5.10
Protection within classes
[protection.within.classes]
17.6.5.11
Derived classes
[derivation]
17.6.5.12
Restrictions on exception handling
[res.on.exception.handling]
17.6.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
17.6.5.14
Value of error codes
[value.error.codes]
17.6.5.15
Moved-from state of library types
[lib.types.movedfrom]
18
Language support library
[language.support]
18.1
General
[support.general]
18.2
Types
[support.types]
18.3
Implementation properties
[support.limits]
18.3.1
In general
[support.limits.general]
18.3.2
Numeric limits
[limits]
18.3.2.1
Class template numeric_limits
[limits.numeric]
18.3.2.2
Header <limits> synopsis
[limits.syn]
18.3.2.3
Class template numeric_limits
[numeric.limits]
18.3.2.4
numeric_limits members
[numeric.limits.members]
18.3.2.5
Type float_round_style
[round.style]
18.3.2.6
Type float_denorm_style
[denorm.style]
18.3.2.7
numeric_limits specializations
[numeric.special]
18.3.3
C library
[c.limits]
18.4
Integer types
[cstdint]
18.4.1
Header <cstdint> synopsis
[cstdint.syn]
18.5
Start and termination
[support.start.term]
18.6
Dynamic memory management
[support.dynamic]
18.6.1
Storage allocation and deallocation
[new.delete]
18.6.1.1
Single-object forms
[new.delete.single]
18.6.1.2
Array forms
[new.delete.array]
18.6.1.3
Placement forms
[new.delete.placement]
18.6.1.4
Data races
[new.delete.dataraces]
18.6.2
Storage allocation errors
[alloc.errors]
18.6.2.1
Class bad_alloc
[bad.alloc]
18.6.2.2
Class bad_array_new_length
[new.badlength]
18.6.2.3
Type new_handler
[new.handler]
18.6.2.4
set_new_handler
[set.new.handler]
18.6.2.5
get_new_handler
[get.new.handler]
18.7
Type identification
[support.rtti]
18.7.1
Class type_info
[type.info]
18.7.2
Class bad_cast
[bad.cast]
18.7.3
Class bad_typeid
[bad.typeid]
18.8
Exception handling
[support.exception]
18.8.1
Class exception
[exception]
18.8.2
Class bad_exception
[bad.exception]
18.8.3
Abnormal termination
[exception.terminate]
18.8.3.1
Type terminate_handler
[terminate.handler]
18.8.3.2
set_terminate
[set.terminate]
18.8.3.3
get_terminate
[get.terminate]
18.8.3.4
terminate
[terminate]
18.8.4
uncaught_exception
[uncaught]
18.8.5
Exception propagation
[propagation]
18.8.6
nested_exception
[except.nested]
18.9
Initializer lists
[support.initlist]
18.9.1
Initializer list constructors
[support.initlist.cons]
18.9.2
Initializer list access
[support.initlist.access]
18.9.3
Initializer list range access
[support.initlist.range]
18.10
Other runtime support
[support.runtime]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
Class logic_error
[logic.error]
19.2.2
Class domain_error
[domain.error]
19.2.3
Class invalid_argument
[invalid.argument]
19.2.4
Class length_error
[length.error]
19.2.5
Class out_of_range
[out.of.range]
19.2.6
Class runtime_error
[runtime.error]
19.2.7
Class range_error
[range.error]
19.2.8
Class overflow_error
[overflow.error]
19.2.9
Class underflow_error
[underflow.error]
19.3
Assertions
[assertions]
19.4
Error numbers
[errno]
19.5
System error support
[syserr]
19.5.1
Class error_category
[syserr.errcat]
19.5.1.1
Class error_category overview
[syserr.errcat.overview]
19.5.1.2
Class error_category virtual members
[syserr.errcat.virtuals]
19.5.1.3
Class error_category non-virtual members
[syserr.errcat.nonvirtuals]
19.5.1.4
Program defined classes derived from error_category
[syserr.errcat.derived]
19.5.1.5
Error category objects
[syserr.errcat.objects]
19.5.2
Class error_code
[syserr.errcode]
19.5.2.1
Class error_code overview
[syserr.errcode.overview]
19.5.2.2
Class error_code constructors
[syserr.errcode.constructors]
19.5.2.3
Class error_code modifiers
[syserr.errcode.modifiers]
19.5.2.4
Class error_code observers
[syserr.errcode.observers]
19.5.2.5
Class error_code non-member functions
[syserr.errcode.nonmembers]
19.5.3
Class error_condition
[syserr.errcondition]
19.5.3.1
Class error_condition overview
[syserr.errcondition.overview]
19.5.3.2
Class error_condition constructors
[syserr.errcondition.constructors]
19.5.3.3
Class error_condition modifiers
[syserr.errcondition.modifiers]
19.5.3.4
Class error_condition observers
[syserr.errcondition.observers]
19.5.3.5
Class error_condition non-member functions
[syserr.errcondition.nonmembers]
19.5.4
Comparison operators
[syserr.compare]
19.5.5
System error hash support
[syserr.hash]
19.5.6
Class system_error
[syserr.syserr]
19.5.6.1
Class system_error overview
[syserr.syserr.overview]
19.5.6.2
Class system_error members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Operators
[operators]
20.2.2
swap
[utility.swap]
20.2.3
exchange
[utility.exchange]
20.2.4
forward/move helpers
[forward]
20.2.5
Function template declval
[declval]
20.3
Pairs
[pairs]
20.3.1
In general
[pairs.general]
20.3.2
Class template pair
[pairs.pair]
20.3.3
Specialized algorithms
[pairs.spec]
20.3.4
Tuple-like access to pair
[pair.astuple]
20.3.5
Piecewise construction
[pair.piecewise]
20.4
Tuples
[tuple]
20.4.1
In general
[tuple.general]
20.4.2
Class template tuple
[tuple.tuple]
20.4.2.1
Construction
[tuple.cnstr]
20.4.2.2
Assignment
[tuple.assign]
20.4.2.3
swap
[tuple.swap]
20.4.2.4
Tuple creation functions
[tuple.creation]
20.4.2.5
Tuple helper classes
[tuple.helper]
20.4.2.6
Element access
[tuple.elem]
20.4.2.7
Relational operators
[tuple.rel]
20.4.2.8
Tuple traits
[tuple.traits]
20.4.2.9
Tuple specialized algorithms
[tuple.special]
20.5
Compile-time integer sequences
[intseq]
20.5.1
In general
[intseq.general]
20.5.2
Class template integer_sequence
[intseq.intseq]
20.5.3
Alias template make_integer_sequence
[intseq.make]
20.6
Class template bitset
[template.bitset]
20.6.1
bitset constructors
[bitset.cons]
20.6.2
bitset members
[bitset.members]
20.6.3
bitset hash support
[bitset.hash]
20.6.4
bitset operators
[bitset.operators]
20.7
Memory
[memory]
20.7.1
In general
[memory.general]
20.7.2
Header <memory> synopsis
[memory.syn]
20.7.3
Pointer traits
[pointer.traits]
20.7.3.1
Pointer traits member types
[pointer.traits.types]
20.7.3.2
Pointer traits member functions
[pointer.traits.functions]
20.7.4
Pointer safety
[util.dynamic.safety]
20.7.5
Align
[ptr.align]
20.7.6
Allocator argument tag
[allocator.tag]
20.7.7
uses_allocator
[allocator.uses]
20.7.7.1
uses_allocator trait
[allocator.uses.trait]
20.7.7.2
uses-allocator construction
[allocator.uses.construction]
20.7.8
Allocator traits
[allocator.traits]
20.7.8.1
Allocator traits member types
[allocator.traits.types]
20.7.8.2
Allocator traits static member functions
[allocator.traits.members]
20.7.9
The default allocator
[default.allocator]
20.7.9.1
allocator members
[allocator.members]
20.7.9.2
allocator globals
[allocator.globals]
20.7.10
Raw storage iterator
[storage.iterator]
20.7.11
Temporary buffers
[temporary.buffer]
20.7.12
Specialized algorithms
[specialized.algorithms]
20.7.12.1
addressof
[specialized.addressof]
20.7.12.2
uninitialized_copy
[uninitialized.copy]
20.7.12.3
uninitialized_fill
[uninitialized.fill]
20.7.12.4
uninitialized_fill_n
[uninitialized.fill.n]
20.7.13
C library
[c.malloc]
20.8
Smart pointers
[smartptr]
20.8.1
Class template unique_ptr
[unique.ptr]
20.8.1.1
Default deleters
[unique.ptr.dltr]
20.8.1.1.1
In general
[unique.ptr.dltr.general]
20.8.1.1.2
default_delete
[unique.ptr.dltr.dflt]
20.8.1.1.3
default_delete<T[]>
[unique.ptr.dltr.dflt1]
20.8.1.2
unique_ptr for single objects
[unique.ptr.single]
20.8.1.2.1
unique_ptr constructors
[unique.ptr.single.ctor]
20.8.1.2.2
unique_ptr destructor
[unique.ptr.single.dtor]
20.8.1.2.3
unique_ptr assignment
[unique.ptr.single.asgn]
20.8.1.2.4
unique_ptr observers
[unique.ptr.single.observers]
20.8.1.2.5
unique_ptr modifiers
[unique.ptr.single.modifiers]
20.8.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.8.1.3.1
unique_ptr constructors
[unique.ptr.runtime.ctor]
20.8.1.3.2
unique_ptr observers
[unique.ptr.runtime.observers]
20.8.1.3.3
unique_ptr modifiers
[unique.ptr.runtime.modifiers]
20.8.1.4
unique_ptr creation
[unique.ptr.create]
20.8.1.5
unique_ptr specialized algorithms
[unique.ptr.special]
20.8.2
Shared-ownership pointers
[util.smartptr]
20.8.2.1
Class bad_weak_ptr
[util.smartptr.weakptr]
20.8.2.2
Class template shared_ptr
[util.smartptr.shared]
20.8.2.2.1
shared_ptr constructors
[util.smartptr.shared.const]
20.8.2.2.2
shared_ptr destructor
[util.smartptr.shared.dest]
20.8.2.2.3
shared_ptr assignment
[util.smartptr.shared.assign]
20.8.2.2.4
shared_ptr modifiers
[util.smartptr.shared.mod]
20.8.2.2.5
shared_ptr observers
[util.smartptr.shared.obs]
20.8.2.2.6
shared_ptr creation
[util.smartptr.shared.create]
20.8.2.2.7
shared_ptr comparison
[util.smartptr.shared.cmp]
20.8.2.2.8
shared_ptr specialized algorithms
[util.smartptr.shared.spec]
20.8.2.2.9
shared_ptr casts
[util.smartptr.shared.cast]
20.8.2.2.10
get_deleter
[util.smartptr.getdeleter]
20.8.2.2.11
shared_ptr I/O
[util.smartptr.shared.io]
20.8.2.3
Class template weak_ptr
[util.smartptr.weak]
20.8.2.3.1
weak_ptr constructors
[util.smartptr.weak.const]
20.8.2.3.2
weak_ptr destructor
[util.smartptr.weak.dest]
20.8.2.3.3
weak_ptr assignment
[util.smartptr.weak.assign]
20.8.2.3.4
weak_ptr modifiers
[util.smartptr.weak.mod]
20.8.2.3.5
weak_ptr observers
[util.smartptr.weak.obs]
20.8.2.3.6
weak_ptr specialized algorithms
[util.smartptr.weak.spec]
20.8.2.4
Class template owner_less
[util.smartptr.ownerless]
20.8.2.5
Class template enable_shared_from_this
[util.smartptr.enab]
20.8.2.6
shared_ptr atomic access
[util.smartptr.shared.atomic]
20.8.2.7
Smart pointer hash support
[util.smartptr.hash]
20.9
Function objects
[function.objects]
20.9.1
Definitions
[func.def]
20.9.2
Requirements
[func.require]
20.9.3
Class template reference_wrapper
[refwrap]
20.9.3.1
reference_wrapper construct/copy/destroy
[refwrap.const]
20.9.3.2
reference_wrapper assignment
[refwrap.assign]
20.9.3.3
reference_wrapper access
[refwrap.access]
20.9.3.4
reference_wrapper invocation
[refwrap.invoke]
20.9.3.5
reference_wrapper helper functions
[refwrap.helpers]
20.9.4
Arithmetic operations
[arithmetic.operations]
20.9.5
Comparisons
[comparisons]
20.9.6
Logical operations
[logical.operations]
20.9.7
Bitwise operations
[bitwise.operations]
20.9.8
Negators
[negators]
20.9.9
Function object binders
[func.bind]
20.9.9.1
Class template is_bind_expression
[func.bind.isbind]
20.9.9.2
Class template is_placeholder
[func.bind.isplace]
20.9.9.3
Function template bind
[func.bind.bind]
20.9.9.4
Placeholders
[func.bind.place]
20.9.10
Function template mem_fn
[func.memfn]
20.9.11
Polymorphic function wrappers
[func.wrap]
20.9.11.1
Class bad_function_call
[func.wrap.badcall]
20.9.11.1.1
bad_function_call constructor
[func.wrap.badcall.const]
20.9.11.2
Class template function
[func.wrap.func]
20.9.11.2.1
function construct/copy/destroy
[func.wrap.func.con]
20.9.11.2.2
function modifiers
[func.wrap.func.mod]
20.9.11.2.3
function capacity
[func.wrap.func.cap]
20.9.11.2.4
function invocation
[func.wrap.func.inv]
20.9.11.2.5
function target access
[func.wrap.func.targ]
20.9.11.2.6
null pointer comparison operators
[func.wrap.func.nullptr]
20.9.11.2.7
specialized algorithms
[func.wrap.func.alg]
20.9.12
Class template hash
[unord.hash]
20.10
Metaprogramming and type traits
[meta]
20.10.1
Requirements
[meta.rqmts]
20.10.2
Header <type_traits> synopsis
[meta.type.synop]
20.10.3
Helper classes
[meta.help]
20.10.4
Unary type traits
[meta.unary]
20.10.4.1
Primary type categories
[meta.unary.cat]
20.10.4.2
Composite type traits
[meta.unary.comp]
20.10.4.3
Type properties
[meta.unary.prop]
20.10.5
Type property queries
[meta.unary.prop.query]
20.10.6
Relationships between types
[meta.rel]
20.10.7
Transformations between types
[meta.trans]
20.10.7.1
Const-volatile modifications
[meta.trans.cv]
20.10.7.2
Reference modifications
[meta.trans.ref]
20.10.7.3
Sign modifications
[meta.trans.sign]
20.10.7.4
Array modifications
[meta.trans.arr]
20.10.7.5
Pointer modifications
[meta.trans.ptr]
20.10.7.6
Other transformations
[meta.trans.other]
20.11
Compile-time rational arithmetic
[ratio]
20.11.1
In general
[ratio.general]
20.11.2
Header <ratio> synopsis
[ratio.syn]
20.11.3
Class template ratio
[ratio.ratio]
20.11.4
Arithmetic on ratios
[ratio.arithmetic]
20.11.5
Comparison of ratios
[ratio.comparison]
20.11.6
SI types for ratio
[ratio.si]
20.12
Time utilities
[time]
20.12.1
In general
[time.general]
20.12.2
Header <chrono> synopsis
[time.syn]
20.12.3
Clock requirements
[time.clock.req]
20.12.4
Time-related traits
[time.traits]
20.12.4.1
treat_as_floating_point
[time.traits.is_fp]
20.12.4.2
duration_values
[time.traits.duration_values]
20.12.4.3
Specializations of common_type
[time.traits.specializations]
20.12.5
Class template duration
[time.duration]
20.12.5.1
duration constructors
[time.duration.cons]
20.12.5.2
duration observer
[time.duration.observer]
20.12.5.3
duration arithmetic
[time.duration.arithmetic]
20.12.5.4
duration special values
[time.duration.special]
20.12.5.5
duration non-member arithmetic
[time.duration.nonmember]
20.12.5.6
duration comparisons
[time.duration.comparisons]
20.12.5.7
duration_cast
[time.duration.cast]
20.12.5.8
Suffixes for duration literals
[time.duration.literals]
20.12.6
Class template time_point
[time.point]
20.12.6.1
time_point constructors
[time.point.cons]
20.12.6.2
time_point observer
[time.point.observer]
20.12.6.3
time_point arithmetic
[time.point.arithmetic]
20.12.6.4
time_point special values
[time.point.special]
20.12.6.5
time_point non-member arithmetic
[time.point.nonmember]
20.12.6.6
time_point comparisons
[time.point.comparisons]
20.12.6.7
time_point_cast
[time.point.cast]
20.12.7
Clocks
[time.clock]
20.12.7.1
Class system_clock
[time.clock.system]
20.12.7.2
Class steady_clock
[time.clock.steady]
20.12.7.3
Class high_resolution_clock
[time.clock.hires]
20.12.8
Date and time functions
[date.time]
20.13
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.13.1
Header <scoped_allocator> synopsis
[allocator.adaptor.syn]
20.13.2
Scoped allocator adaptor member types
[allocator.adaptor.types]
20.13.3
Scoped allocator adaptor constructors
[allocator.adaptor.cnstr]
20.13.4
Scoped allocator adaptor members
[allocator.adaptor.members]
20.13.5
Scoped allocator operators
[scoped.adaptor.operators]
20.14
Class type_index
[type.index]
20.14.1
Header <typeindex> synopsis
[type.index.synopsis]
20.14.2
type_index overview
[type.index.overview]
20.14.3
type_index members
[type.index.members]
20.14.4
Hash support
[type.index.hash]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
Character traits requirements
[char.traits.require]
21.2.2
traits typedefs
[char.traits.typedefs]
21.2.3
char_traits specializations
[char.traits.specializations]
21.2.3.1
struct char_traits<char>
[char.traits.specializations.char]
21.2.3.2
struct char_traits<char16_t>
[char.traits.specializations.char16_t]
21.2.3.3
struct char_traits<char32_t>
[char.traits.specializations.char32_t]
21.2.3.4
struct char_traits<wchar_t>
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.4
Class template basic_string
[basic.string]
21.4.1
basic_string general requirements
[string.require]
21.4.2
basic_string constructors and assignment operators
[string.cons]
21.4.3
basic_string iterator support
[string.iterators]
21.4.4
basic_string capacity
[string.capacity]
21.4.5
basic_string element access
[string.access]
21.4.6
basic_string modifiers
[string.modifiers]
21.4.6.1
[[CppStd:./string::op+=|basic_string::operator+= [string::op+=]]]
[./string::op+=]
21.4.6.2
[[CppStd:./string::append|basic_string::append [string::append]]]
[./string::append]
21.4.6.3
[[CppStd:./string::assign|basic_string::assign [string::assign]]]
[./string::assign]
21.4.6.4
[[CppStd:./string::insert|basic_string::insert [string::insert]]]
[./string::insert]
21.4.6.5
[[CppStd:./string::erase|basic_string::erase [string::erase]]]
[./string::erase]
21.4.6.6
[[CppStd:./string::replace|basic_string::replace [string::replace]]]
[./string::replace]
21.4.6.7
[[CppStd:./string::copy|basic_string::copy [string::copy]]]
[./string::copy]
21.4.6.8
[[CppStd:./string::swap|basic_string::swap [string::swap]]]
[./string::swap]
21.4.7
basic_string string operations
[string.ops]
21.4.7.1
basic_string accessors
[string.accessors]
21.4.7.2
[[CppStd:./string::find|basic_string::find [string::find]]]
[./string::find]
21.4.7.3
[[CppStd:./string::rfind|basic_string::rfind [string::rfind]]]
[./string::rfind]
21.4.7.4
[[CppStd:./string::find.first.of|basic_string::find_first_of [string::find.first.of]]]
[./string::find.first.of]
21.4.7.5
[[CppStd:./string::find.last.of|basic_string::find_last_of [string::find.last.of]]]
[./string::find.last.of]
21.4.7.6
[[CppStd:./string::find.first.not.of|basic_string::find_first_not_of [string::find.first.not.of]]]
[./string::find.first.not.of]
21.4.7.7
[[CppStd:./string::find.last.not.of|basic_string::find_last_not_of [string::find.last.not.of]]]
[./string::find.last.not.of]
21.4.7.8
[[CppStd:./string::substr|basic_string::substr [string::substr]]]
[./string::substr]
21.4.7.9
[[CppStd:./string::compare|basic_string::compare [string::compare]]]
[./string::compare]
21.4.8
basic_string non-member functions
[string.nonmembers]
21.4.8.1
[[CppStd:./string::op+|operator+ [string::op+]]]
[./string::op+]
21.4.8.2
[[CppStd:./string::operator==|operator== [string::operator==]]]
[./string::operator==]
21.4.8.3
[[CppStd:./string::op!=|operator!= [string::op!=]]]
[./string::op!=]
21.4.8.4
[[CppStd:./string::op%3c|operator< [string::op<]]]
[./string::op%3c]
21.4.8.5
[[CppStd:./string::op%3e|operator> [string::op>]]]
[./string::op%3e]
21.4.8.6
[[CppStd:./string::op%3c=|operator<= [string::op<=]]]
[./string::op%3c=]
21.4.8.7
[[CppStd:./string::op%3e=|operator>= [string::op>=]]]
[./string::op%3e=]
21.4.8.8
swap
[string.special]
21.4.8.9
Inserters and extractors
[string.io]
21.5
Numeric conversions
[string.conversions]
21.6
Hash support
[basic.string.hash]
21.7
Suffix for basic_string literals
[basic.string.literals]
21.8
Null-terminated sequence utilities
[c.strings]
22
Localization library
[localization]
22.1
General
[localization.general]
22.2
Header <locale> synopsis
[locale.syn]
22.3
Locales
[locales]
22.3.1
Class locale
[locale]
22.3.1.1
locale types
[locale.types]
22.3.1.1.1
Type locale::category
[locale.category]
22.3.1.1.2
Class locale::facet
[locale.facet]
22.3.1.1.3
Class locale::id
[locale.id]
22.3.1.2
locale constructors and destructor
[locale.cons]
22.3.1.3
locale members
[locale.members]
22.3.1.4
locale operators
[locale.operators]
22.3.1.5
locale static members
[locale.statics]
22.3.2
locale globals
[locale.global.templates]
22.3.3
Convenience interfaces
[locale.convenience]
22.3.3.1
Character classification
[classification]
22.3.3.2
Conversions
[conversions]
22.3.3.2.1
Character conversions
[conversions.character]
22.3.3.2.2
string conversions
[conversions.string]
22.3.3.2.3
Buffer conversions
[conversions.buffer]
22.4
Standard locale categories
[locale.categories]
22.4.1
The ctype category
[category.ctype]
22.4.1.1
Class template ctype
[locale.ctype]
22.4.1.1.1
ctype members
[locale.ctype.members]
22.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
22.4.1.2
Class template ctype_byname
[locale.ctype.byname]
22.4.1.3
ctype specializations
[facet.ctype.special]
22.4.1.3.1
ctype<char> destructor
[facet.ctype.char.dtor]
22.4.1.3.2
ctype<char> members
[facet.ctype.char.members]
22.4.1.3.3
ctype<char> static members
[facet.ctype.char.statics]
22.4.1.3.4
ctype<char> virtual functions
[facet.ctype.char.virtuals]
22.4.1.4
Class template codecvt
[locale.codecvt]
22.4.1.4.1
codecvt members
[locale.codecvt.members]
22.4.1.4.2
codecvt virtual functions
[locale.codecvt.virtuals]
22.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
22.4.2
The numeric category
[category.numeric]
22.4.2.1
Class template num_get
[locale.num.get]
22.4.2.1.1
num_get members
[facet.num.get.members]
22.4.2.1.2
num_get virtual functions
[facet.num.get.virtuals]
22.4.2.2
Class template num_put
[locale.nm.put]
22.4.2.2.1
num_put members
[facet.num.put.members]
22.4.2.2.2
num_put virtual functions
[facet.num.put.virtuals]
22.4.3
The numeric punctuation facet
[facet.numpunct]
22.4.3.1
Class template numpunct
[locale.numpunct]
22.4.3.1.1
numpunct members
[facet.numpunct.members]
22.4.3.1.2
numpunct virtual functions
[facet.numpunct.virtuals]
22.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
22.4.4
The collate category
[category.collate]
22.4.4.1
Class template collate
[locale.collate]
22.4.4.1.1
collate members
[locale.collate.members]
22.4.4.1.2
collate virtual functions
[locale.collate.virtuals]
22.4.4.2
Class template collate_byname
[locale.collate.byname]
22.4.5
The time category
[category.time]
22.4.5.1
Class template time_get
[locale.time.get]
22.4.5.1.1
time_get members
[locale.time.get.members]
22.4.5.1.2
time_get virtual functions
[locale.time.get.virtuals]
22.4.5.2
Class template time_get_byname
[locale.time.get.byname]
22.4.5.3
Class template time_put
[locale.time.put]
22.4.5.3.1
time_put members
[locale.time.put.members]
22.4.5.3.2
time_put virtual functions
[locale.time.put.virtuals]
22.4.5.4
Class template time_put_byname
[locale.time.put.byname]
22.4.6
The monetary category
[category.monetary]
22.4.6.1
Class template money_get
[locale.money.get]
22.4.6.1.1
money_get members
[locale.money.get.members]
22.4.6.1.2
money_get virtual functions
[locale.money.get.virtuals]
22.4.6.2
Class template money_put
[locale.money.put]
22.4.6.2.1
money_put members
[locale.money.put.members]
22.4.6.2.2
money_put virtual functions
[locale.money.put.virtuals]
22.4.6.3
Class template moneypunct
[locale.moneypunct]
22.4.6.3.1
moneypunct members
[locale.moneypunct.members]
22.4.6.3.2
moneypunct virtual functions
[locale.moneypunct.virtuals]
22.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
22.4.7
The message retrieval category
[category.messages]
22.4.7.1
Class template messages
[locale.messages]
22.4.7.1.1
messages members
[locale.messages.members]
22.4.7.1.2
messages virtual functions
[locale.messages.virtuals]
22.4.7.2
Class template messages_byname
[locale.messages.byname]
22.4.8
Program-defined facets
[facets.examples]
22.5
Standard code conversion facets
[locale.stdcvt]
22.6
C library locales
[c.locales]
23
Containers library
[containers]
23.1
General
[containers.general]
23.2
Container requirements
[container.requirements]
23.2.1
General container requirements
[container.requirements.general]
23.2.2
Container data races
[container.requirements.dataraces]
23.2.3
Sequence containers
[sequence.reqmts]
23.2.4
Associative containers
[associative.reqmts]
23.2.4.1
Exception safety guarantees
[associative.reqmts.except]
23.2.5
Unordered associative containers
[unord.req]
23.2.5.1
Exception safety guarantees
[unord.req.except]
23.3
Sequence containers
[sequences]
23.3.1
In general
[sequences.general]
23.3.2
Class template array
[array]
23.3.2.1
Class template array overview
[array.overview]
23.3.2.2
array constructors, copy, and assignment
[array.cons]
23.3.2.3
array specialized algorithms
[array.special]
23.3.2.4
array::size
[array.size]
23.3.2.5
array::data
[array.data]
23.3.2.6
array::fill
[array.fill]
23.3.2.7
array::swap
[array.swap]
23.3.2.8
Zero sized arrays
[array.zero]
23.3.2.9
Tuple interface to class template array
[array.tuple]
23.3.3
Class template deque
[deque]
23.3.3.1
Class template deque overview
[deque.overview]
23.3.3.2
deque constructors, copy, and assignment
[deque.cons]
23.3.3.3
deque capacity
[deque.capacity]
23.3.3.4
deque modifiers
[deque.modifiers]
23.3.3.5
deque specialized algorithms
[deque.special]
23.3.4
Class template forward_list
[forwardlist]
23.3.4.1
Class template forward_list overview
[forwardlist.overview]
23.3.4.2
forward_list constructors, copy, assignment
[forwardlist.cons]
23.3.4.3
forward_list iterators
[forwardlist.iter]
23.3.4.4
forward_list element access
[forwardlist.access]
23.3.4.5
forward_list modifiers
[forwardlist.modifiers]
23.3.4.6
forward_list operations
[forwardlist.ops]
23.3.4.7
forward_list specialized algorithms
[forwardlist.spec]
23.3.5
Class template list
[list]
23.3.5.1
Class template list overview
[list.overview]
23.3.5.2
list constructors, copy, and assignment
[list.cons]
23.3.5.3
list capacity
[list.capacity]
23.3.5.4
list modifiers
[list.modifiers]
23.3.5.5
list operations
[list.ops]
23.3.5.6
list specialized algorithms
[list.special]
23.3.6
Class template vector
[vector]
23.3.6.1
Class template vector overview
[vector.overview]
23.3.6.2
vector constructors, copy, and assignment
[vector.cons]
23.3.6.3
vector capacity
[vector.capacity]
23.3.6.4
vector data
[vector.data]
23.3.6.5
vector modifiers
[vector.modifiers]
23.3.6.6
vector specialized algorithms
[vector.special]
23.3.7
Class vector<bool>
[vector.bool]
23.4
Associative containers
[associative]
23.4.1
In general
[associative.general]
23.4.2
Header <map> synopsis
[associative.map.syn]
23.4.3
Header <set> synopsis
[associative.set.syn]
23.4.4
Class template map
[map]
23.4.4.1
Class template map overview
[map.overview]
23.4.4.2
map constructors, copy, and assignment
[map.cons]
23.4.4.3
map element access
[map.access]
23.4.4.4
map modifiers
[map.modifiers]
23.4.4.5
map specialized algorithms
[map.special]
23.4.5
Class template multimap
[multimap]
23.4.5.1
Class template multimap overview
[multimap.overview]
23.4.5.2
multimap constructors
[multimap.cons]
23.4.5.3
multimap modifiers
[multimap.modifiers]
23.4.5.4
multimap specialized algorithms
[multimap.special]
23.4.6
Class template set
[set]
23.4.6.1
Class template set overview
[set.overview]
23.4.6.2
set constructors, copy, and assignment
[set.cons]
23.4.6.3
set specialized algorithms
[set.special]
23.4.7
Class template multiset
[multiset]
23.4.7.1
Class template multiset overview
[multiset.overview]
23.4.7.2
multiset constructors
[multiset.cons]
23.4.7.3
multiset specialized algorithms
[multiset.special]
23.5
Unordered associative containers
[unord]
23.5.1
In general
[unord.general]
23.5.2
Header <unordered_map> synopsis
[unord.map.syn]
23.5.3
Header <unordered_set> synopsis
[unord.set.syn]
23.5.4
Class template unordered_map
[unord.map]
23.5.4.1
Class template unordered_map overview
[unord.map.overview]
23.5.4.2
unordered_map constructors
[unord.map.cnstr]
23.5.4.3
unordered_map element access
[unord.map.elem]
23.5.4.4
unordered_map modifiers
[unord.map.modifiers]
23.5.4.5
unordered_map swap
[unord.map.swap]
23.5.5
Class template unordered_multimap
[unord.multimap]
23.5.5.1
Class template unordered_multimap overview
[unord.multimap.overview]
23.5.5.2
unordered_multimap constructors
[unord.multimap.cnstr]
23.5.5.3
unordered_multimap modifiers
[unord.multimap.modifiers]
23.5.5.4
unordered_multimap swap
[unord.multimap.swap]
23.5.6
Class template unordered_set
[unord.set]
23.5.6.1
Class template unordered_set overview
[unord.set.overview]
23.5.6.2
unordered_set constructors
[unord.set.cnstr]
23.5.6.3
unordered_set swap
[unord.set.swap]
23.5.7
Class template unordered_multiset
[unord.multiset]
23.5.7.1
Class template unordered_multiset overview
[unord.multiset.overview]
23.5.7.2
unordered_multiset constructors
[unord.multiset.cnstr]
23.5.7.3
unordered_multiset swap
[unord.multiset.swap]
23.6
Container adaptors
[container.adaptors]
23.6.1
In general
[container.adaptors.general]
23.6.2
Header <queue> synopsis
[queue.syn]
23.6.3
Class template queue
[queue]
23.6.3.1
queue definition
[queue.defn]
23.6.3.2
queue constructors
[queue.cons]
23.6.3.3
queue constructors with allocators
[queue.cons.alloc]
23.6.3.4
queue operators
[queue.ops]
23.6.3.5
queue specialized algorithms
[queue.special]
23.6.4
Class template priority_queue
[priority.queue]
23.6.4.1
priority_queue constructors
[priqueue.cons]
23.6.4.2
priority_queue constructors with allocators
[priqueue.cons.alloc]
23.6.4.3
priority_queue members
[priqueue.members]
23.6.4.4
priority_queue specialized algorithms
[priqueue.special]
23.6.5
Class template stack
[stack]
23.6.5.1
Header <stack> synopsis
[stack.syn]
23.6.5.2
stack definition
[stack.defn]
23.6.5.3
stack constructors
[stack.cons]
23.6.5.4
stack constructors with allocators
[stack.cons.alloc]
23.6.5.5
stack operators
[stack.ops]
23.6.5.6
stack specialized algorithms
[stack.special]
24
Iterators library
[iterators]
24.1
General
[iterators.general]
24.2
Iterator requirements
[iterator.requirements]
24.2.1
In general
[iterator.requirements.general]
24.2.2
Iterator
[iterator.iterators]
24.2.3
Input iterators
[input.iterators]
24.2.4
Output iterators
[output.iterators]
24.2.5
Forward iterators
[forward.iterators]
24.2.6
Bidirectional iterators
[bidirectional.iterators]
24.2.7
Random access iterators
[random.access.iterators]
24.3
Header <iterator> synopsis
[iterator.synopsis]
24.4
Iterator primitives
[iterator.primitives]
24.4.1
Iterator traits
[iterator.traits]
24.4.2
Basic iterator
[iterator.basic]
24.4.3
Standard iterator tags
[std.iterator.tags]
24.4.4
Iterator operations
[iterator.operations]
24.5
Iterator adaptors
[predef.iterators]
24.5.1
Reverse iterators
[reverse.iterators]
24.5.1.1
Class template reverse_iterator
[reverse.iterator]
24.5.1.2
reverse_iterator requirements
[reverse.iter.requirements]
24.5.1.3
reverse_iterator operations
[reverse.iter.ops]
24.5.1.3.1
reverse_iterator constructor
[reverse.iter.cons]
24.5.1.3.2
reverse_iterator::operator=
[reverse.iter.op=]
24.5.1.3.3
Conversion
[reverse.iter.conv]
24.5.1.3.4
operator*
[reverse.iter.op.star]
24.5.1.3.5
operator->
[reverse.iter.opref]
24.5.1.3.6
operator++
[reverse.iter.op++]
24.5.1.3.7
operator--
[reverse.iter.op--]
24.5.1.3.8
operator+
[reverse.iter.op+]
24.5.1.3.9
operator+=
[reverse.iter.op+=]
24.5.1.3.10
operator-
[reverse.iter.op-]
24.5.1.3.11
operator-=
[reverse.iter.op-=]
24.5.1.3.12
operator[]
[reverse.iter.opindex]
24.5.1.3.13
operator==
[reverse.iter.op==]
24.5.1.3.14
[[CppStd:reverse.iter.op%3c|operator< [reverse.iter.op<]]]
[reverse.iter.op%3c]
24.5.1.3.15
operator!=
[reverse.iter.op!=]
24.5.1.3.16
[[CppStd:reverse.iter.op%3e|operator> [reverse.iter.op>]]]
[reverse.iter.op%3e]
24.5.1.3.17
[[CppStd:reverse.iter.op%3e=|operator>= [reverse.iter.op>=]]]
[reverse.iter.op%3e=]
24.5.1.3.18
[[CppStd:reverse.iter.op%3c=|operator<= [reverse.iter.op<=]]]
[reverse.iter.op%3c=]
24.5.1.3.19
operator-
[reverse.iter.opdiff]
24.5.1.3.20
operator+
[reverse.iter.opsum]
24.5.1.3.21
Non-member function make_reverse_iterator()
[reverse.iter.make]
24.5.2
Insert iterators
[insert.iterators]
24.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
24.5.2.2
back_insert_iterator operations
[back.insert.iter.ops]
24.5.2.2.1
back_insert_iterator constructor
[back.insert.iter.cons]
24.5.2.2.2
back_insert_iterator::operator=
[back.insert.iter.op=]
24.5.2.2.3
back_insert_iterator::operator*
[back.insert.iter.op*]
24.5.2.2.4
back_insert_iterator::operator++
[back.insert.iter.op++]
24.5.2.2.5
back_inserter
[back.inserter]
24.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
24.5.2.4
front_insert_iterator operations
[front.insert.iter.ops]
24.5.2.4.1
front_insert_iterator constructor
[front.insert.iter.cons]
24.5.2.4.2
front_insert_iterator::operator=
[front.insert.iter.op=]
24.5.2.4.3
front_insert_iterator::operator*
[front.insert.iter.op*]
24.5.2.4.4
front_insert_iterator::operator++
[front.insert.iter.op++]
24.5.2.4.5
front_inserter
[front.inserter]
24.5.2.5
Class template insert_iterator
[insert.iterator]
24.5.2.6
insert_iterator operations
[insert.iter.ops]
24.5.2.6.1
insert_iterator constructor
[insert.iter.cons]
24.5.2.6.2
insert_iterator::operator=
[insert.iter.op=]
24.5.2.6.3
insert_iterator::operator*
[insert.iter.op*]
24.5.2.6.4
insert_iterator::operator++
[insert.iter.op++]
24.5.2.6.5
inserter
[inserter]
24.5.3
Move iterators
[move.iterators]
24.5.3.1
Class template move_iterator
[move.iterator]
24.5.3.2
move_iterator requirements
[move.iter.requirements]
24.5.3.3
move_iterator operations
[move.iter.ops]
24.5.3.3.1
move_iterator constructors
[move.iter.op.const]
24.5.3.3.2
move_iterator::operator=
[move.iter.op=]
24.5.3.3.3
move_iterator conversion
[move.iter.op.conv]
24.5.3.3.4
move_iterator::operator*
[move.iter.op.star]
24.5.3.3.5
move_iterator::operator->
[move.iter.op.ref]
24.5.3.3.6
move_iterator::operator++
[move.iter.op.incr]
24.5.3.3.7
move_iterator::operator--
[move.iter.op.decr]
24.5.3.3.8
move_iterator::operator+
[move.iter.op.+]
24.5.3.3.9
move_iterator::operator+=
[move.iter.op.+=]
24.5.3.3.10
move_iterator::operator-
[move.iter.op.-]
24.5.3.3.11
move_iterator::operator-=
[move.iter.op.-=]
24.5.3.3.12
move_iterator::operator[]
[move.iter.op.index]
24.5.3.3.13
move_iterator comparisons
[move.iter.op.comp]
24.5.3.3.14
move_iterator non-member functions
[move.iter.nonmember]
24.6
Stream iterators
[stream.iterators]
24.6.1
Class template istream_iterator
[istream.iterator]
24.6.1.1
istream_iterator constructors and destructor
[istream.iterator.cons]
24.6.1.2
istream_iterator operations
[istream.iterator.ops]
24.6.2
Class template ostream_iterator
[ostream.iterator]
24.6.2.1
ostream_iterator constructors and destructor
[ostream.iterator.cons.des]
24.6.2.2
ostream_iterator operations
[ostream.iterator.ops]
24.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
24.6.3.1
[[CppStd:./istreambuf.iterator::proxy|Class template istreambuf_iterator::proxy [istreambuf.iterator::proxy]]]
[./istreambuf.iterator::proxy]
24.6.3.2
istreambuf_iterator constructors
[istreambuf.iterator.cons]
24.6.3.3
[[CppStd:./istreambuf.iterator::op*|istreambuf_iterator::operator* [istreambuf.iterator::op*]]]
[./istreambuf.iterator::op*]
24.6.3.4
[[CppStd:./istreambuf.iterator::op++|istreambuf_iterator::operator++ [istreambuf.iterator::op++]]]
[./istreambuf.iterator::op++]
24.6.3.5
[[CppStd:./istreambuf.iterator::equal|istreambuf_iterator::equal [istreambuf.iterator::equal]]]
[./istreambuf.iterator::equal]
24.6.3.6
[[CppStd:./istreambuf.iterator::op==|operator== [istreambuf.iterator::op==]]]
[./istreambuf.iterator::op==]
24.6.3.7
[[CppStd:./istreambuf.iterator::op!=|operator!= [istreambuf.iterator::op!=]]]
[./istreambuf.iterator::op!=]
24.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
24.6.4.1
ostreambuf_iterator constructors
[ostreambuf.iter.cons]
24.6.4.2
ostreambuf_iterator operations
[ostreambuf.iter.ops]
24.7
range access
[iterator.range]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Non-modifying sequence operations
[alg.nonmodifying]
25.2.1
All of
[alg.all_of]
25.2.2
Any of
[alg.any_of]
25.2.3
None of
[alg.none_of]
25.2.4
For each
[alg.foreach]
25.2.5
Find
[alg.find]
25.2.6
Find end
[alg.find.end]
25.2.7
Find first
[alg.find.first.of]
25.2.8
Adjacent find
[alg.adjacent.find]
25.2.9
Count
[alg.count]
25.2.10
Mismatch
[mismatch]
25.2.11
Equal
[alg.equal]
25.2.12
Is permutation
[alg.is_permutation]
25.2.13
Search
[alg.search]
25.3
Mutating sequence operations
[alg.modifying.operations]
25.3.1
Copy
[alg.copy]
25.3.2
Move
[alg.move]
25.3.3
swap
[alg.swap]
25.3.4
Transform
[alg.transform]
25.3.5
Replace
[alg.replace]
25.3.6
Fill
[alg.fill]
25.3.7
Generate
[alg.generate]
25.3.8
Remove
[alg.remove]
25.3.9
Unique
[alg.unique]
25.3.10
Reverse
[alg.reverse]
25.3.11
Rotate
[alg.rotate]
25.3.12
Shuffle
[alg.random.shuffle]
25.3.13
Partitions
[alg.partitions]
25.4
Sorting and related operations
[alg.sorting]
25.4.1
Sorting
[alg.sort]
25.4.1.1
sort
[sort]
25.4.1.2
stable_sort
[stable.sort]
25.4.1.3
partial_sort
[partial.sort]
25.4.1.4
partial_sort_copy
[partial.sort.copy]
25.4.1.5
is_sorted
[is.sorted]
25.4.2
Nth element
[alg.nth.element]
25.4.3
Binary search
[alg.binary.search]
25.4.3.1
lower_bound
[lower.bound]
25.4.3.2
upper_bound
[upper.bound]
25.4.3.3
equal_range
[equal.range]
25.4.3.4
binary_search
[binary.search]
25.4.4
Merge
[alg.merge]
25.4.5
Set operations on sorted structures
[alg.set.operations]
25.4.5.1
includes
[includes]
25.4.5.2
set_union
[set.union]
25.4.5.3
set_intersection
[set.intersection]
25.4.5.4
set_difference
[set.difference]
25.4.5.5
set_symmetric_difference
[set.symmetric.difference]
25.4.6
Heap operations
[alg.heap.operations]
25.4.6.1
push_heap
[push.heap]
25.4.6.2
pop_heap
[pop.heap]
25.4.6.3
make_heap
[make.heap]
25.4.6.4
sort_heap
[sort.heap]
25.4.6.5
is_heap
[is.heap]
25.4.7
Minimum and maximum
[alg.min.max]
25.4.8
Lexicographical comparison
[alg.lex.comparison]
25.4.9
Permutation generators
[alg.permutation.generators]
25.5
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Numeric type requirements
[numeric.requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header <cfenv> synopsis
[cfenv.syn]
26.4
Complex numbers
[complex.numbers]
26.4.1
Header <complex> synopsis
[complex.syn]
26.4.2
Class template complex
[complex]
26.4.3
complex specializations
[complex.special]
26.4.4
complex member functions
[complex.members]
26.4.5
complex member operators
[complex.member.ops]
26.4.6
complex non-member operations
[complex.ops]
26.4.7
complex value operations
[complex.value.ops]
26.4.8
complex transcendentals
[complex.transcendentals]
26.4.9
Additional overloads
[cmplx.over]
26.4.10
Suffixes for complex number literals
[complex.literals]
26.4.11
Header <ccomplex>
[ccmplx]
26.5
Random number generation
[rand]
26.5.1
Requirements
[rand.req]
26.5.1.1
General requirements
[rand.req.genl]
26.5.1.2
Seed sequence requirements
[rand.req.seedseq]
26.5.1.3
Uniform random number generator requirements
[rand.req.urng]
26.5.1.4
Random number engine requirements
[rand.req.eng]
26.5.1.5
Random number engine adaptor requirements
[rand.req.adapt]
26.5.1.6
Random number distribution requirements
[rand.req.dist]
26.5.2
Header <random> synopsis
[rand.synopsis]
26.5.3
Random number engine class templates
[rand.eng]
26.5.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
26.5.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
26.5.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
26.5.4
Random number engine adaptor class templates
[rand.adapt]
26.5.4.1
In general
[rand.adapt.general]
26.5.4.2
Class template discard_block_engine
[rand.adapt.disc]
26.5.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
26.5.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
26.5.5
Engines and engine adaptors with predefined parameters
[rand.predef]
26.5.6
Class random_device
[rand.device]
26.5.7
Utilities
[rand.util]
26.5.7.1
Class seed_seq
[rand.util.seedseq]
26.5.7.2
Function template generate_canonical
[rand.util.canonical]
26.5.8
Random number distribution class templates
[rand.dist]
26.5.8.1
In general
[rand.dist.general]
26.5.8.2
Uniform distributions
[rand.dist.uni]
26.5.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
26.5.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
26.5.8.3
Bernoulli distributions
[rand.dist.bern]
26.5.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
26.5.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
26.5.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
26.5.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
26.5.8.4
Poisson distributions
[rand.dist.pois]
26.5.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
26.5.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
26.5.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
26.5.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
26.5.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
26.5.8.5
Normal distributions
[rand.dist.norm]
26.5.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
26.5.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
26.5.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
26.5.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
26.5.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
26.5.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
26.5.8.6
Sampling distributions
[rand.dist.samp]
26.5.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
26.5.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
26.5.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
26.6
Numeric arrays
[numarray]
26.6.1
Header <valarray> synopsis
[valarray.syn]
26.6.2
Class template valarray
[template.valarray]
26.6.2.1
Class template valarray overview
[template.valarray.overview]
26.6.2.2
valarray constructors
[valarray.cons]
26.6.2.3
valarray assignment
[valarray.assign]
26.6.2.4
valarray element access
[valarray.access]
26.6.2.5
valarray subset operations
[valarray.sub]
26.6.2.6
valarray unary operators
[valarray.unary]
26.6.2.7
valarray computed assignment
[valarray.cassign]
26.6.2.8
valarray member functions
[valarray.members]
26.6.3
valarray non-member operations
[valarray.nonmembers]
26.6.3.1
valarray binary operators
[valarray.binary]
26.6.3.2
valarray logical operators
[valarray.comparison]
26.6.3.3
valarray transcendentals
[valarray.transcend]
26.6.3.4
valarray specialized algorithms
[valarray.special]
26.6.4
Class slice
[class.slice]
26.6.4.1
Class slice overview
[class.slice.overview]
26.6.4.2
slice constructors
[cons.slice]
26.6.4.3
slice access functions
[slice.access]
26.6.5
Class template slice_array
[template.slice.array]
26.6.5.1
Class template slice_array overview
[template.slice.array.overview]
26.6.5.2
slice_array assignment
[slice.arr.assign]
26.6.5.3
slice_array computed assignment
[slice.arr.comp.assign]
26.6.5.4
slice_array fill function
[slice.arr.fill]
26.6.6
The gslice class
[class.gslice]
26.6.6.1
The gslice class overview
[class.gslice.overview]
26.6.6.2
gslice constructors
[gslice.cons]
26.6.6.3
gslice access functions
[gslice.access]
26.6.7
Class template gslice_array
[template.gslice.array]
26.6.7.1
Class template gslice_array overview
[template.gslice.array.overview]
26.6.7.2
gslice_array assignment
[gslice.array.assign]
26.6.7.3
gslice_array
[gslice.array.comp.assign]
26.6.7.4
gslice_array fill function
[gslice.array.fill]
26.6.8
Class template mask_array
[template.mask.array]
26.6.8.1
Class template mask_array overview
[template.mask.array.overview]
26.6.8.2
mask_array assignment
[mask.array.assign]
26.6.8.3
mask_array computed assignment
[mask.array.comp.assign]
26.6.8.4
mask_array fill function
[mask.array.fill]
26.6.9
Class template indirect_array
[template.indirect.array]
26.6.9.1
Class template indirect_array overview
[template.indirect.array.overview]
26.6.9.2
indirect_array assignment
[indirect.array.assign]
26.6.9.3
indirect_array computed assignment
[indirect.array.comp.assign]
26.6.9.4
indirect_array fill function
[indirect.array.fill]
26.6.10
valarray range access
[valarray.range]
26.7
Generalized numeric operations
[numeric.ops]
26.7.1
Header <numeric> synopsis
[numeric.ops.overview]
26.7.2
Accumulate
[accumulate]
26.7.3
Inner product
[inner.product]
26.7.4
Partial sum
[partial.sum]
26.7.5
Adjacent difference
[adjacent.difference]
26.7.6
Iota
[numeric.iota]
26.8
C library
[c.math]
27
Input/output library
[input.output]
27.1
General
[input.output.general]
27.2
Iostreams requirements
[iostreams.requirements]
27.2.1
Imbue limitations
[iostream.limits.imbue]
27.2.2
Positioning type limitations
[iostreams.limits.pos]
27.2.3
Thread safety
[iostreams.threadsafety]
27.3
Forward declarations
[iostream.forward]
27.4
Standard iostream objects
[iostream.objects]
27.4.1
Overview
[iostream.objects.overview]
27.4.2
Narrow stream objects
[narrow.stream.objects]
27.4.3
Wide stream objects
[wide.stream.objects]
27.5
Iostreams base classes
[iostreams.base]
27.5.1
Overview
[iostreams.base.overview]
27.5.2
Types
[stream.types]
27.5.3
Class ios_base
[ios.base]
27.5.3.1
Types
[ios.types]
27.5.3.1.1
[[CppStd:./ios::failure|Class ios_base::failure [ios::failure]]]
[./ios::failure]
27.5.3.1.2
[[CppStd:./ios::fmtflags|Type ios_base::fmtflags [ios::fmtflags]]]
[./ios::fmtflags]
27.5.3.1.3
[[CppStd:./ios::iostate|Type ios_base::iostate [ios::iostate]]]
[./ios::iostate]
27.5.3.1.4
[[CppStd:./ios::openmode|Type ios_base::openmode [ios::openmode]]]
[./ios::openmode]
27.5.3.1.5
[[CppStd:./ios::seekdir|Type ios_base::seekdir [ios::seekdir]]]
[./ios::seekdir]
27.5.3.1.6
[[CppStd:./ios::Init|Class ios_base::Init [ios::Init]]]
[./ios::Init]
27.5.3.2
ios_base state functions
[fmtflags.state]
27.5.3.3
ios_base functions
[ios.base.locales]
27.5.3.4
ios_base static members
[ios.members.static]
27.5.3.5
ios_base storage functions
[ios.base.storage]
27.5.3.6
ios_base callbacks
[ios.base.callback]
27.5.3.7
ios_base constructors/destructor
[ios.base.cons]
27.5.4
Class template fpos
[fpos]
27.5.4.1
fpos members
[fpos.members]
27.5.4.2
fpos requirements
[fpos.operations]
27.5.5
Class template basic_ios
[ios]
27.5.5.1
Overview
[ios.overview]
27.5.5.2
basic_ios constructors
[basic.ios.cons]
27.5.5.3
Member functions
[basic.ios.members]
27.5.5.4
basic_ios flags functions
[iostate.flags]
27.5.6
ios_base manipulators
[std.ios.manip]
27.5.6.1
fmtflags manipulators
[fmtflags.manip]
27.5.6.2
adjustfield manipulators
[adjustfield.manip]
27.5.6.3
basefield manipulators
[basefield.manip]
27.5.6.4
floatfield manipulators
[floatfield.manip]
27.5.6.5
Error reporting
[error.reporting]
27.6
Stream buffers
[stream.buffers]
27.6.1
Overview
[stream.buffers.overview]
27.6.2
Stream buffer requirements
[streambuf.reqts]
27.6.3
Class template basic_streambuf<charT,traits>
[streambuf]
27.6.3.1
basic_streambuf constructors
[streambuf.cons]
27.6.3.2
basic_streambuf public member functions
[streambuf.members]
27.6.3.2.1
Locales
[streambuf.locales]
27.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
27.6.3.2.3
Get area
[streambuf.pub.get]
27.6.3.2.4
Putback
[streambuf.pub.pback]
27.6.3.2.5
Put area
[streambuf.pub.put]
27.6.3.3
basic_streambuf protected member functions
[streambuf.protected]
27.6.3.3.1
Assignment
[streambuf.assign]
27.6.3.3.2
Get area access
[streambuf.get.area]
27.6.3.3.3
Put area access
[streambuf.put.area]
27.6.3.4
basic_streambuf virtual functions
[streambuf.virtuals]
27.6.3.4.1
Locales
[streambuf.virt.locales]
27.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
27.6.3.4.3
Get area
[streambuf.virt.get]
27.6.3.4.4
Putback
[streambuf.virt.pback]
27.6.3.4.5
Put area
[streambuf.virt.put]
27.7
Formatting and manipulators
[iostream.format]
27.7.1
Overview
[iostream.format.overview]
27.7.2
Input streams
[input.streams]
27.7.2.1
Class template basic_istream
[istream]
27.7.2.1.1
basic_istream constructors
[istream.cons]
27.7.2.1.2
Class basic_istream assign and swap
[istream.assign]
27.7.2.1.3
[[CppStd:./istream::sentry|Class basic_istream::sentry [istream::sentry]]]
[./istream::sentry]
27.7.2.2
Formatted input functions
[istream.formatted]
27.7.2.2.1
Common requirements
[istream.formatted.reqmts]
27.7.2.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
27.7.2.2.3
[[CppStd:./istream::extractors|basic_istream::operator>> [istream::extractors]]]
[./istream::extractors]
27.7.2.3
Unformatted input functions
[istream.unformatted]
27.7.2.4
Standard basic_istream manipulators
[istream.manip]
27.7.2.5
Class template basic_iostream
[iostreamclass]
27.7.2.5.1
basic_iostream constructors
[iostream.cons]
27.7.2.5.2
basic_iostream destructor
[iostream.dest]
27.7.2.5.3
basic_iostream assign and swap
[iostream.assign]
27.7.2.6
Rvalue stream extraction
[istream.rvalue]
27.7.3
Output streams
[output.streams]
27.7.3.1
Class template basic_ostream
[ostream]
27.7.3.2
basic_ostream constructors
[ostream.cons]
27.7.3.3
Class basic_ostream assign and swap
[ostream.assign]
27.7.3.4
[[CppStd:./ostream::sentry|Class basic_ostream::sentry [ostream::sentry]]]
[./ostream::sentry]
27.7.3.5
basic_ostream seek members
[ostream.seeks]
27.7.3.6
Formatted output functions
[ostream.formatted]
27.7.3.6.1
Common requirements
[ostream.formatted.reqmts]
27.7.3.6.2
Arithmetic inserters
[ostream.inserters.arithmetic]
27.7.3.6.3
basic_ostream::operator<<
[ostream.inserters]
27.7.3.6.4
Character inserter function templates
[ostream.inserters.character]
27.7.3.7
Unformatted output functions
[ostream.unformatted]
27.7.3.8
Standard basic_ostream manipulators
[ostream.manip]
27.7.3.9
Rvalue stream insertion
[ostream.rvalue]
27.7.4
Standard manipulators
[std.manip]
27.7.5
Extended manipulators
[ext.manip]
27.7.6
Quoted manipulators
[quoted.manip]
27.8
String-based streams
[string.streams]
27.8.1
Overview
[string.streams.overview]
27.8.2
Class template basic_stringbuf
[stringbuf]
27.8.2.1
basic_stringbuf constructors
[stringbuf.cons]
27.8.2.2
Assign and swap
[stringbuf.assign]
27.8.2.3
Member functions
[stringbuf.members]
27.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
27.8.3
Class template basic_istringstream
[istringstream]
27.8.3.1
basic_istringstream constructors
[istringstream.cons]
27.8.3.2
Assign and swap
[istringstream.assign]
27.8.3.3
Member functions
[istringstream.members]
27.8.4
Class template basic_ostringstream
[ostringstream]
27.8.4.1
basic_ostringstream constructors
[ostringstream.cons]
27.8.4.2
Assign and swap
[ostringstream.assign]
27.8.4.3
Member functions
[ostringstream.members]
27.8.5
Class template basic_stringstream
[stringstream]
27.8.5.1
basic_stringstream constructors
[stringstream.cons]
27.8.5.2
Assign and swap
[stringstream.assign]
27.8.5.3
Member functions
[stringstream.members]
27.9
File-based streams
[file.streams]
27.9.1
File streams
[fstreams]
27.9.1.1
Class template basic_filebuf
[filebuf]
27.9.1.2
basic_filebuf constructors
[filebuf.cons]
27.9.1.3
Assign and swap
[filebuf.assign]
27.9.1.4
Member functions
[filebuf.members]
27.9.1.5
Overridden virtual functions
[filebuf.virtuals]
27.9.1.6
Class template basic_ifstream
[ifstream]
27.9.1.7
basic_ifstream constructors
[ifstream.cons]
27.9.1.8
Assign and swap
[ifstream.assign]
27.9.1.9
Member functions
[ifstream.members]
27.9.1.10
Class template basic_ofstream
[ofstream]
27.9.1.11
basic_ofstream constructors
[ofstream.cons]
27.9.1.12
Assign and swap
[ofstream.assign]
27.9.1.13
Member functions
[ofstream.members]
27.9.1.14
Class template basic_fstream
[fstream]
27.9.1.15
basic_fstream constructors
[fstream.cons]
27.9.1.16
Assign and swap
[fstream.assign]
27.9.1.17
Member functions
[fstream.members]
27.9.2
C library files
[c.files]
28
Regular expressions library
[re]
28.1
General
[re.general]
28.2
Definitions
[re.def]
28.2.1
collating element
[defns.regex.collating.element]
28.2.2
finite state machine
[defns.regex.finite.state.machine]
28.2.3
format specifier
[defns.regex.format.specifier]
28.2.4
matched
[defns.regex.matched]
28.2.5
primary equivalence class
[defns.regex.primary.equivalence.class]
28.2.6
regular expression
[defns.regex.regular.expression]
28.2.7
sub-expression
[defns.regex.subexpression]
28.3
Requirements
[re.req]
28.4
Header <regex> synopsis
[re.syn]
28.5
Namespace std::regex_constants
[re.const]
28.5.1
Bitmask type syntax_option_type
[re.synopt]
28.5.2
Bitmask type regex_constants::match_flag_type
[re.matchflag]
28.5.3
Implementation-defined error_type
[re.err]
28.6
Class regex_error
[re.badexp]
28.7
Class template regex_traits
[re.traits]
28.8
Class template basic_regex
[re.regex]
28.8.1
basic_regex constants
[re.regex.const]
28.8.2
basic_regex constructors
[re.regex.construct]
28.8.3
basic_regex assign
[re.regex.assign]
28.8.4
basic_regex constant operations
[re.regex.operations]
28.8.5
basic_regex locale
[re.regex.locale]
28.8.6
basic_regex swap
[re.regex.swap]
28.8.7
basic_regex non-member functions
[re.regex.nonmemb]
28.8.7.1
basic_regex non-member swap
[re.regex.nmswap]
28.9
Class template sub_match
[re.submatch]
28.9.1
sub_match members
[re.submatch.members]
28.9.2
sub_match non-member operators
[re.submatch.op]
28.10
Class template match_results
[re.results]
28.10.1
match_results constructors
[re.results.const]
28.10.2
match_results state
[re.results.state]
28.10.3
match_results size
[re.results.size]
28.10.4
match_results element access
[re.results.acc]
28.10.5
match_results formatting
[re.results.form]
28.10.6
match_results allocator
[re.results.all]
28.10.7
match_results swap
[re.results.swap]
28.10.8
match_results non-member functions
[re.results.nonmember]
28.11
Regular expression algorithms
[re.alg]
28.11.1
exceptions
[re.except]
28.11.2
regex_match
[re.alg.match]
28.11.3
regex_search
[re.alg.search]
28.11.4
regex_replace
[re.alg.replace]
28.12
Regular expression iterators
[re.iter]
28.12.1
Class template regex_iterator
[re.regiter]
28.12.1.1
regex_iterator constructors
[re.regiter.cnstr]
28.12.1.2
regex_iterator comparisons
[re.regiter.comp]
28.12.1.3
regex_iterator indirection
[re.regiter.deref]
28.12.1.4
regex_iterator increment
[re.regiter.incr]
28.12.2
Class template regex_token_iterator
[re.tokiter]
28.12.2.1
regex_token_iterator constructors
[re.tokiter.cnstr]
28.12.2.2
regex_token_iterator comparisons
[re.tokiter.comp]
28.12.2.3
regex_token_iterator indirection
[re.tokiter.deref]
28.12.2.4
regex_token_iterator increment
[re.tokiter.incr]
28.13
Modified ECMAScript regular expression grammar
[re.grammar]
29
Atomic operations library
[atomics]
29.1
General
[atomics.general]
29.2
Header <atomic> synopsis
[atomics.syn]
29.3
Order and consistency
[atomics.order]
29.4
Lock-free property
[atomics.lockfree]
29.5
Atomic types
[atomics.types.generic]
29.6
Operations on atomic types
[atomics.types.operations]
29.6.1
General operations on atomic types
[atomics.types.operations.general]
29.6.2
Templated operations on atomic types
[atomics.types.operations.templ]
29.6.3
Arithmetic operations on atomic types
[atomics.types.operations.arith]
29.6.4
Operations on atomic pointer types
[atomics.types.operations.pointer]
29.6.5
Requirements for operations on atomic types
[atomics.types.operations.req]
29.7
Flag type and operations
[atomics.flag]
29.8
Fences
[atomics.fences]
30
Thread support library
[thread]
30.1
General
[thread.general]
30.2
Requirements
[thread.req]
30.2.1
Template parameter names
[thread.req.paramname]
30.2.2
Exceptions
[thread.req.exception]
30.2.3
Native handles
[thread.req.native]
30.2.4
Timing specifications
[thread.req.timing]
30.2.5
Requirements for Lockable types
[thread.req.lockable]
30.2.5.1
In general
[thread.req.lockable.general]
30.2.5.2
BasicLockable requirements
[thread.req.lockable.basic]
30.2.5.3
Lockable requirements
[thread.req.lockable.req]
30.2.5.4
TimedLockable requirements
[thread.req.lockable.timed]
30.2.6
decay_copy
[thread.decaycopy]
30.3
Threads
[thread.threads]
30.3.1
Class thread
[thread.thread.class]
30.3.1.1
Class thread::id
[thread.thread.id]
30.3.1.2
thread constructors
[thread.thread.constr]
30.3.1.3
thread destructor
[thread.thread.destr]
30.3.1.4
thread assignment
[thread.thread.assign]
30.3.1.5
thread members
[thread.thread.member]
30.3.1.6
thread static members
[thread.thread.static]
30.3.1.7
thread specialized algorithms
[thread.thread.algorithm]
30.3.2
Namespace this_thread
[thread.thread.this]
30.4
Mutual exclusion
[thread.mutex]
30.4.1
Mutex requirements
[thread.mutex.requirements]
30.4.1.1
In general
[thread.mutex.requirements.general]
30.4.1.2
Mutex types
[thread.mutex.requirements.mutex]
30.4.1.2.1
Class mutex
[thread.mutex.class]
30.4.1.2.2
Class recursive_mutex
[thread.mutex.recursive]
30.4.1.3
Timed mutex types
[thread.timedmutex.requirements]
30.4.1.3.1
Class timed_mutex
[thread.timedmutex.class]
30.4.1.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
30.4.1.4
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
30.4.1.4.1
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
30.4.2
Locks
[thread.lock]
30.4.2.1
Class template lock_guard
[thread.lock.guard]
30.4.2.2
Class template unique_lock
[thread.lock.unique]
30.4.2.2.1
unique_lock constructors, destructor, and assignment
[thread.lock.unique.cons]
30.4.2.2.2
unique_lock locking
[thread.lock.unique.locking]
30.4.2.2.3
unique_lock modifiers
[thread.lock.unique.mod]
30.4.2.2.4
unique_lock observers
[thread.lock.unique.obs]
30.4.2.3
Class template shared_lock
[thread.lock.shared]
30.4.2.3.1
shared_lock constructors, destructor, and assignment
[thread.lock.shared.cons]
30.4.2.3.2
shared_lock locking
[thread.lock.shared.locking]
30.4.2.3.3
shared_lock modifiers
[thread.lock.shared.mod]
30.4.2.3.4
shared_lock observers
[thread.lock.shared.obs]
30.4.3
Generic locking algorithms
[thread.lock.algorithm]
30.4.4
Call once
[thread.once]
30.4.4.1
Struct once_flag
[thread.once.onceflag]
30.4.4.2
Function call_once
[thread.once.callonce]
30.5
Condition variables
[thread.condition]
30.5.1
Class condition_variable
[thread.condition.condvar]
30.5.2
Class condition_variable_any
[thread.condition.condvarany]
30.6
Futures
[futures]
30.6.1
Overview
[futures.overview]
30.6.2
Error handling
[futures.errors]
30.6.3
Class future_error
[futures.future_error]
30.6.4
Shared state
[futures.state]
30.6.5
Class template promise
[futures.promise]
30.6.6
Class template future
[futures.unique_future]
30.6.7
Class template shared_future
[futures.shared_future]
30.6.8
Function template async
[futures.async]
30.6.9
Class template packaged_task
[futures.task]
30.6.9.1
packaged_task member functions
[futures.task.members]
30.6.9.2
packaged_task globals
[futures.task.nonmembers]
Annex A (informative) Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basic concepts
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Declarators
[gram.decl]
A.8
Classes
[gram.class]
A.9
Derived classes
[gram.derived]
A.10
Special member functions
[gram.special]
A.11
Overloading
[gram.over]
A.12
Templates
[gram.temp]
A.13
Exception handling
[gram.except]
A.14
Preprocessing directives
[gram.cpp]
Annex B (informative) Implementation quantities
[implimits]
Annex C (informative) Compatibility
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
Clause [lex]: lexical conventions
[diff.lex]
C.1.2
Clause [basic]: basic concepts
[diff.basic]
C.1.3
Clause [conv]: standard conversions
[diff.conv]
C.1.4
Clause [expr]: expressions
[diff.expr]
C.1.5
Clause [stmt.stmt]: statements
[diff.stat]
C.1.6
Clause [dcl.dcl]: declarations
[diff.dcl]
C.1.7
Clause [dcl.decl]: declarators
[diff.decl]
C.1.8
Clause [class]: classes
[diff.class]
C.1.9
Clause [special]: special member functions
[diff.special]
C.1.10
Clause [cpp]: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.2.2
Clause [conv]: standard conversions
[diff.cpp03.conv]
C.2.3
Clause [expr]: expressions
[diff.cpp03.expr]
C.2.4
Clause [dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.2.5
Clause [dcl.decl]: declarators
[diff.cpp03.dcl.decl]
C.2.6
Clause [special]: special member functions
[diff.cpp03.special]
C.2.7
Clause [temp]: templates
[diff.cpp03.temp]
C.2.8
Clause [library]: library introduction
[diff.cpp03.library]
C.2.9
Clause [language.support]: language support library
[diff.cpp03.language.support]
C.2.10
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.2.11
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.2.12
Clause [strings]: strings library
[diff.cpp03.strings]
C.2.13
Clause [containers]: containers library
[diff.cpp03.containers]
C.2.14
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.2.15
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.2.16
Clause [input.output]: Input/output library
[diff.cpp03.input.output]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
Clause [lex]: lexical conventions
[diff.cpp11.lex]
C.3.2
Clause [basic]: basic concepts
[diff.cpp11.basic]
C.3.3
Clause [dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.4
Clause [input.output]: input/output library
[diff.cpp11.input.output]
C.4
C standard library
[diff.library]
C.4.1
Modifications to headers
[diff.mods.to.headers]
C.4.2
Modifications to definitions
[diff.mods.to.definitions]
C.4.2.1
Types char16_t and char32_t
[diff.char16]
C.4.2.2
Type wchar_t
[diff.wchar.t]
C.4.2.3
Header <iso646.h>
[diff.header.iso646.h]
C.4.2.4
Macro NULL
[diff.null]
C.4.3
Modifications to declarations
[diff.mods.to.declarations]
C.4.4
Modifications to behavior
[diff.mods.to.behavior]
C.4.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.4.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative) Compatibility features
[depr]
D.1
Increment operator with bool operand
[depr.incr.bool]
D.2
register keyword
[depr.register]
D.3
Implicit declaration of copy functions
[depr.impldec]
D.4
Dynamic exception specifications
[depr.except.spec]
D.5
C standard library headers
[depr.c.headers]
D.6
Old iostreams members
[depr.ios.members]
D.7
char* streams
[depr.str.strstreams]
D.7.1
Class strstreambuf
[depr.strstreambuf]
D.7.1.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.7.1.2
Member functions
[depr.strstreambuf.members]
D.7.1.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.7.2
Class istrstream
[depr.istrstream]
D.7.2.1
istrstream constructors
[depr.istrstream.cons]
D.7.2.2
Member functions
[depr.istrstream.members]
D.7.3
Class ostrstream
[depr.ostrstream]
D.7.3.1
ostrstream constructors
[depr.ostrstream.cons]
D.7.3.2
Member functions
[depr.ostrstream.members]
D.7.4
Class strstream
[depr.strstream]
D.7.4.1
strstream constructors
[depr.strstream.cons]
D.7.4.2
strstream destructor
[depr.strstream.dest]
D.7.4.3
strstream operations
[depr.strstream.oper]
D.8
Function objects
[depr.function.objects]
D.8.1
Base
[depr.base]
D.8.2
Function adaptors
[depr.adaptors]
D.8.2.1
Adaptors for pointers to functions
[depr.function.pointer.adaptors]
D.8.2.2
Adaptors for pointers to members
[depr.member.pointer.adaptors]
D.9
Binders
[depr.lib.binders]
D.9.1
Class template binder1st
[depr.lib.binder.1st]
D.9.2
bind1st
[depr.lib.bind.1st]
D.9.3
Class template binder2nd
[depr.lib.binder.2nd]
D.9.4
bind2nd
[depr.lib.bind.2nd]
D.10
auto_ptr
[depr.auto.ptr]
D.10.1
Class template auto_ptr
[auto.ptr]
D.10.1.1
auto_ptr constructors
[auto.ptr.cons]
D.10.1.2
auto_ptr members
[auto.ptr.members]
D.10.1.3
auto_ptr conversions
[auto.ptr.conv]
D.11
Violating exception-specifications
[exception.unexpected]
D.11.1
Type unexpected_handler
[unexpected.handler]
D.11.2
set_unexpected
[set.unexpected]
D.11.3
get_unexpected
[get.unexpected]
D.11.4
unexpected
[unexpected]
D.12
Random shuffle
[depr.alg.random.shuffle]
Annex E (normative) Universal character names for identifier characters
[charname]
E.1
Ranges of characters allowed
[charname.allowed]
E.2
Ranges of characters disallowed initially
[charname.disallowed]
Index
[generalindex]
Index of library names
[libraryindex]
Index of implementation-defined behavior
[impldefindex]
[
edit
]
Contents
List of Tables
[tab]
List of Figures
[fig]
1
Scope
[intro.scope]
2
Normative references
[intro.refs]
3
Terms and definitions
[intro.defs]
4
General principles
[intro]
4.1
Implementation compliance
[intro.compliance]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
4.4
The C++ memory model
[intro.memory]
4.5
The C++ object model
[intro.object]
4.6
Program execution
[intro.execution]
4.7
Multi-threaded executions and data races
[intro.multithread]
4.7.1
Data races
[intro.races]
4.7.2
Forward progress
[intro.progress]
4.8
Acknowledgments
[intro.ack]
5
Lexical conventions
[lex]
5.1
Separate translation
[lex.separate]
5.2
Phases of translation
[lex.phases]
5.3
Character sets
[lex.charset]
5.4
Preprocessing tokens
[lex.pptoken]
5.5
Alternative tokens
[lex.digraph]
5.6
Tokens
[lex.token]
5.7
Comments
[lex.comment]
5.8
Header names
[lex.header]
5.9
Preprocessing numbers
[lex.ppnumber]
5.10
Identifiers
[lex.name]
5.11
Keywords
[lex.key]
5.12
Operators and punctuators
[lex.operators]
5.13
Literals
[lex.literal]
5.13.1
Kinds of literals
[lex.literal.kinds]
5.13.2
Integer literals
[lex.icon]
5.13.3
Character literals
[lex.ccon]
5.13.4
Floating literals
[lex.fcon]
5.13.5
String literals
[lex.string]
5.13.6
Boolean literals
[lex.bool]
5.13.7
Pointer literals
[lex.nullptr]
5.13.8
User-defined literals
[lex.ext]
6
Basic concepts
[basic]
6.1
Declarations and definitions
[basic.def]
6.2
One-definition rule
[basic.def.odr]
6.3
Scope
[basic.scope]
6.3.1
Declarative regions and scopes
[basic.scope.declarative]
6.3.2
Point of declaration
[basic.scope.pdecl]
6.3.3
Block scope
[basic.scope.block]
6.3.4
Function prototype scope
[basic.scope.proto]
6.3.5
Function scope
[basic.funscope]
6.3.6
Namespace scope
[basic.scope.namespace]
6.3.7
Class scope
[basic.scope.class]
6.3.8
Enumeration scope
[basic.scope.enum]
6.3.9
Template parameter scope
[basic.scope.temp]
6.3.10
Name hiding
[basic.scope.hiding]
6.4
Name lookup
[basic.lookup]
6.4.1
Unqualified name lookup
[basic.lookup.unqual]
6.4.2
Argument-dependent name lookup
[basic.lookup.argdep]
6.4.3
Qualified name lookup
[basic.lookup.qual]
6.4.3.1
Class members
[class.qual]
6.4.3.2
Namespace members
[namespace.qual]
6.4.4
Elaborated type specifiers
[basic.lookup.elab]
6.4.5
Class member access
[basic.lookup.classref]
6.4.6
Using-directives and namespace aliases
[basic.lookup.udir]
6.5
Program and linkage
[basic.link]
6.6
Start and termination
[basic.start]
6.6.1
main function
[basic.start.main]
6.6.2
Static initialization
[basic.start.static]
6.6.3
Dynamic initialization of non-local variables
[basic.start.dynamic]
6.6.4
Termination
[basic.start.term]
6.7
Storage duration
[basic.stc]
6.7.1
Static storage duration
[basic.stc.static]
6.7.2
Thread storage duration
[basic.stc.thread]
6.7.3
Automatic storage duration
[basic.stc.auto]
6.7.4
Dynamic storage duration
[basic.stc.dynamic]
6.7.4.1
Allocation functions
[basic.stc.dynamic.allocation]
6.7.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
6.7.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
6.7.5
Duration of subobjects
[basic.stc.inherit]
6.8
Object lifetime
[basic.life]
6.9
Types
[basic.types]
6.9.1
Fundamental types
[basic.fundamental]
6.9.2
Compound types
[basic.compound]
6.9.3
CV-qualifiers
[basic.type.qualifier]
6.10
Lvalues and rvalues
[basic.lval]
6.11
Alignment
[basic.align]
7
Standard conversions
[conv]
7.1
Lvalue-to-rvalue conversion
[conv.lval]
7.2
Array-to-pointer conversion
[conv.array]
7.3
Function-to-pointer conversion
[conv.func]
7.4
Temporary materialization conversion
[conv.rval]
7.5
Qualification conversions
[conv.qual]
7.6
Integral promotions
[conv.prom]
7.7
Floating-point promotion
[conv.fpprom]
7.8
Integral conversions
[conv.integral]
7.9
Floating-point conversions
[conv.double]
7.10
Floating-integral conversions
[conv.fpint]
7.11
Pointer conversions
[conv.ptr]
7.12
Pointer to member conversions
[conv.mem]
7.13
Function pointer conversions
[conv.fctptr]
7.14
Boolean conversions
[conv.bool]
7.15
Integer conversion rank
[conv.rank]
8
Expressions
[expr]
8.1
Primary expressions
[expr.prim]
8.1.1
Literals
[expr.prim.literal]
8.1.2
This
[expr.prim.this]
8.1.3
Parentheses
[expr.prim.paren]
8.1.4
Names
[expr.prim.id]
8.1.4.1
Unqualified names
[expr.prim.id.unqual]
8.1.4.2
Qualified names
[expr.prim.id.qual]
8.1.5
Lambda expressions
[expr.prim.lambda]
8.1.5.1
Closure types
[expr.prim.lambda.closure]
8.1.5.2
Captures
[expr.prim.lambda.capture]
8.1.6
Fold expressions
[expr.prim.fold]
8.2
Postfix expressions
[expr.post]
8.2.1
Subscripting
[expr.sub]
8.2.2
Function call
[expr.call]
8.2.3
Explicit type conversion (functional notation)
[expr.type.conv]
8.2.4
Pseudo destructor call
[expr.pseudo]
8.2.5
Class member access
[expr.ref]
8.2.6
Increment and decrement
[expr.post.incr]
8.2.7
Dynamic cast
[expr.dynamic.cast]
8.2.8
Type identification
[expr.typeid]
8.2.9
Static cast
[expr.static.cast]
8.2.10
Reinterpret cast
[expr.reinterpret.cast]
8.2.11
Const cast
[expr.const.cast]
8.3
Unary expressions
[expr.unary]
8.3.1
Unary operators
[expr.unary.op]
8.3.2
Increment and decrement
[expr.pre.incr]
8.3.3
Sizeof
[expr.sizeof]
8.3.4
New
[expr.new]
8.3.5
Delete
[expr.delete]
8.3.6
Alignof
[expr.alignof]
8.3.7
noexcept operator
[expr.unary.noexcept]
8.4
Explicit type conversion (cast notation)
[expr.cast]
8.5
Pointer-to-member operators
[expr.mptr.oper]
8.6
Multiplicative operators
[expr.mul]
8.7
Additive operators
[expr.add]
8.8
Shift operators
[expr.shift]
8.9
Relational operators
[expr.rel]
8.10
Equality operators
[expr.eq]
8.11
Bitwise AND operator
[expr.bit.and]
8.12
Bitwise exclusive OR operator
[expr.xor]
8.13
Bitwise inclusive OR operator
[expr.or]
8.14
Logical AND operator
[expr.log.and]
8.15
Logical OR operator
[expr.log.or]
8.16
Conditional operator
[expr.cond]
8.17
Throwing an exception
[expr.throw]
8.18
Assignment and compound assignment operators
[expr.ass]
8.19
Comma operator
[expr.comma]
8.20
Constant expressions
[expr.const]
9
Statements
[stmt.stmt]
9.1
Labeled statement
[stmt.label]
9.2
Expression statement
[stmt.expr]
9.3
Compound statement or block
[stmt.block]
9.4
Selection statements
[stmt.select]
9.4.1
The if statement
[stmt.if]
9.4.2
The switch statement
[stmt.switch]
9.5
Iteration statements
[stmt.iter]
9.5.1
The while statement
[stmt.while]
9.5.2
The do statement
[stmt.do]
9.5.3
The for statement
[stmt.for]
9.5.4
The range-based for statement
[stmt.ranged]
9.6
Jump statements
[stmt.jump]
9.6.1
The break statement
[stmt.break]
9.6.2
The continue statement
[stmt.cont]
9.6.3
The return statement
[stmt.return]
9.6.4
The goto statement
[stmt.goto]
9.7
Declaration statement
[stmt.dcl]
9.8
Ambiguity resolution
[stmt.ambig]
10
Declarations
[dcl.dcl]
10.1
Specifiers
[dcl.spec]
10.1.1
Storage class specifiers
[dcl.stc]
10.1.2
Function specifiers
[dcl.fct.spec]
10.1.3
The typedef specifier
[dcl.typedef]
10.1.4
The friend specifier
[dcl.friend]
10.1.5
The constexpr specifier
[dcl.constexpr]
10.1.6
The inline specifier
[dcl.inline]
10.1.7
Type specifiers
[dcl.type]
10.1.7.1
The cv-qualifiers
[dcl.type.cv]
10.1.7.2
Simple type specifiers
[dcl.type.simple]
10.1.7.3
Elaborated type specifiers
[dcl.type.elab]
10.1.7.4
The auto specifier
[dcl.spec.auto]
10.1.7.4.1
Placeholder type deduction
[dcl.type.auto.deduct]
10.1.7.5
Deduced class template specialization types
[dcl.type.class.deduct]
10.2
Enumeration declarations
[dcl.enum]
10.3
Namespaces
[basic.namespace]
10.3.1
Namespace definition
[namespace.def]
10.3.1.1
Unnamed namespaces
[namespace.unnamed]
10.3.1.2
Namespace member definitions
[namespace.memdef]
10.3.2
Namespace alias
[namespace.alias]
10.3.3
The using declaration
[namespace.udecl]
10.3.4
Using directive
[namespace.udir]
10.4
The asm declaration
[dcl.asm]
10.5
Linkage specifications
[dcl.link]
10.6
Attributes
[dcl.attr]
10.6.1
Attribute syntax and semantics
[dcl.attr.grammar]
10.6.2
Alignment specifier
[dcl.align]
10.6.3
Carries dependency attribute
[dcl.attr.depend]
10.6.4
Deprecated attribute
[dcl.attr.deprecated]
10.6.5
Fallthrough attribute
[dcl.attr.fallthrough]
10.6.6
Maybe unused attribute
[dcl.attr.unused]
10.6.7
Nodiscard attribute
[dcl.attr.nodiscard]
10.6.8
Noreturn attribute
[dcl.attr.noreturn]
11
Declarators
[dcl.decl]
11.1
Type names
[dcl.name]
11.2
Ambiguity resolution
[dcl.ambig.res]
11.3
Meaning of declarators
[dcl.meaning]
11.3.1
Pointers
[dcl.ptr]
11.3.2
References
[dcl.ref]
11.3.3
Pointers to members
[dcl.mptr]
11.3.4
Arrays
[dcl.array]
11.3.5
Functions
[dcl.fct]
11.3.6
Default arguments
[dcl.fct.default]
11.4
Function definitions
[dcl.fct.def]
11.4.1
In general
[dcl.fct.def.general]
11.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
11.4.3
Deleted definitions
[dcl.fct.def.delete]
11.5
Structured binding declarations
[dcl.struct.bind]
11.6
Initializers
[dcl.init]
11.6.1
Aggregates
[dcl.init.aggr]
11.6.2
Character arrays
[dcl.init.string]
11.6.3
References
[dcl.init.ref]
11.6.4
List-initialization
[dcl.init.list]
12
Classes
[class]
12.1
Class names
[class.name]
12.2
Class members
[class.mem]
12.2.1
Member functions
[class.mfct]
12.2.2
Non-static member functions
[class.mfct.non-static]
12.2.2.1
The this pointer
[class.this]
12.2.3
Static members
[class.static]
12.2.3.1
Static member functions
[class.static.mfct]
12.2.3.2
Static data members
[class.static.data]
12.2.4
Bit-fields
[class.bit]
12.2.5
Nested class declarations
[class.nest]
12.2.6
Nested type names
[class.nested.type]
12.3
Unions
[class.union]
12.3.1
Anonymous unions
[class.union.anon]
12.4
Local class declarations
[class.local]
13
Derived classes
[class.derived]
13.1
Multiple base classes
[class.mi]
13.2
Member name lookup
[class.member.lookup]
13.3
Virtual functions
[class.virtual]
13.4
Abstract classes
[class.abstract]
14
Member access control
[class.access]
14.1
Access specifiers
[class.access.spec]
14.2
Accessibility of base classes and base class members
[class.access.base]
14.3
Friends
[class.friend]
14.4
Protected member access
[class.protected]
14.5
Access to virtual functions
[class.access.virt]
14.6
Multiple access
[class.paths]
14.7
Nested classes
[class.access.nest]
15
Special member functions
[special]
15.1
Constructors
[class.ctor]
15.2
Temporary objects
[class.temporary]
15.3
Conversions
[class.conv]
15.3.1
Conversion by constructor
[class.conv.ctor]
15.3.2
Conversion functions
[class.conv.fct]
15.4
Destructors
[class.dtor]
15.5
Free store
[class.free]
15.6
Initialization
[class.init]
15.6.1
Explicit initialization
[class.expl.init]
15.6.2
Initializing bases and members
[class.base.init]
15.6.3
Initialization by inherited constructor
[class.inhctor.init]
15.7
Construction and destruction
[class.cdtor]
15.8
Copying and moving class objects
[class.copy]
15.8.1
Copy/move constructors
[class.copy.ctor]
15.8.2
Copy/move assignment operator
[class.copy.assign]
15.8.3
Copy/move elision
[class.copy.elision]
16
Overloading
[over]
16.1
Overloadable declarations
[over.load]
16.2
Declaration matching
[over.dcl]
16.3
Overload resolution
[over.match]
16.3.1
Candidate functions and argument lists
[over.match.funcs]
16.3.1.1
Function call syntax
[over.match.call]
16.3.1.1.1
Call to named function
[over.call.func]
16.3.1.1.2
Call to object of class type
[over.call.object]
16.3.1.2
Operators in expressions
[over.match.oper]
16.3.1.3
Initialization by constructor
[over.match.ctor]
16.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
16.3.1.5
Initialization by conversion function
[over.match.conv]
16.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
16.3.1.7
Initialization by list-initialization
[over.match.list]
16.3.1.8
Class template argument deduction
[over.match.class.deduct]
16.3.2
Viable functions
[over.match.viable]
16.3.3
Best viable function
[over.match.best]
16.3.3.1
Implicit conversion sequences
[over.best.ics]
16.3.3.1.1
Standard conversion sequences
[over.ics.scs]
16.3.3.1.2
User-defined conversion sequences
[over.ics.user]
16.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
16.3.3.1.4
Reference binding
[over.ics.ref]
16.3.3.1.5
List-initialization sequence
[over.ics.list]
16.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
16.4
Address of overloaded function
[over.over]
16.5
Overloaded operators
[over.oper]
16.5.1
Unary operators
[over.unary]
16.5.2
Binary operators
[over.binary]
16.5.3
Assignment
[over.ass]
16.5.4
Function call
[over.call]
16.5.5
Subscripting
[over.sub]
16.5.6
Class member access
[over.ref]
16.5.7
Increment and decrement
[over.inc]
16.5.8
User-defined literals
[over.literal]
16.6
Built-in operators
[over.built]
17
Templates
[temp]
17.1
Template parameters
[temp.param]
17.2
Names of template specializations
[temp.names]
17.3
Template arguments
[temp.arg]
17.3.1
Template type arguments
[temp.arg.type]
17.3.2
Template non-type arguments
[temp.arg.nontype]
17.3.3
Template template arguments
[temp.arg.template]
17.4
Type equivalence
[temp.type]
17.5
Template declarations
[temp.decls]
17.5.1
Class templates
[temp.class]
17.5.1.1
Member functions of class templates
[temp.mem.func]
17.5.1.2
Member classes of class templates
[temp.mem.class]
17.5.1.3
Static data members of class templates
[temp.static]
17.5.1.4
Enumeration members of class templates
[temp.mem.enum]
17.5.2
Member templates
[temp.mem]
17.5.3
Variadic templates
[temp.variadic]
17.5.4
Friends
[temp.friend]
17.5.5
Class template partial specializations
[temp.class.spec]
17.5.5.1
Matching of class template partial specializations
[temp.class.spec.match]
17.5.5.2
Partial ordering of class template specializations
[temp.class.order]
17.5.5.3
Members of class template specializations
[temp.class.spec.mfunc]
17.5.6
Function templates
[temp.fct]
17.5.6.1
Function template overloading
[temp.over.link]
17.5.6.2
Partial ordering of function templates
[temp.func.order]
17.5.7
Alias templates
[temp.alias]
17.6
Name resolution
[temp.res]
17.6.1
Locally declared names
[temp.local]
17.6.2
Dependent names
[temp.dep]
17.6.2.1
Dependent types
[temp.dep.type]
17.6.2.2
Type-dependent expressions
[temp.dep.expr]
17.6.2.3
Value-dependent expressions
[temp.dep.constexpr]
17.6.2.4
Dependent template arguments
[temp.dep.temp]
17.6.3
Non-dependent names
[temp.nondep]
17.6.4
Dependent name resolution
[temp.dep.res]
17.6.4.1
Point of instantiation
[temp.point]
17.6.4.2
Candidate functions
[temp.dep.candidate]
17.6.5
Friend names declared within a class template
[temp.inject]
17.7
Template instantiation and specialization
[temp.spec]
17.7.1
Implicit instantiation
[temp.inst]
17.7.2
Explicit instantiation
[temp.explicit]
17.7.3
Explicit specialization
[temp.expl.spec]
17.8
Function template specializations
[temp.fct.spec]
17.8.1
Explicit template argument specification
[temp.arg.explicit]
17.8.2
Template argument deduction
[temp.deduct]
17.8.2.1
Deducing template arguments from a function call
[temp.deduct.call]
17.8.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
17.8.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
17.8.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
17.8.2.5
Deducing template arguments from a type
[temp.deduct.type]
17.8.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
17.8.3
Overload resolution
[temp.over]
17.9
Deduction guides
[temp.deduct.guide]
18
Exception handling
[except]
18.1
Throwing an exception
[except.throw]
18.2
Constructors and destructors
[except.ctor]
18.3
Handling an exception
[except.handle]
18.4
Exception specifications
[except.spec]
18.5
Special functions
[except.special]
18.5.1
The std::terminate() function
[except.terminate]
18.5.2
The std::uncaught_exceptions() function
[except.uncaught]
19
Preprocessing directives
[cpp]
19.1
Conditional inclusion
[cpp.cond]
19.2
Source file inclusion
[cpp.include]
19.3
Macro replacement
[cpp.replace]
19.3.1
Argument substitution
[cpp.subst]
19.3.2
The # operator
[cpp.stringize]
19.3.3
The ## operator
[cpp.concat]
19.3.4
Rescanning and further replacement
[cpp.rescan]
19.3.5
Scope of macro definitions
[cpp.scope]
19.4
Line control
[cpp.line]
19.5
Error directive
[cpp.error]
19.6
Pragma directive
[cpp.pragma]
19.7
Null directive
[cpp.null]
19.8
Predefined macro names
[cpp.predefined]
19.9
Pragma operator
[cpp.pragma.op]
20
Library introduction
[library]
20.1
General
[library.general]
20.2
The C standard library
[library.c]
20.3
Definitions
[definitions]
20.4
Method of description (Informative)
[description]
20.4.1
Structure of each clause
[structure]
20.4.1.1
Elements
[structure.elements]
20.4.1.2
Summary
[structure.summary]
20.4.1.3
Requirements
[structure.requirements]
20.4.1.4
Detailed specifications
[structure.specifications]
20.4.1.5
C library
[structure.see.also]
20.4.2
Other conventions
[conventions]
20.4.2.1
Type descriptions
[type.descriptions]
20.4.2.1.1
General
[type.descriptions.general]
20.4.2.1.2
Exposition-only types
[expos.only.types]
20.4.2.1.3
Enumerated types
[enumerated.types]
20.4.2.1.4
Bitmask types
[bitmask.types]
20.4.2.1.5
Character sequences
[character.seq]
20.4.2.1.5.1
Byte strings
[byte.strings]
20.4.2.1.5.2
Multibyte strings
[multibyte.strings]
20.4.2.2
Functions within classes
[functions.within.classes]
20.4.2.3
Private members
[objects.within.classes]
20.5
Library-wide requirements
[requirements]
20.5.1
Library contents and organization
[organization]
20.5.1.1
Library contents
[contents]
20.5.1.2
Headers
[headers]
20.5.1.3
Freestanding implementations
[compliance]
20.5.2
Using the library
[using]
20.5.2.1
Overview
[using.overview]
20.5.2.2
Headers
[using.headers]
20.5.2.3
Linkage
[using.linkage]
20.5.3
Requirements on types and expressions
[utility.requirements]
20.5.3.1
Template argument requirements
[utility.arg.requirements]
20.5.3.2
Swappable requirements
[swappable.requirements]
20.5.3.3
NullablePointer requirements
[nullablepointer.requirements]
20.5.3.4
Hash requirements
[hash.requirements]
20.5.3.5
Allocator requirements
[allocator.requirements]
20.5.3.5.1
Allocator completeness requirements
[allocator.requirements.completeness]
20.5.4
Constraints on programs
[constraints]
20.5.4.1
Overview
[constraints.overview]
20.5.4.2
Namespace use
[namespace.constraints]
20.5.4.2.1
Namespace std
[namespace.std]
20.5.4.2.2
Namespace posix
[namespace.posix]
20.5.4.2.3
Namespaces for future standardization
[namespace.future]
20.5.4.3
Reserved names
[reserved.names]
20.5.4.3.1
Zombie names
[zombie.names]
20.5.4.3.2
Macro names
[macro.names]
20.5.4.3.3
External linkage
[extern.names]
20.5.4.3.4
Types
[extern.types]
20.5.4.3.5
User-defined literal suffixes
[usrlit.suffix]
20.5.4.4
Headers
[alt.headers]
20.5.4.5
Derived classes
[derived.classes]
20.5.4.6
Replacement functions
[replacement.functions]
20.5.4.7
Handler functions
[handler.functions]
20.5.4.8
Other functions
[res.on.functions]
20.5.4.9
Function arguments
[res.on.arguments]
20.5.4.10
Library object access
[res.on.objects]
20.5.4.11
Requires paragraph
[res.on.required]
20.5.5
Conforming implementations
[conforming]
20.5.5.1
Overview
[conforming.overview]
20.5.5.2
Headers
[res.on.headers]
20.5.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
20.5.5.4
Non-member functions
[global.functions]
20.5.5.5
Member functions
[member.functions]
20.5.5.6
Constexpr functions and constructors
[constexpr.functions]
20.5.5.7
Requirements for stable algorithms
[algorithm.stable]
20.5.5.8
Reentrancy
[reentrancy]
20.5.5.9
Data race avoidance
[res.on.data.races]
20.5.5.10
Protection within classes
[protection.within.classes]
20.5.5.11
Derived classes
[derivation]
20.5.5.12
Restrictions on exception handling
[res.on.exception.handling]
20.5.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
20.5.5.14
Value of error codes
[value.error.codes]
20.5.5.15
Moved-from state of library types
[lib.types.movedfrom]
21
Language support library
[language.support]
21.1
General
[support.general]
21.2
Common definitions
[support.types]
21.2.1
Header <cstddef> synopsis
[cstddef.syn]
21.2.2
Header <cstdlib> synopsis
[cstdlib.syn]
21.2.3
Null pointers
[support.types.nullptr]
21.2.4
Sizes, alignments, and offsets
[support.types.layout]
21.2.5
byte type operations
[support.types.byteops]
21.3
Implementation properties
[support.limits]
21.3.1
General
[support.limits.general]
21.3.2
Header <limits> synopsis
[limits.syn]
21.3.3
Floating-point type properties
[fp.style]
21.3.3.1
Type float_round_style
[round.style]
21.3.3.2
Type float_denorm_style
[denorm.style]
21.3.4
Class template numeric_limits
[numeric.limits]
21.3.4.1
numeric_limits members
[numeric.limits.members]
21.3.4.2
numeric_limits specializations
[numeric.special]
21.3.5
Header <climits> synopsis
[climits.syn]
21.3.6
Header <cfloat> synopsis
[cfloat.syn]
21.4
Integer types
[cstdint]
21.4.1
Header <cstdint> synopsis
[cstdint.syn]
21.5
Start and termination
[support.start.term]
21.6
Dynamic memory management
[support.dynamic]
21.6.1
Header <new> synopsis
[new.syn]
21.6.2
Storage allocation and deallocation
[new.delete]
21.6.2.1
Single-object forms
[new.delete.single]
21.6.2.2
Array forms
[new.delete.array]
21.6.2.3
Non-allocating forms
[new.delete.placement]
21.6.2.4
Data races
[new.delete.dataraces]
21.6.3
Storage allocation errors
[alloc.errors]
21.6.3.1
Class bad_alloc
[bad.alloc]
21.6.3.2
Class bad_array_new_length
[new.badlength]
21.6.3.3
Type new_handler
[new.handler]
21.6.3.4
set_new_handler
[set.new.handler]
21.6.3.5
get_new_handler
[get.new.handler]
21.6.4
Pointer optimization barrier
[ptr.launder]
21.6.5
Hardware interference size
[hardware.interference]
21.7
Type identification
[support.rtti]
21.7.1
Header <typeinfo> synopsis
[typeinfo.syn]
21.7.2
Class type_info
[type.info]
21.7.3
Class bad_cast
[bad.cast]
21.7.4
Class bad_typeid
[bad.typeid]
21.8
Exception handling
[support.exception]
21.8.1
Header <exception> synopsis
[exception.syn]
21.8.2
Class exception
[exception]
21.8.3
Class bad_exception
[bad.exception]
21.8.4
Abnormal termination
[exception.terminate]
21.8.4.1
Type terminate_handler
[terminate.handler]
21.8.4.2
set_terminate
[set.terminate]
21.8.4.3
get_terminate
[get.terminate]
21.8.4.4
terminate
[terminate]
21.8.5
uncaught_exceptions
[uncaught.exceptions]
21.8.6
Exception propagation
[propagation]
21.8.7
nested_exception
[except.nested]
21.9
Initializer lists
[support.initlist]
21.9.1
Header <initializer_list> synopsis
[initializer_list.syn]
21.9.2
Initializer list constructors
[support.initlist.cons]
21.9.3
Initializer list access
[support.initlist.access]
21.9.4
Initializer list range access
[support.initlist.range]
21.10
Other runtime support
[support.runtime]
21.10.1
Header <cstdarg> synopsis
[cstdarg.syn]
21.10.2
Header <csetjmp> synopsis
[csetjmp.syn]
21.10.3
Header <csignal> synopsis
[csignal.syn]
21.10.4
Signal handlers
[support.signal]
22
Diagnostics library
[diagnostics]
22.1
General
[diagnostics.general]
22.2
Exception classes
[std.exceptions]
22.2.1
Header <stdexcept> synopsis
[stdexcept.syn]
22.2.2
Class logic_error
[logic.error]
22.2.3
Class domain_error
[domain.error]
22.2.4
Class invalid_argument
[invalid.argument]
22.2.5
Class length_error
[length.error]
22.2.6
Class out_of_range
[out.of.range]
22.2.7
Class runtime_error
[runtime.error]
22.2.8
Class range_error
[range.error]
22.2.9
Class overflow_error
[overflow.error]
22.2.10
Class underflow_error
[underflow.error]
22.3
Assertions
[assertions]
22.3.1
Header <cassert> synopsis
[cassert.syn]
22.3.2
The assert macro
[assertions.assert]
22.4
Error numbers
[errno]
22.4.1
Header <cerrno> synopsis
[cerrno.syn]
22.5
System error support
[syserr]
22.5.1
Header <system_error> synopsis
[system_error.syn]
22.5.2
Class error_category
[syserr.errcat]
22.5.2.1
Class error_category overview
[syserr.errcat.overview]
22.5.2.2
Class error_category virtual members
[syserr.errcat.virtuals]
22.5.2.3
Class error_category non-virtual members
[syserr.errcat.nonvirtuals]
22.5.2.4
Program defined classes derived from error_category
[syserr.errcat.derived]
22.5.2.5
Error category objects
[syserr.errcat.objects]
22.5.3
Class error_code
[syserr.errcode]
22.5.3.1
Class error_code overview
[syserr.errcode.overview]
22.5.3.2
Class error_code constructors
[syserr.errcode.constructors]
22.5.3.3
Class error_code modifiers
[syserr.errcode.modifiers]
22.5.3.4
Class error_code observers
[syserr.errcode.observers]
22.5.3.5
Class error_code non-member functions
[syserr.errcode.nonmembers]
22.5.4
Class error_condition
[syserr.errcondition]
22.5.4.1
Class error_condition overview
[syserr.errcondition.overview]
22.5.4.2
Class error_condition constructors
[syserr.errcondition.constructors]
22.5.4.3
Class error_condition modifiers
[syserr.errcondition.modifiers]
22.5.4.4
Class error_condition observers
[syserr.errcondition.observers]
22.5.4.5
Class error_condition non-member functions
[syserr.errcondition.nonmembers]
22.5.5
Comparison functions
[syserr.compare]
22.5.6
System error hash support
[syserr.hash]
22.5.7
Class system_error
[syserr.syserr]
22.5.7.1
Class system_error overview
[syserr.syserr.overview]
22.5.7.2
Class system_error members
[syserr.syserr.members]
23
General utilities library
[utilities]
23.1
General
[utilities.general]
23.2
Utility components
[utility]
23.2.1
Header <utility> synopsis
[utility.syn]
23.2.2
Operators
[operators]
23.2.3
swap
[utility.swap]
23.2.4
exchange
[utility.exchange]
23.2.5
Forward/move helpers
[forward]
23.2.6
Function template as_const
[utility.as_const]
23.2.7
Function template declval
[declval]
23.2.8
Primitive numeric output conversion
[utility.to.chars]
23.2.9
Primitive numeric input conversion
[utility.from.chars]
23.3
Compile-time integer sequences
[intseq]
23.3.1
In general
[intseq.general]
23.3.2
Class template integer_sequence
[intseq.intseq]
23.3.3
Alias template make_integer_sequence
[intseq.make]
23.4
Pairs
[pairs]
23.4.1
In general
[pairs.general]
23.4.2
Class template pair
[pairs.pair]
23.4.3
Specialized algorithms
[pairs.spec]
23.4.4
Tuple-like access to pair
[pair.astuple]
23.4.5
Piecewise construction
[pair.piecewise]
23.5
Tuples
[tuple]
23.5.1
In general
[tuple.general]
23.5.2
Header <tuple> synopsis
[tuple.syn]
23.5.3
Class template tuple
[tuple.tuple]
23.5.3.1
Construction
[tuple.cnstr]
23.5.3.2
Assignment
[tuple.assign]
23.5.3.3
swap
[tuple.swap]
23.5.3.4
Tuple creation functions
[tuple.creation]
23.5.3.5
Calling a function with a tuple of arguments
[tuple.apply]
23.5.3.6
Tuple helper classes
[tuple.helper]
23.5.3.7
Element access
[tuple.elem]
23.5.3.8
Relational operators
[tuple.rel]
23.5.3.9
Tuple traits
[tuple.traits]
23.5.3.10
Tuple specialized algorithms
[tuple.special]
23.6
Optional objects
[optional]
23.6.1
In general
[optional.general]
23.6.2
Header <optional> synopsis
[optional.syn]
23.6.3
Class template optional
[optional.optional]
23.6.3.1
Constructors
[optional.ctor]
23.6.3.2
Destructor
[optional.dtor]
23.6.3.3
Assignment
[optional.assign]
23.6.3.4
Swap
[optional.swap]
23.6.3.5
Observers
[optional.observe]
23.6.3.6
Modifiers
[optional.mod]
23.6.4
No-value state indicator
[optional.nullopt]
23.6.5
Class bad_optional_access
[optional.bad.access]
23.6.6
Relational operators
[optional.relops]
23.6.7
Comparison with nullopt
[optional.nullops]
23.6.8
Comparison with T
[optional.comp_with_t]
23.6.9
Specialized algorithms
[optional.specalg]
23.6.10
Hash support
[optional.hash]
23.7
Variants
[variant]
23.7.1
In general
[variant.general]
23.7.2
Header <variant> synopsis
[variant.syn]
23.7.3
Class template variant
[variant.variant]
23.7.3.1
Constructors
[variant.ctor]
23.7.3.2
Destructor
[variant.dtor]
23.7.3.3
Assignment
[variant.assign]
23.7.3.4
Modifiers
[variant.mod]
23.7.3.5
Value status
[variant.status]
23.7.3.6
Swap
[variant.swap]
23.7.4
variant helper classes
[variant.helper]
23.7.5
Value access
[variant.get]
23.7.6
Relational operators
[variant.relops]
23.7.7
Visitation
[variant.visit]
23.7.8
Class monostate
[variant.monostate]
23.7.9
monostate relational operators
[variant.monostate.relops]
23.7.10
Specialized algorithms
[variant.specalg]
23.7.11
Class bad_variant_access
[variant.bad.access]
23.7.12
Hash support
[variant.hash]
23.7.13
Allocator-related traits
[variant.traits]
23.8
Storage for any type
[any]
23.8.1
Header <any> synopsis
[any.synop]
23.8.2
Class bad_any_cast
[any.bad_any_cast]
23.8.3
Class any
[any.class]
23.8.3.1
Construction and destruction
[any.cons]
23.8.3.2
Assignment
[any.assign]
23.8.3.3
Modifiers
[any.modifiers]
23.8.3.4
Observers
[any.observers]
23.8.4
Non-member functions
[any.nonmembers]
23.9
Bitsets
[bitset]
23.9.1
Header <bitset> synopsis
[bitset.syn]
23.9.2
Class template bitset
[template.bitset]
23.9.2.1
bitset constructors
[bitset.cons]
23.9.2.2
bitset members
[bitset.members]
23.9.3
bitset hash support
[bitset.hash]
23.9.4
bitset operators
[bitset.operators]
23.10
Memory
[memory]
23.10.1
In general
[memory.general]
23.10.2
Header <memory> synopsis
[memory.syn]
23.10.3
Pointer traits
[pointer.traits]
23.10.3.1
Pointer traits member types
[pointer.traits.types]
23.10.3.2
Pointer traits member functions
[pointer.traits.functions]
23.10.4
Pointer safety
[util.dynamic.safety]
23.10.5
Align
[ptr.align]
23.10.6
Allocator argument tag
[allocator.tag]
23.10.7
uses_allocator
[allocator.uses]
23.10.7.1
uses_allocator trait
[allocator.uses.trait]
23.10.7.2
Uses-allocator construction
[allocator.uses.construction]
23.10.8
Allocator traits
[allocator.traits]
23.10.8.1
Allocator traits member types
[allocator.traits.types]
23.10.8.2
Allocator traits static member functions
[allocator.traits.members]
23.10.9
The default allocator
[default.allocator]
23.10.9.1
allocator members
[allocator.members]
23.10.9.2
allocator globals
[allocator.globals]
23.10.10
Specialized algorithms
[specialized.algorithms]
23.10.10.1
addressof
[specialized.addressof]
23.10.10.2
uninitialized_default_construct
[uninitialized.construct.default]
23.10.10.3
uninitialized_value_construct
[uninitialized.construct.value]
23.10.10.4
uninitialized_copy
[uninitialized.copy]
23.10.10.5
uninitialized_move
[uninitialized.move]
23.10.10.6
uninitialized_fill
[uninitialized.fill]
23.10.10.7
destroy
[specialized.destroy]
23.10.11
C library memory allocation
[c.malloc]
23.11
Smart pointers
[smartptr]
23.11.1
Class template unique_ptr
[unique.ptr]
23.11.1.1
Default deleters
[unique.ptr.dltr]
23.11.1.1.1
In general
[unique.ptr.dltr.general]
23.11.1.1.2
default_delete
[unique.ptr.dltr.dflt]
23.11.1.1.3
default_delete<T[]>
[unique.ptr.dltr.dflt1]
23.11.1.2
unique_ptr for single objects
[unique.ptr.single]
23.11.1.2.1
unique_ptr constructors
[unique.ptr.single.ctor]
23.11.1.2.2
unique_ptr destructor
[unique.ptr.single.dtor]
23.11.1.2.3
unique_ptr assignment
[unique.ptr.single.asgn]
23.11.1.2.4
unique_ptr observers
[unique.ptr.single.observers]
23.11.1.2.5
unique_ptr modifiers
[unique.ptr.single.modifiers]
23.11.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
23.11.1.3.1
unique_ptr constructors
[unique.ptr.runtime.ctor]
23.11.1.3.2
unique_ptr assignment
[unique.ptr.runtime.asgn]
23.11.1.3.3
unique_ptr observers
[unique.ptr.runtime.observers]
23.11.1.3.4
unique_ptr modifiers
[unique.ptr.runtime.modifiers]
23.11.1.4
unique_ptr creation
[unique.ptr.create]
23.11.1.5
unique_ptr specialized algorithms
[unique.ptr.special]
23.11.2
Shared-ownership pointers
[util.smartptr]
23.11.2.1
Class bad_weak_ptr
[util.smartptr.weak.bad]
23.11.2.2
Class template shared_ptr
[util.smartptr.shared]
23.11.2.2.1
shared_ptr constructors
[util.smartptr.shared.const]
23.11.2.2.2
shared_ptr destructor
[util.smartptr.shared.dest]
23.11.2.2.3
shared_ptr assignment
[util.smartptr.shared.assign]
23.11.2.2.4
shared_ptr modifiers
[util.smartptr.shared.mod]
23.11.2.2.5
shared_ptr observers
[util.smartptr.shared.obs]
23.11.2.2.6
shared_ptr creation
[util.smartptr.shared.create]
23.11.2.2.7
shared_ptr comparison
[util.smartptr.shared.cmp]
23.11.2.2.8
shared_ptr specialized algorithms
[util.smartptr.shared.spec]
23.11.2.2.9
shared_ptr casts
[util.smartptr.shared.cast]
23.11.2.2.10
get_deleter
[util.smartptr.getdeleter]
23.11.2.2.11
shared_ptr I/O
[util.smartptr.shared.io]
23.11.2.3
Class template weak_ptr
[util.smartptr.weak]
23.11.2.3.1
weak_ptr constructors
[util.smartptr.weak.const]
23.11.2.3.2
weak_ptr destructor
[util.smartptr.weak.dest]
23.11.2.3.3
weak_ptr assignment
[util.smartptr.weak.assign]
23.11.2.3.4
weak_ptr modifiers
[util.smartptr.weak.mod]
23.11.2.3.5
weak_ptr observers
[util.smartptr.weak.obs]
23.11.2.3.6
weak_ptr specialized algorithms
[util.smartptr.weak.spec]
23.11.2.4
Class template owner_less
[util.smartptr.ownerless]
23.11.2.5
Class template enable_shared_from_this
[util.smartptr.enab]
23.11.2.6
shared_ptr atomic access
[util.smartptr.shared.atomic]
23.11.2.7
Smart pointer hash support
[util.smartptr.hash]
23.12
Memory resources
[mem.res]
23.12.1
Header <memory_resource> synopsis
[mem.res.syn]
23.12.2
Class memory_resource
[mem.res.class]
23.12.2.1
memory_resource public member functions
[mem.res.public]
23.12.2.2
memory_resource private virtual member functions
[mem.res.private]
23.12.2.3
memory_resource equality
[mem.res.eq]
23.12.3
Class template polymorphic_allocator
[mem.poly.allocator.class]
23.12.3.1
polymorphic_allocator constructors
[mem.poly.allocator.ctor]
23.12.3.2
polymorphic_allocator member functions
[mem.poly.allocator.mem]
23.12.3.3
polymorphic_allocator equality
[mem.poly.allocator.eq]
23.12.4
Access to program-wide memory_resource objects
[mem.res.global]
23.12.5
Pool resource classes
[mem.res.pool]
23.12.5.1
Classes synchronized_pool_resource and unsynchronized_pool_resource
[mem.res.pool.overview]
23.12.5.2
pool_options data members
[mem.res.pool.options]
23.12.5.3
Pool resource constructors and destructors
[mem.res.pool.ctor]
23.12.5.4
Pool resource members
[mem.res.pool.mem]
23.12.6
Class monotonic_buffer_resource
[mem.res.monotonic.buffer]
23.12.6.1
monotonic_buffer_resource constructor and destructor
[mem.res.monotonic.buffer.ctor]
23.12.6.2
monotonic_buffer_resource members
[mem.res.monotonic.buffer.mem]
23.13
Class template scoped_allocator_adaptor
[allocator.adaptor]
23.13.1
Header <scoped_allocator> synopsis
[allocator.adaptor.syn]
23.13.2
Scoped allocator adaptor member types
[allocator.adaptor.types]
23.13.3
Scoped allocator adaptor constructors
[allocator.adaptor.cnstr]
23.13.4
Scoped allocator adaptor members
[allocator.adaptor.members]
23.13.5
Scoped allocator operators
[scoped.adaptor.operators]
23.14
Function objects
[function.objects]
23.14.1
Header <functional> synopsis
[functional.syn]
23.14.2
Definitions
[func.def]
23.14.3
Requirements
[func.require]
23.14.4
Function template invoke
[func.invoke]
23.14.5
Class template reference_wrapper
[refwrap]
23.14.5.1
reference_wrapper construct/copy/destroy
[refwrap.const]
23.14.5.2
reference_wrapper assignment
[refwrap.assign]
23.14.5.3
reference_wrapper access
[refwrap.access]
23.14.5.4
reference_wrapper invocation
[refwrap.invoke]
23.14.5.5
reference_wrapper helper functions
[refwrap.helpers]
23.14.6
Arithmetic operations
[arithmetic.operations]
23.14.6.1
Class template plus
[arithmetic.operations.plus]
23.14.6.2
Class template minus
[arithmetic.operations.minus]
23.14.6.3
Class template multiplies
[arithmetic.operations.multiplies]
23.14.6.4
Class template divides
[arithmetic.operations.divides]
23.14.6.5
Class template modulus
[arithmetic.operations.modulus]
23.14.6.6
Class template negate
[arithmetic.operations.negate]
23.14.7
Comparisons
[comparisons]
23.14.7.1
Class template equal_to
[comparisons.equal_to]
23.14.7.2
Class template not_equal_to
[comparisons.not_equal_to]
23.14.7.3
Class template greater
[comparisons.greater]
23.14.7.4
Class template less
[comparisons.less]
23.14.7.5
Class template greater_equal
[comparisons.greater_equal]
23.14.7.6
Class template less_equal
[comparisons.less_equal]
23.14.8
Logical operations
[logical.operations]
23.14.8.1
Class template logical_and
[logical.operations.and]
23.14.8.2
Class template logical_or
[logical.operations.or]
23.14.8.3
Class template logical_not
[logical.operations.not]
23.14.9
Bitwise operations
[bitwise.operations]
23.14.9.1
Class template bit_and
[bitwise.operations.and]
23.14.9.2
Class template bit_or
[bitwise.operations.or]
23.14.9.3
Class template bit_xor
[bitwise.operations.xor]
23.14.9.4
Class template bit_not
[bitwise.operations.not]
23.14.10
Function template not_fn
[func.not_fn]
23.14.11
Function object binders
[func.bind]
23.14.11.1
Class template is_bind_expression
[func.bind.isbind]
23.14.11.2
Class template is_placeholder
[func.bind.isplace]
23.14.11.3
Function template bind
[func.bind.bind]
23.14.11.4
Placeholders
[func.bind.place]
23.14.12
Function template mem_fn
[func.memfn]
23.14.13
Polymorphic function wrappers
[func.wrap]
23.14.13.1
Class bad_function_call
[func.wrap.badcall]
23.14.13.1.1
bad_function_call constructor
[func.wrap.badcall.const]
23.14.13.2
Class template function
[func.wrap.func]
23.14.13.2.1
function construct/copy/destroy
[func.wrap.func.con]
23.14.13.2.2
function modifiers
[func.wrap.func.mod]
23.14.13.2.3
function capacity
[func.wrap.func.cap]
23.14.13.2.4
function invocation
[func.wrap.func.inv]
23.14.13.2.5
function target access
[func.wrap.func.targ]
23.14.13.2.6
null pointer comparison functions
[func.wrap.func.nullptr]
23.14.13.2.7
specialized algorithms
[func.wrap.func.alg]
23.14.14
Searchers
[func.search]
23.14.14.1
Class template default_searcher
[func.search.default]
23.14.14.2
Class template boyer_moore_searcher
[func.search.bm]
23.14.14.3
Class template boyer_moore_horspool_searcher
[func.search.bmh]
23.14.15
Class template hash
[unord.hash]
23.15
Metaprogramming and type traits
[meta]
23.15.1
Requirements
[meta.rqmts]
23.15.2
Header <type_traits> synopsis
[meta.type.synop]
23.15.3
Helper classes
[meta.help]
23.15.4
Unary type traits
[meta.unary]
23.15.4.1
Primary type categories
[meta.unary.cat]
23.15.4.2
Composite type traits
[meta.unary.comp]
23.15.4.3
Type properties
[meta.unary.prop]
23.15.5
Type property queries
[meta.unary.prop.query]
23.15.6
Relationships between types
[meta.rel]
23.15.7
Transformations between types
[meta.trans]
23.15.7.1
Const-volatile modifications
[meta.trans.cv]
23.15.7.2
Reference modifications
[meta.trans.ref]
23.15.7.3
Sign modifications
[meta.trans.sign]
23.15.7.4
Array modifications
[meta.trans.arr]
23.15.7.5
Pointer modifications
[meta.trans.ptr]
23.15.7.6
Other transformations
[meta.trans.other]
23.15.8
Logical operator traits
[meta.logical]
23.16
Compile-time rational arithmetic
[ratio]
23.16.1
In general
[ratio.general]
23.16.2
Header <ratio> synopsis
[ratio.syn]
23.16.3
Class template ratio
[ratio.ratio]
23.16.4
Arithmetic on ratios
[ratio.arithmetic]
23.16.5
Comparison of ratios
[ratio.comparison]
23.16.6
SI types for ratio
[ratio.si]
23.17
Time utilities
[time]
23.17.1
In general
[time.general]
23.17.2
Header <chrono> synopsis
[time.syn]
23.17.3
Clock requirements
[time.clock.req]
23.17.4
Time-related traits
[time.traits]
23.17.4.1
treat_as_floating_point
[time.traits.is_fp]
23.17.4.2
duration_values
[time.traits.duration_values]
23.17.4.3
Specializations of common_type
[time.traits.specializations]
23.17.5
Class template duration
[time.duration]
23.17.5.1
duration constructors
[time.duration.cons]
23.17.5.2
duration observer
[time.duration.observer]
23.17.5.3
duration arithmetic
[time.duration.arithmetic]
23.17.5.4
duration special values
[time.duration.special]
23.17.5.5
duration non-member arithmetic
[time.duration.nonmember]
23.17.5.6
duration comparisons
[time.duration.comparisons]
23.17.5.7
duration_cast
[time.duration.cast]
23.17.5.8
Suffixes for duration literals
[time.duration.literals]
23.17.5.9
duration algorithms
[time.duration.alg]
23.17.6
Class template time_point
[time.point]
23.17.6.1
time_point constructors
[time.point.cons]
23.17.6.2
time_point observer
[time.point.observer]
23.17.6.3
time_point arithmetic
[time.point.arithmetic]
23.17.6.4
time_point special values
[time.point.special]
23.17.6.5
time_point non-member arithmetic
[time.point.nonmember]
23.17.6.6
time_point comparisons
[time.point.comparisons]
23.17.6.7
time_point_cast
[time.point.cast]
23.17.7
Clocks
[time.clock]
23.17.7.1
Class system_clock
[time.clock.system]
23.17.7.2
Class steady_clock
[time.clock.steady]
23.17.7.3
Class high_resolution_clock
[time.clock.hires]
23.17.8
Header <ctime> synopsis
[ctime.syn]
23.18
Class type_index
[type.index]
23.18.1
Header <typeindex> synopsis
[type.index.synopsis]
23.18.2
type_index overview
[type.index.overview]
23.18.3
type_index members
[type.index.members]
23.18.4
Hash support
[type.index.hash]
23.19
Execution policies
[execpol]
23.19.1
In general
[execpol.general]
23.19.2
Header <execution> synopsis
[execution.syn]
23.19.3
Execution policy type trait
[execpol.type]
23.19.4
Sequenced execution policy
[execpol.seq]
23.19.5
Parallel execution policy
[execpol.par]
23.19.6
Parallel and unsequenced execution policy
[execpol.parunseq]
23.19.7
Execution policy objects
[execpol.objects]
24
Strings library
[strings]
24.1
General
[strings.general]
24.2
Character traits
[char.traits]
24.2.1
Character traits requirements
[char.traits.require]
24.2.2
Traits typedefs
[char.traits.typedefs]
24.2.3
char_traits specializations
[char.traits.specializations]
24.2.3.1
struct char_traits<char>
[char.traits.specializations.char]
24.2.3.2
struct char_traits<char16_t>
[char.traits.specializations.char16_t]
24.2.3.3
struct char_traits<char32_t>
[char.traits.specializations.char32_t]
24.2.3.4
struct char_traits<wchar_t>
[char.traits.specializations.wchar.t]
24.3
String classes
[string.classes]
24.3.1
Header <string> synopsis
[string.syn]
24.3.2
Class template basic_string
[basic.string]
24.3.2.1
basic_string general requirements
[string.require]
24.3.2.2
basic_string constructors and assignment operators
[string.cons]
24.3.2.3
basic_string iterator support
[string.iterators]
24.3.2.4
basic_string capacity
[string.capacity]
24.3.2.5
basic_string element access
[string.access]
24.3.2.6
basic_string modifiers
[string.modifiers]
24.3.2.6.1
basic_string::operator+=
[string.op+=]
24.3.2.6.2
basic_string::append
[string.append]
24.3.2.6.3
basic_string::assign
[string.assign]
24.3.2.6.4
basic_string::insert
[string.insert]
24.3.2.6.5
basic_string::erase
[string.erase]
24.3.2.6.6
basic_string::replace
[string.replace]
24.3.2.6.7
basic_string::copy
[string.copy]
24.3.2.6.8
basic_string::swap
[string.swap]
24.3.2.7
basic_string string operations
[string.ops]
24.3.2.7.1
basic_string accessors
[string.accessors]
24.3.2.7.2
basic_string::find
[string.find]
24.3.2.7.3
basic_string::rfind
[string.rfind]
24.3.2.7.4
basic_string::find_first_of
[string.find.first.of]
24.3.2.7.5
basic_string::find_last_of
[string.find.last.of]
24.3.2.7.6
basic_string::find_first_not_of
[string.find.first.not.of]
24.3.2.7.7
basic_string::find_last_not_of
[string.find.last.not.of]
24.3.2.7.8
basic_string::substr
[string.substr]
24.3.2.7.9
basic_string::compare
[string.compare]
24.3.3
basic_string non-member functions
[string.nonmembers]
24.3.3.1
operator+
[string.op+]
24.3.3.2
operator==
[string.operator==]
24.3.3.3
operator!=
[string.op!=]
24.3.3.4
[[CppStd:string.op%3c|operator< [string.op<]]]
[string.op%3c]
24.3.3.5
[[CppStd:string.op%3e|operator> [string.op>]]]
[string.op%3e]
24.3.3.6
[[CppStd:string.op%3c=|operator<= [string.op<=]]]
[string.op%3c=]
24.3.3.7
[[CppStd:string.op%3e=|operator>= [string.op>=]]]
[string.op%3e=]
24.3.3.8
swap
[string.special]
24.3.3.9
Inserters and extractors
[string.io]
24.3.4
Numeric conversions
[string.conversions]
24.3.5
Hash support
[basic.string.hash]
24.3.6
Suffix for basic_string literals
[basic.string.literals]
24.4
String view classes
[string.view]
24.4.1
Header <string_view> synopsis
[string.view.synop]
24.4.2
Class template basic_string_view
[string.view.template]
24.4.2.1
Construction and assignment
[string.view.cons]
24.4.2.2
Iterator support
[string.view.iterators]
24.4.2.3
Capacity
[string.view.capacity]
24.4.2.4
Element access
[string.view.access]
24.4.2.5
Modifiers
[string.view.modifiers]
24.4.2.6
String operations
[string.view.ops]
24.4.2.7
Searching
[string.view.find]
24.4.3
Non-member comparison functions
[string.view.comparison]
24.4.4
Inserters and extractors
[string.view.io]
24.4.5
Hash support
[string.view.hash]
24.4.6
Suffix for basic_string_view literals
[string.view.literals]
24.5
Null-terminated sequence utilities
[c.strings]
24.5.1
Header <cctype> synopsis
[cctype.syn]
24.5.2
Header <cwctype> synopsis
[cwctype.syn]
24.5.3
Header <cstring> synopsis
[cstring.syn]
24.5.4
Header <cwchar> synopsis
[cwchar.syn]
24.5.5
Header <cuchar> synopsis
[cuchar.syn]
24.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
25
Localization library
[localization]
25.1
General
[localization.general]
25.2
Header <locale> synopsis
[locale.syn]
25.3
Locales
[locales]
25.3.1
Class locale
[locale]
25.3.1.1
locale types
[locale.types]
25.3.1.1.1
Type locale::category
[locale.category]
25.3.1.1.2
Class locale::facet
[locale.facet]
25.3.1.1.3
Class locale::id
[locale.id]
25.3.1.2
locale constructors and destructor
[locale.cons]
25.3.1.3
locale members
[locale.members]
25.3.1.4
locale operators
[locale.operators]
25.3.1.5
locale static members
[locale.statics]
25.3.2
locale globals
[locale.global.templates]
25.3.3
Convenience interfaces
[locale.convenience]
25.3.3.1
Character classification
[classification]
25.3.3.2
Conversions
[conversions]
25.3.3.2.1
Character conversions
[conversions.character]
25.4
Standard locale categories
[locale.categories]
25.4.1
The ctype category
[category.ctype]
25.4.1.1
Class template ctype
[locale.ctype]
25.4.1.1.1
ctype members
[locale.ctype.members]
25.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
25.4.1.2
Class template ctype_byname
[locale.ctype.byname]
25.4.1.3
ctype specializations
[facet.ctype.special]
25.4.1.3.1
ctype<char> destructor
[facet.ctype.char.dtor]
25.4.1.3.2
ctype<char> members
[facet.ctype.char.members]
25.4.1.3.3
ctype<char> static members
[facet.ctype.char.statics]
25.4.1.3.4
ctype<char> virtual functions
[facet.ctype.char.virtuals]
25.4.1.4
Class template codecvt
[locale.codecvt]
25.4.1.4.1
codecvt members
[locale.codecvt.members]
25.4.1.4.2
codecvt virtual functions
[locale.codecvt.virtuals]
25.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
25.4.2
The numeric category
[category.numeric]
25.4.2.1
Class template num_get
[locale.num.get]
25.4.2.1.1
num_get members
[facet.num.get.members]
25.4.2.1.2
num_get virtual functions
[facet.num.get.virtuals]
25.4.2.2
Class template num_put
[locale.nm.put]
25.4.2.2.1
num_put members
[facet.num.put.members]
25.4.2.2.2
num_put virtual functions
[facet.num.put.virtuals]
25.4.3
The numeric punctuation facet
[facet.numpunct]
25.4.3.1
Class template numpunct
[locale.numpunct]
25.4.3.1.1
numpunct members
[facet.numpunct.members]
25.4.3.1.2
numpunct virtual functions
[facet.numpunct.virtuals]
25.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
25.4.4
The collate category
[category.collate]
25.4.4.1
Class template collate
[locale.collate]
25.4.4.1.1
collate members
[locale.collate.members]
25.4.4.1.2
collate virtual functions
[locale.collate.virtuals]
25.4.4.2
Class template collate_byname
[locale.collate.byname]
25.4.5
The time category
[category.time]
25.4.5.1
Class template time_get
[locale.time.get]
25.4.5.1.1
time_get members
[locale.time.get.members]
25.4.5.1.2
time_get virtual functions
[locale.time.get.virtuals]
25.4.5.2
Class template time_get_byname
[locale.time.get.byname]
25.4.5.3
Class template time_put
[locale.time.put]
25.4.5.3.1
time_put members
[locale.time.put.members]
25.4.5.3.2
time_put virtual functions
[locale.time.put.virtuals]
25.4.5.4
Class template time_put_byname
[locale.time.put.byname]
25.4.6
The monetary category
[category.monetary]
25.4.6.1
Class template money_get
[locale.money.get]
25.4.6.1.1
money_get members
[locale.money.get.members]
25.4.6.1.2
money_get virtual functions
[locale.money.get.virtuals]
25.4.6.2
Class template money_put
[locale.money.put]
25.4.6.2.1
money_put members
[locale.money.put.members]
25.4.6.2.2
money_put virtual functions
[locale.money.put.virtuals]
25.4.6.3
Class template moneypunct
[locale.moneypunct]
25.4.6.3.1
moneypunct members
[locale.moneypunct.members]
25.4.6.3.2
moneypunct virtual functions
[locale.moneypunct.virtuals]
25.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
25.4.7
The message retrieval category
[category.messages]
25.4.7.1
Class template messages
[locale.messages]
25.4.7.1.1
messages members
[locale.messages.members]
25.4.7.1.2
messages virtual functions
[locale.messages.virtuals]
25.4.7.2
Class template messages_byname
[locale.messages.byname]
25.4.8
Program-defined facets
[facets.examples]
25.5
C library locales
[c.locales]
25.5.1
Header <clocale> synopsis
[clocale.syn]
26
Containers library
[containers]
26.1
General
[containers.general]
26.2
Container requirements
[container.requirements]
26.2.1
General container requirements
[container.requirements.general]
26.2.2
Container data races
[container.requirements.dataraces]
26.2.3
Sequence containers
[sequence.reqmts]
26.2.4
Node handles
[container.node]
26.2.4.1
node_handle overview
[container.node.overview]
26.2.4.2
node_handle constructors, copy, and assignment
[container.node.cons]
26.2.4.3
node_handle destructor
[container.node.dtor]
26.2.4.4
node_handle observers
[container.node.observers]
26.2.4.5
node_handle modifiers
[container.node.modifiers]
26.2.5
Insert return type
[container.insert.return]
26.2.6
Associative containers
[associative.reqmts]
26.2.6.1
Exception safety guarantees
[associative.reqmts.except]
26.2.7
Unordered associative containers
[unord.req]
26.2.7.1
Exception safety guarantees
[unord.req.except]
26.3
Sequence containers
[sequences]
26.3.1
In general
[sequences.general]
26.3.2
Header <array> synopsis
[array.syn]
26.3.3
Header <deque> synopsis
[deque.syn]
26.3.4
Header <forward_list> synopsis
[forward_list.syn]
26.3.5
Header <list> synopsis
[list.syn]
26.3.6
Header <vector> synopsis
[vector.syn]
26.3.7
Class template array
[array]
26.3.7.1
Class template array overview
[array.overview]
26.3.7.2
array constructors, copy, and assignment
[array.cons]
26.3.7.3
array specialized algorithms
[array.special]
26.3.7.4
array::size
[array.size]
26.3.7.5
array::data
[array.data]
26.3.7.6
array::fill
[array.fill]
26.3.7.7
array::swap
[array.swap]
26.3.7.8
Zero sized arrays
[array.zero]
26.3.7.9
Tuple interface to class template array
[array.tuple]
26.3.8
Class template deque
[deque]
26.3.8.1
Class template deque overview
[deque.overview]
26.3.8.2
deque constructors, copy, and assignment
[deque.cons]
26.3.8.3
deque capacity
[deque.capacity]
26.3.8.4
deque modifiers
[deque.modifiers]
26.3.8.5
deque specialized algorithms
[deque.special]
26.3.9
Class template forward_list
[forwardlist]
26.3.9.1
Class template forward_list overview
[forwardlist.overview]
26.3.9.2
forward_list constructors, copy, assignment
[forwardlist.cons]
26.3.9.3
forward_list iterators
[forwardlist.iter]
26.3.9.4
forward_list element access
[forwardlist.access]
26.3.9.5
forward_list modifiers
[forwardlist.modifiers]
26.3.9.6
forward_list operations
[forwardlist.ops]
26.3.9.7
forward_list specialized algorithms
[forwardlist.spec]
26.3.10
Class template list
[list]
26.3.10.1
Class template list overview
[list.overview]
26.3.10.2
list constructors, copy, and assignment
[list.cons]
26.3.10.3
list capacity
[list.capacity]
26.3.10.4
list modifiers
[list.modifiers]
26.3.10.5
list operations
[list.ops]
26.3.10.6
list specialized algorithms
[list.special]
26.3.11
Class template vector
[vector]
26.3.11.1
Class template vector overview
[vector.overview]
26.3.11.2
vector constructors, copy, and assignment
[vector.cons]
26.3.11.3
vector capacity
[vector.capacity]
26.3.11.4
vector data
[vector.data]
26.3.11.5
vector modifiers
[vector.modifiers]
26.3.11.6
vector specialized algorithms
[vector.special]
26.3.12
Class vector<bool>
[vector.bool]
26.4
Associative containers
[associative]
26.4.1
In general
[associative.general]
26.4.2
Header <map> synopsis
[associative.map.syn]
26.4.3
Header <set> synopsis
[associative.set.syn]
26.4.4
Class template map
[map]
26.4.4.1
Class template map overview
[map.overview]
26.4.4.2
map constructors, copy, and assignment
[map.cons]
26.4.4.3
map element access
[map.access]
26.4.4.4
map modifiers
[map.modifiers]
26.4.4.5
map specialized algorithms
[map.special]
26.4.5
Class template multimap
[multimap]
26.4.5.1
Class template multimap overview
[multimap.overview]
26.4.5.2
multimap constructors
[multimap.cons]
26.4.5.3
multimap modifiers
[multimap.modifiers]
26.4.5.4
multimap specialized algorithms
[multimap.special]
26.4.6
Class template set
[set]
26.4.6.1
Class template set overview
[set.overview]
26.4.6.2
set constructors, copy, and assignment
[set.cons]
26.4.6.3
set specialized algorithms
[set.special]
26.4.7
Class template multiset
[multiset]
26.4.7.1
Class template multiset overview
[multiset.overview]
26.4.7.2
multiset constructors
[multiset.cons]
26.4.7.3
multiset specialized algorithms
[multiset.special]
26.5
Unordered associative containers
[unord]
26.5.1
In general
[unord.general]
26.5.2
Header <unordered_map> synopsis
[unord.map.syn]
26.5.3
Header <unordered_set> synopsis
[unord.set.syn]
26.5.4
Class template unordered_map
[unord.map]
26.5.4.1
Class template unordered_map overview
[unord.map.overview]
26.5.4.2
unordered_map constructors
[unord.map.cnstr]
26.5.4.3
unordered_map element access
[unord.map.elem]
26.5.4.4
unordered_map modifiers
[unord.map.modifiers]
26.5.4.5
unordered_map swap
[unord.map.swap]
26.5.5
Class template unordered_multimap
[unord.multimap]
26.5.5.1
Class template unordered_multimap overview
[unord.multimap.overview]
26.5.5.2
unordered_multimap constructors
[unord.multimap.cnstr]
26.5.5.3
unordered_multimap modifiers
[unord.multimap.modifiers]
26.5.5.4
unordered_multimap swap
[unord.multimap.swap]
26.5.6
Class template unordered_set
[unord.set]
26.5.6.1
Class template unordered_set overview
[unord.set.overview]
26.5.6.2
unordered_set constructors
[unord.set.cnstr]
26.5.6.3
unordered_set swap
[unord.set.swap]
26.5.7
Class template unordered_multiset
[unord.multiset]
26.5.7.1
Class template unordered_multiset overview
[unord.multiset.overview]
26.5.7.2
unordered_multiset constructors
[unord.multiset.cnstr]
26.5.7.3
unordered_multiset swap
[unord.multiset.swap]
26.6
Container adaptors
[container.adaptors]
26.6.1
In general
[container.adaptors.general]
26.6.2
Header <queue> synopsis
[queue.syn]
26.6.3
Header <stack> synopsis
[stack.syn]
26.6.4
Class template queue
[queue]
26.6.4.1
queue definition
[queue.defn]
26.6.4.2
queue constructors
[queue.cons]
26.6.4.3
queue constructors with allocators
[queue.cons.alloc]
26.6.4.4
queue operators
[queue.ops]
26.6.4.5
queue specialized algorithms
[queue.special]
26.6.5
Class template priority_queue
[priority.queue]
26.6.5.1
priority_queue constructors
[priqueue.cons]
26.6.5.2
priority_queue constructors with allocators
[priqueue.cons.alloc]
26.6.5.3
priority_queue members
[priqueue.members]
26.6.5.4
priority_queue specialized algorithms
[priqueue.special]
26.6.6
Class template stack
[stack]
26.6.6.1
stack definition
[stack.defn]
26.6.6.2
stack constructors
[stack.cons]
26.6.6.3
stack constructors with allocators
[stack.cons.alloc]
26.6.6.4
stack operators
[stack.ops]
26.6.6.5
stack specialized algorithms
[stack.special]
27
Iterators library
[iterators]
27.1
General
[iterators.general]
27.2
Iterator requirements
[iterator.requirements]
27.2.1
In general
[iterator.requirements.general]
27.2.2
Iterator
[iterator.iterators]
27.2.3
Input iterators
[input.iterators]
27.2.4
Output iterators
[output.iterators]
27.2.5
Forward iterators
[forward.iterators]
27.2.6
Bidirectional iterators
[bidirectional.iterators]
27.2.7
Random access iterators
[random.access.iterators]
27.3
Header <iterator> synopsis
[iterator.synopsis]
27.4
Iterator primitives
[iterator.primitives]
27.4.1
Iterator traits
[iterator.traits]
27.4.2
Standard iterator tags
[std.iterator.tags]
27.4.3
Iterator operations
[iterator.operations]
27.5
Iterator adaptors
[predef.iterators]
27.5.1
Reverse iterators
[reverse.iterators]
27.5.1.1
Class template reverse_iterator
[reverse.iterator]
27.5.1.2
reverse_iterator requirements
[reverse.iter.requirements]
27.5.1.3
reverse_iterator operations
[reverse.iter.ops]
27.5.1.3.1
reverse_iterator constructor
[reverse.iter.cons]
27.5.1.3.2
reverse_iterator::operator=
[reverse.iter.op=]
27.5.1.3.3
Conversion
[reverse.iter.conv]
27.5.1.3.4
operator*
[reverse.iter.op.star]
27.5.1.3.5
operator->
[reverse.iter.opref]
27.5.1.3.6
operator++
[reverse.iter.op++]
27.5.1.3.7
operator--
[reverse.iter.op--]
27.5.1.3.8
operator+
[reverse.iter.op+]
27.5.1.3.9
operator+=
[reverse.iter.op+=]
27.5.1.3.10
operator-
[reverse.iter.op-]
27.5.1.3.11
operator-=
[reverse.iter.op-=]
27.5.1.3.12
operator[]
[reverse.iter.opindex]
27.5.1.3.13
operator==
[reverse.iter.op==]
27.5.1.3.14
[[CppStd:reverse.iter.op%3c|operator< [reverse.iter.op<]]]
[reverse.iter.op%3c]
27.5.1.3.15
operator!=
[reverse.iter.op!=]
27.5.1.3.16
[[CppStd:reverse.iter.op%3e|operator> [reverse.iter.op>]]]
[reverse.iter.op%3e]
27.5.1.3.17
[[CppStd:reverse.iter.op%3e=|operator>= [reverse.iter.op>=]]]
[reverse.iter.op%3e=]
27.5.1.3.18
[[CppStd:reverse.iter.op%3c=|operator<= [reverse.iter.op<=]]]
[reverse.iter.op%3c=]
27.5.1.3.19
operator-
[reverse.iter.opdiff]
27.5.1.3.20
operator+
[reverse.iter.opsum]
27.5.1.3.21
Non-member function make_reverse_iterator()
[reverse.iter.make]
27.5.2
Insert iterators
[insert.iterators]
27.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
27.5.2.2
back_insert_iterator operations
[back.insert.iter.ops]
27.5.2.2.1
back_insert_iterator constructor
[back.insert.iter.cons]
27.5.2.2.2
back_insert_iterator::operator=
[back.insert.iter.op=]
27.5.2.2.3
back_insert_iterator::operator*
[back.insert.iter.op*]
27.5.2.2.4
back_insert_iterator::operator++
[back.insert.iter.op++]
27.5.2.2.5
back_inserter
[back.inserter]
27.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
27.5.2.4
front_insert_iterator operations
[front.insert.iter.ops]
27.5.2.4.1
front_insert_iterator constructor
[front.insert.iter.cons]
27.5.2.4.2
front_insert_iterator::operator=
[front.insert.iter.op=]
27.5.2.4.3
front_insert_iterator::operator*
[front.insert.iter.op*]
27.5.2.4.4
front_insert_iterator::operator++
[front.insert.iter.op++]
27.5.2.4.5
front_inserter
[front.inserter]
27.5.2.5
Class template insert_iterator
[insert.iterator]
27.5.2.6
insert_iterator operations
[insert.iter.ops]
27.5.2.6.1
insert_iterator constructor
[insert.iter.cons]
27.5.2.6.2
insert_iterator::operator=
[insert.iter.op=]
27.5.2.6.3
insert_iterator::operator*
[insert.iter.op*]
27.5.2.6.4
insert_iterator::operator++
[insert.iter.op++]
27.5.2.6.5
inserter
[inserter]
27.5.3
Move iterators
[move.iterators]
27.5.3.1
Class template move_iterator
[move.iterator]
27.5.3.2
move_iterator requirements
[move.iter.requirements]
27.5.3.3
move_iterator operations
[move.iter.ops]
27.5.3.3.1
move_iterator constructors
[move.iter.op.const]
27.5.3.3.2
move_iterator::operator=
[move.iter.op=]
27.5.3.3.3
move_iterator conversion
[move.iter.op.conv]
27.5.3.3.4
move_iterator::operator*
[move.iter.op.star]
27.5.3.3.5
move_iterator::operator->
[move.iter.op.ref]
27.5.3.3.6
move_iterator::operator++
[move.iter.op.incr]
27.5.3.3.7
move_iterator::operator--
[move.iter.op.decr]
27.5.3.3.8
move_iterator::operator+
[move.iter.op.+]
27.5.3.3.9
move_iterator::operator+=
[move.iter.op.+=]
27.5.3.3.10
move_iterator::operator-
[move.iter.op.-]
27.5.3.3.11
move_iterator::operator-=
[move.iter.op.-=]
27.5.3.3.12
move_iterator::operator[]
[move.iter.op.index]
27.5.3.3.13
move_iterator comparisons
[move.iter.op.comp]
27.5.3.3.14
move_iterator non-member functions
[move.iter.nonmember]
27.6
Stream iterators
[stream.iterators]
27.6.1
Class template istream_iterator
[istream.iterator]
27.6.1.1
istream_iterator constructors and destructor
[istream.iterator.cons]
27.6.1.2
istream_iterator operations
[istream.iterator.ops]
27.6.2
Class template ostream_iterator
[ostream.iterator]
27.6.2.1
ostream_iterator constructors and destructor
[ostream.iterator.cons.des]
27.6.2.2
ostream_iterator operations
[ostream.iterator.ops]
27.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
27.6.3.1
Class template istreambuf_iterator::proxy
[istreambuf.iterator.proxy]
27.6.3.2
istreambuf_iterator constructors
[istreambuf.iterator.cons]
27.6.3.3
istreambuf_iterator operations
[istreambuf.iterator.ops]
27.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
27.6.4.1
ostreambuf_iterator constructors
[ostreambuf.iter.cons]
27.6.4.2
ostreambuf_iterator operations
[ostreambuf.iter.ops]
27.7
Range access
[iterator.range]
27.8
Container access
[iterator.container]
28
Algorithms library
[algorithms]
28.1
General
[algorithms.general]
28.2
Header <algorithm> synopsis
[algorithm.syn]
28.3
Algorithms requirements
[algorithms.requirements]
28.4
Parallel algorithms
[algorithms.parallel]
28.4.1
Terms and definitions
[algorithms.parallel.defns]
28.4.2
Requirements on user-provided function objects
[algorithms.parallel.user]
28.4.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
28.4.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
28.4.5
ExecutionPolicy algorithm overloads
[algorithms.parallel.overloads]
28.5
Non-modifying sequence operations
[alg.nonmodifying]
28.5.1
All of
[alg.all_of]
28.5.2
Any of
[alg.any_of]
28.5.3
None of
[alg.none_of]
28.5.4
For each
[alg.foreach]
28.5.5
Find
[alg.find]
28.5.6
Find end
[alg.find.end]
28.5.7
Find first
[alg.find.first.of]
28.5.8
Adjacent find
[alg.adjacent.find]
28.5.9
Count
[alg.count]
28.5.10
Mismatch
[mismatch]
28.5.11
Equal
[alg.equal]
28.5.12
Is permutation
[alg.is_permutation]
28.5.13
Search
[alg.search]
28.6
Mutating sequence operations
[alg.modifying.operations]
28.6.1
Copy
[alg.copy]
28.6.2
Move
[alg.move]
28.6.3
Swap
[alg.swap]
28.6.4
Transform
[alg.transform]
28.6.5
Replace
[alg.replace]
28.6.6
Fill
[alg.fill]
28.6.7
Generate
[alg.generate]
28.6.8
Remove
[alg.remove]
28.6.9
Unique
[alg.unique]
28.6.10
Reverse
[alg.reverse]
28.6.11
Rotate
[alg.rotate]
28.6.12
Sample
[alg.random.sample]
28.6.13
Shuffle
[alg.random.shuffle]
28.7
Sorting and related operations
[alg.sorting]
28.7.1
Sorting
[alg.sort]
28.7.1.1
sort
[sort]
28.7.1.2
stable_sort
[stable.sort]
28.7.1.3
partial_sort
[partial.sort]
28.7.1.4
partial_sort_copy
[partial.sort.copy]
28.7.1.5
is_sorted
[is.sorted]
28.7.2
Nth element
[alg.nth.element]
28.7.3
Binary search
[alg.binary.search]
28.7.3.1
lower_bound
[lower.bound]
28.7.3.2
upper_bound
[upper.bound]
28.7.3.3
equal_range
[equal.range]
28.7.3.4
binary_search
[binary.search]
28.7.4
Partitions
[alg.partitions]
28.7.5
Merge
[alg.merge]
28.7.6
Set operations on sorted structures
[alg.set.operations]
28.7.6.1
includes
[includes]
28.7.6.2
set_union
[set.union]
28.7.6.3
set_intersection
[set.intersection]
28.7.6.4
set_difference
[set.difference]
28.7.6.5
set_symmetric_difference
[set.symmetric.difference]
28.7.7
Heap operations
[alg.heap.operations]
28.7.7.1
push_heap
[push.heap]
28.7.7.2
pop_heap
[pop.heap]
28.7.7.3
make_heap
[make.heap]
28.7.7.4
sort_heap
[sort.heap]
28.7.7.5
is_heap
[is.heap]
28.7.8
Minimum and maximum
[alg.min.max]
28.7.9
Bounded value
[alg.clamp]
28.7.10
Lexicographical comparison
[alg.lex.comparison]
28.7.11
Permutation generators
[alg.permutation.generators]
28.8
C library algorithms
[alg.c.library]
29
Numerics library
[numerics]
29.1
General
[numerics.general]
29.2
Definitions
[numerics.defns]
29.3
Numeric type requirements
[numeric.requirements]
29.4
The floating-point environment
[cfenv]
29.4.1
Header <cfenv> synopsis
[cfenv.syn]
29.5
Complex numbers
[complex.numbers]
29.5.1
Header <complex> synopsis
[complex.syn]
29.5.2
Class template complex
[complex]
29.5.3
complex specializations
[complex.special]
29.5.4
complex member functions
[complex.members]
29.5.5
complex member operators
[complex.member.ops]
29.5.6
complex non-member operations
[complex.ops]
29.5.7
complex value operations
[complex.value.ops]
29.5.8
complex transcendentals
[complex.transcendentals]
29.5.9
Additional overloads
[cmplx.over]
29.5.10
Suffixes for complex number literals
[complex.literals]
29.6
Random number generation
[rand]
29.6.1
Requirements
[rand.req]
29.6.1.1
General requirements
[rand.req.genl]
29.6.1.2
Seed sequence requirements
[rand.req.seedseq]
29.6.1.3
Uniform random bit generator requirements
[rand.req.urng]
29.6.1.4
Random number engine requirements
[rand.req.eng]
29.6.1.5
Random number engine adaptor requirements
[rand.req.adapt]
29.6.1.6
Random number distribution requirements
[rand.req.dist]
29.6.2
Header <random> synopsis
[rand.synopsis]
29.6.3
Random number engine class templates
[rand.eng]
29.6.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
29.6.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
29.6.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
29.6.4
Random number engine adaptor class templates
[rand.adapt]
29.6.4.1
In general
[rand.adapt.general]
29.6.4.2
Class template discard_block_engine
[rand.adapt.disc]
29.6.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
29.6.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
29.6.5
Engines and engine adaptors with predefined parameters
[rand.predef]
29.6.6
Class random_device
[rand.device]
29.6.7
Utilities
[rand.util]
29.6.7.1
Class seed_seq
[rand.util.seedseq]
29.6.7.2
Function template generate_canonical
[rand.util.canonical]
29.6.8
Random number distribution class templates
[rand.dist]
29.6.8.1
In general
[rand.dist.general]
29.6.8.2
Uniform distributions
[rand.dist.uni]
29.6.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
29.6.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
29.6.8.3
Bernoulli distributions
[rand.dist.bern]
29.6.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
29.6.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
29.6.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
29.6.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
29.6.8.4
Poisson distributions
[rand.dist.pois]
29.6.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
29.6.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
29.6.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
29.6.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
29.6.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
29.6.8.5
Normal distributions
[rand.dist.norm]
29.6.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
29.6.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
29.6.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
29.6.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
29.6.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
29.6.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
29.6.8.6
Sampling distributions
[rand.dist.samp]
29.6.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
29.6.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
29.6.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
29.6.9
Low-quality random number generation
[c.math.rand]
29.7
Numeric arrays
[numarray]
29.7.1
Header <valarray> synopsis
[valarray.syn]
29.7.2
Class template valarray
[template.valarray]
29.7.2.1
Class template valarray overview
[template.valarray.overview]
29.7.2.2
valarray constructors
[valarray.cons]
29.7.2.3
valarray assignment
[valarray.assign]
29.7.2.4
valarray element access
[valarray.access]
29.7.2.5
valarray subset operations
[valarray.sub]
29.7.2.6
valarray unary operators
[valarray.unary]
29.7.2.7
valarray compound assignment
[valarray.cassign]
29.7.2.8
valarray member functions
[valarray.members]
29.7.3
valarray non-member operations
[valarray.nonmembers]
29.7.3.1
valarray binary operators
[valarray.binary]
29.7.3.2
valarray logical operators
[valarray.comparison]
29.7.3.3
valarray transcendentals
[valarray.transcend]
29.7.3.4
valarray specialized algorithms
[valarray.special]
29.7.4
Class slice
[class.slice]
29.7.4.1
Class slice overview
[class.slice.overview]
29.7.4.2
slice constructors
[cons.slice]
29.7.4.3
slice access functions
[slice.access]
29.7.5
Class template slice_array
[template.slice.array]
29.7.5.1
Class template slice_array overview
[template.slice.array.overview]
29.7.5.2
slice_array assignment
[slice.arr.assign]
29.7.5.3
slice_array compound assignment
[slice.arr.comp.assign]
29.7.5.4
slice_array fill function
[slice.arr.fill]
29.7.6
The gslice class
[class.gslice]
29.7.6.1
The gslice class overview
[class.gslice.overview]
29.7.6.2
gslice constructors
[gslice.cons]
29.7.6.3
gslice access functions
[gslice.access]
29.7.7
Class template gslice_array
[template.gslice.array]
29.7.7.1
Class template gslice_array overview
[template.gslice.array.overview]
29.7.7.2
gslice_array assignment
[gslice.array.assign]
29.7.7.3
gslice_array compound assignment
[gslice.array.comp.assign]
29.7.7.4
gslice_array fill function
[gslice.array.fill]
29.7.8
Class template mask_array
[template.mask.array]
29.7.8.1
Class template mask_array overview
[template.mask.array.overview]
29.7.8.2
mask_array assignment
[mask.array.assign]
29.7.8.3
mask_array compound assignment
[mask.array.comp.assign]
29.7.8.4
mask_array fill function
[mask.array.fill]
29.7.9
Class template indirect_array
[template.indirect.array]
29.7.9.1
Class template indirect_array overview
[template.indirect.array.overview]
29.7.9.2
indirect_array assignment
[indirect.array.assign]
29.7.9.3
indirect_array compound assignment
[indirect.array.comp.assign]
29.7.9.4
indirect_array fill function
[indirect.array.fill]
29.7.10
valarray range access
[valarray.range]
29.8
Generalized numeric operations
[numeric.ops]
29.8.1
Header <numeric> synopsis
[numeric.ops.overview]
29.8.2
Accumulate
[accumulate]
29.8.3
Reduce
[reduce]
29.8.4
Inner product
[inner.product]
29.8.5
Transform reduce
[transform.reduce]
29.8.6
Partial sum
[partial.sum]
29.8.7
Exclusive scan
[exclusive.scan]
29.8.8
Inclusive scan
[inclusive.scan]
29.8.9
Transform exclusive scan
[transform.exclusive.scan]
29.8.10
Transform inclusive scan
[transform.inclusive.scan]
29.8.11
Adjacent difference
[adjacent.difference]
29.8.12
Iota
[numeric.iota]
29.8.13
Greatest common divisor
[numeric.ops.gcd]
29.8.14
Least common multiple
[numeric.ops.lcm]
29.9
Mathematical functions for floating-point types
[c.math]
29.9.1
Header <cmath> synopsis
[cmath.syn]
29.9.2
Absolute values
[c.math.abs]
29.9.3
Three-dimensional hypotenuse
[c.math.hypot3]
29.9.4
Classification / comparison functions
[c.math.fpclass]
29.9.5
Mathematical special functions
[sf.cmath]
29.9.5.1
Associated Laguerre polynomials
[sf.cmath.assoc_laguerre]
29.9.5.2
Associated Legendre functions
[sf.cmath.assoc_legendre]
29.9.5.3
Beta function
[sf.cmath.beta]
29.9.5.4
Complete elliptic integral of the first kind
[sf.cmath.comp_ellint_1]
29.9.5.5
Complete elliptic integral of the second kind
[sf.cmath.comp_ellint_2]
29.9.5.6
Complete elliptic integral of the third kind
[sf.cmath.comp_ellint_3]
29.9.5.7
Regular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_i]
29.9.5.8
Cylindrical Bessel functions of the first kind
[sf.cmath.cyl_bessel_j]
29.9.5.9
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_k]
29.9.5.10
Cylindrical Neumann functions
[sf.cmath.cyl_neumann]
29.9.5.11
Incomplete elliptic integral of the first kind
[sf.cmath.ellint_1]
29.9.5.12
Incomplete elliptic integral of the second kind
[sf.cmath.ellint_2]
29.9.5.13
Incomplete elliptic integral of the third kind
[sf.cmath.ellint_3]
29.9.5.14
Exponential integral
[sf.cmath.expint]
29.9.5.15
Hermite polynomials
[sf.cmath.hermite]
29.9.5.16
Laguerre polynomials
[sf.cmath.laguerre]
29.9.5.17
Legendre polynomials
[sf.cmath.legendre]
29.9.5.18
Riemann zeta function
[sf.cmath.riemann_zeta]
29.9.5.19
Spherical Bessel functions of the first kind
[sf.cmath.sph_bessel]
29.9.5.20
Spherical associated Legendre functions
[sf.cmath.sph_legendre]
29.9.5.21
Spherical Neumann functions
[sf.cmath.sph_neumann]
30
Input/output library
[input.output]
30.1
General
[input.output.general]
30.2
Iostreams requirements
[iostreams.requirements]
30.2.1
Imbue limitations
[iostream.limits.imbue]
30.2.2
Positioning type limitations
[iostreams.limits.pos]
30.2.3
Thread safety
[iostreams.threadsafety]
30.3
Forward declarations
[iostream.forward]
30.3.1
Header <iosfwd> synopsis
[iosfwd.syn]
30.3.2
Overview
[iostream.forward.overview]
30.4
Standard iostream objects
[iostream.objects]
30.4.1
Header <iostream> synopsis
[iostream.syn]
30.4.2
Overview
[iostream.objects.overview]
30.4.3
Narrow stream objects
[narrow.stream.objects]
30.4.4
Wide stream objects
[wide.stream.objects]
30.5
Iostreams base classes
[iostreams.base]
30.5.1
Header <ios> synopsis
[ios.syn]
30.5.2
Types
[stream.types]
30.5.3
Class ios_base
[ios.base]
30.5.3.1
Types
[ios.types]
30.5.3.1.1
[[CppStd:./ios::failure|Class ios_base::failure [ios::failure]]]
[./ios::failure]
30.5.3.1.2
[[CppStd:./ios::fmtflags|Type ios_base::fmtflags [ios::fmtflags]]]
[./ios::fmtflags]
30.5.3.1.3
[[CppStd:./ios::iostate|Type ios_base::iostate [ios::iostate]]]
[./ios::iostate]
30.5.3.1.4
[[CppStd:./ios::openmode|Type ios_base::openmode [ios::openmode]]]
[./ios::openmode]
30.5.3.1.5
[[CppStd:./ios::seekdir|Type ios_base::seekdir [ios::seekdir]]]
[./ios::seekdir]
30.5.3.1.6
[[CppStd:./ios::Init|Class ios_base::Init [ios::Init]]]
[./ios::Init]
30.5.3.2
ios_base state functions
[fmtflags.state]
30.5.3.3
ios_base functions
[ios.base.locales]
30.5.3.4
ios_base static members
[ios.members.static]
30.5.3.5
ios_base storage functions
[ios.base.storage]
30.5.3.6
ios_base callbacks
[ios.base.callback]
30.5.3.7
ios_base constructors/destructor
[ios.base.cons]
30.5.4
Class template fpos
[fpos]
30.5.4.1
fpos members
[fpos.members]
30.5.4.2
fpos requirements
[fpos.operations]
30.5.5
Class template basic_ios
[ios]
30.5.5.1
Overview
[ios.overview]
30.5.5.2
basic_ios constructors
[basic.ios.cons]
30.5.5.3
Member functions
[basic.ios.members]
30.5.5.4
basic_ios flags functions
[iostate.flags]
30.5.6
ios_base manipulators
[std.ios.manip]
30.5.6.1
fmtflags manipulators
[fmtflags.manip]
30.5.6.2
adjustfield manipulators
[adjustfield.manip]
30.5.6.3
basefield manipulators
[basefield.manip]
30.5.6.4
floatfield manipulators
[floatfield.manip]
30.5.6.5
Error reporting
[error.reporting]
30.6
Stream buffers
[stream.buffers]
30.6.1
Header <streambuf> synopsis
[streambuf.syn]
30.6.2
Stream buffer requirements
[streambuf.reqts]
30.6.3
Class template basic_streambuf
[streambuf]
30.6.3.1
basic_streambuf constructors
[streambuf.cons]
30.6.3.2
basic_streambuf public member functions
[streambuf.members]
30.6.3.2.1
Locales
[streambuf.locales]
30.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
30.6.3.2.3
Get area
[streambuf.pub.get]
30.6.3.2.4
Putback
[streambuf.pub.pback]
30.6.3.2.5
Put area
[streambuf.pub.put]
30.6.3.3
basic_streambuf protected member functions
[streambuf.protected]
30.6.3.3.1
Assignment
[streambuf.assign]
30.6.3.3.2
Get area access
[streambuf.get.area]
30.6.3.3.3
Put area access
[streambuf.put.area]
30.6.3.4
basic_streambuf virtual functions
[streambuf.virtuals]
30.6.3.4.1
Locales
[streambuf.virt.locales]
30.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
30.6.3.4.3
Get area
[streambuf.virt.get]
30.6.3.4.4
Putback
[streambuf.virt.pback]
30.6.3.4.5
Put area
[streambuf.virt.put]
30.7
Formatting and manipulators
[iostream.format]
30.7.1
Header <istream> synopsis
[istream.syn]
30.7.2
Header <ostream> synopsis
[ostream.syn]
30.7.3
Header <iomanip> synopsis
[iomanip.syn]
30.7.4
Input streams
[input.streams]
30.7.4.1
Class template basic_istream
[istream]
30.7.4.1.1
basic_istream constructors
[istream.cons]
30.7.4.1.2
Class basic_istream assign and swap
[istream.assign]
30.7.4.1.3
[[CppStd:./istream::sentry|Class basic_istream::sentry [istream::sentry]]]
[./istream::sentry]
30.7.4.2
Formatted input functions
[istream.formatted]
30.7.4.2.1
Common requirements
[istream.formatted.reqmts]
30.7.4.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
30.7.4.2.3
basic_istream::operator>>
[istream.extractors]
30.7.4.3
Unformatted input functions
[istream.unformatted]
30.7.4.4
Standard basic_istream manipulators
[istream.manip]
30.7.4.5
Rvalue stream extraction
[istream.rvalue]
30.7.4.6
Class template basic_iostream
[iostreamclass]
30.7.4.6.1
basic_iostream constructors
[iostream.cons]
30.7.4.6.2
basic_iostream destructor
[iostream.dest]
30.7.4.6.3
basic_iostream assign and swap
[iostream.assign]
30.7.5
Output streams
[output.streams]
30.7.5.1
Class template basic_ostream
[ostream]
30.7.5.1.1
basic_ostream constructors
[ostream.cons]
30.7.5.1.2
Class basic_ostream assign and swap
[ostream.assign]
30.7.5.1.3
[[CppStd:./ostream::sentry|Class basic_ostream::sentry [ostream::sentry]]]
[./ostream::sentry]
30.7.5.1.4
basic_ostream seek members
[ostream.seeks]
30.7.5.2
Formatted output functions
[ostream.formatted]
30.7.5.2.1
Common requirements
[ostream.formatted.reqmts]
30.7.5.2.2
Arithmetic inserters
[ostream.inserters.arithmetic]
30.7.5.2.3
basic_ostream::operator<<
[ostream.inserters]
30.7.5.2.4
Character inserter function templates
[ostream.inserters.character]
30.7.5.3
Unformatted output functions
[ostream.unformatted]
30.7.5.4
Standard basic_ostream manipulators
[ostream.manip]
30.7.5.5
Rvalue stream insertion
[ostream.rvalue]
30.7.6
Standard manipulators
[std.manip]
30.7.7
Extended manipulators
[ext.manip]
30.7.8
Quoted manipulators
[quoted.manip]
30.8
String-based streams
[string.streams]
30.8.1
Header <sstream> synopsis
[sstream.syn]
30.8.2
Class template basic_stringbuf
[stringbuf]
30.8.2.1
basic_stringbuf constructors
[stringbuf.cons]
30.8.2.2
Assign and swap
[stringbuf.assign]
30.8.2.3
Member functions
[stringbuf.members]
30.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
30.8.3
Class template basic_istringstream
[istringstream]
30.8.3.1
basic_istringstream constructors
[istringstream.cons]
30.8.3.2
Assign and swap
[istringstream.assign]
30.8.3.3
Member functions
[istringstream.members]
30.8.4
Class template basic_ostringstream
[ostringstream]
30.8.4.1
basic_ostringstream constructors
[ostringstream.cons]
30.8.4.2
Assign and swap
[ostringstream.assign]
30.8.4.3
Member functions
[ostringstream.members]
30.8.5
Class template basic_stringstream
[stringstream]
30.8.5.1
basic_stringstream constructors
[stringstream.cons]
30.8.5.2
Assign and swap
[stringstream.assign]
30.8.5.3
Member functions
[stringstream.members]
30.9
File-based streams
[file.streams]
30.9.1
Header <fstream> synopsis
[fstream.syn]
30.9.2
Class template basic_filebuf
[filebuf]
30.9.2.1
basic_filebuf constructors
[filebuf.cons]
30.9.2.2
Assign and swap
[filebuf.assign]
30.9.2.3
Member functions
[filebuf.members]
30.9.2.4
Overridden virtual functions
[filebuf.virtuals]
30.9.3
Class template basic_ifstream
[ifstream]
30.9.3.1
basic_ifstream constructors
[ifstream.cons]
30.9.3.2
Assign and swap
[ifstream.assign]
30.9.3.3
Member functions
[ifstream.members]
30.9.4
Class template basic_ofstream
[ofstream]
30.9.4.1
basic_ofstream constructors
[ofstream.cons]
30.9.4.2
Assign and swap
[ofstream.assign]
30.9.4.3
Member functions
[ofstream.members]
30.9.5
Class template basic_fstream
[fstream]
30.9.5.1
basic_fstream constructors
[fstream.cons]
30.9.5.2
Assign and swap
[fstream.assign]
30.9.5.3
Member functions
[fstream.members]
30.10
File systems
[filesystems]
30.10.1
General
[fs.general]
30.10.2
Conformance
[fs.conformance]
30.10.2.1
POSIX conformance
[fs.conform.9945]
30.10.2.2
Operating system dependent behavior conformance
[fs.conform.os]
30.10.2.3
File system race behavior
[fs.race.behavior]
30.10.3
Normative references
[fs.norm.ref]
30.10.4
Terms and definitions
[fs.definitions]
30.10.24
Requirements
[fs.req]
30.10.24.1
Namespaces and headers
[fs.req.namespace]
30.10.25
Header <filesystem> synopsis
[fs.filesystem.syn]
30.10.26
Error reporting
[fs.err.report]
30.10.27
Class path
[fs.class.path]
30.10.27.1
Generic pathname format
[fs.path.generic]
30.10.27.2
path conversions
[fs.path.cvt]
30.10.27.2.1
path argument format conversions
[fs.path.fmt.cvt]
30.10.27.2.2
path type and encoding conversions
[fs.path.type.cvt]
30.10.27.3
path requirements
[fs.path.req]
30.10.27.4
path members
[fs.path.member]
30.10.27.4.1
path constructors
[fs.path.construct]
30.10.27.4.2
path assignments
[fs.path.assign]
30.10.27.4.3
path appends
[fs.path.append]
30.10.27.4.4
path concatenation
[fs.path.concat]
30.10.27.4.5
path modifiers
[fs.path.modifiers]
30.10.27.4.6
path native format observers
[fs.path.native.obs]
30.10.27.4.7
path generic format observers
[fs.path.generic.obs]
30.10.27.4.8
path compare
[fs.path.compare]
30.10.27.4.9
path decomposition
[fs.path.decompose]
30.10.27.4.10
path query
[fs.path.query]
30.10.27.4.11
path generation
[fs.path.gen]
30.10.27.5
path iterators
[fs.path.itr]
30.10.27.6
path non-member functions
[fs.path.nonmember]
30.10.27.6.1
path inserter and extractor
[fs.path.io]
30.10.27.6.2
path factory functions
[fs.path.factory]
30.10.28
Class filesystem_error
[fs.class.filesystem_error]
30.10.28.1
filesystem_error members
[filesystem_error.members]
30.10.29
Enumerations
[fs.enum]
30.10.29.1
Enum path::format
[fs.enum.path.format]
30.10.29.2
Enum class file_type
[fs.enum.file_type]
30.10.29.3
Enum class copy_options
[fs.enum.copy.opts]
30.10.29.4
Enum class perms
[fs.enum.perms]
30.10.29.5
Enum class perm_options
[fs.enum.perm.opts]
30.10.29.6
Enum class directory_options
[fs.enum.dir.opts]
30.10.30
Class file_status
[fs.class.file_status]
30.10.30.1
file_status constructors
[fs.file_status.cons]
30.10.30.2
file_status observers
[fs.file_status.obs]
30.10.30.3
file_status modifiers
[fs.file_status.mods]
30.10.31
Class directory_entry
[fs.class.directory_entry]
30.10.31.1
directory_entry constructors
[fs.dir.entry.cons]
30.10.31.2
directory_entry modifiers
[fs.dir.entry.mods]
30.10.31.3
directory_entry observers
[fs.dir.entry.obs]
30.10.32
Class directory_iterator
[fs.class.directory_iterator]
30.10.32.1
directory_iterator members
[fs.dir.itr.members]
30.10.32.2
directory_iterator non-member functions
[fs.dir.itr.nonmembers]
30.10.33
Class recursive_directory_iterator
[fs.class.rec.dir.itr]
30.10.33.1
recursive_directory_iterator members
[fs.rec.dir.itr.members]
30.10.33.2
recursive_directory_iterator non-member functions
[fs.rec.dir.itr.nonmembers]
30.10.34
Filesystem operation functions
[fs.op.funcs]
30.10.34.1
Absolute
[fs.op.absolute]
30.10.34.2
Canonical
[fs.op.canonical]
30.10.34.3
Copy
[fs.op.copy]
30.10.34.4
Copy file
[fs.op.copy_file]
30.10.34.5
Copy symlink
[fs.op.copy_symlink]
30.10.34.6
Create directories
[fs.op.create_directories]
30.10.34.7
Create directory
[fs.op.create_directory]
30.10.34.8
Create directory symlink
[fs.op.create_dir_symlk]
30.10.34.9
Create hard link
[fs.op.create_hard_lk]
30.10.34.10
Create symlink
[fs.op.create_symlink]
30.10.34.11
Current path
[fs.op.current_path]
30.10.34.12
Equivalent
[fs.op.equivalent]
30.10.34.13
Exists
[fs.op.exists]
30.10.34.14
File size
[fs.op.file_size]
30.10.34.15
Hard link count
[fs.op.hard_lk_ct]
30.10.34.16
Is block file
[fs.op.is_block_file]
30.10.34.17
Is character file
[fs.op.is_char_file]
30.10.34.18
Is directory
[fs.op.is_directory]
30.10.34.19
Is empty
[fs.op.is_empty]
30.10.34.20
Is fifo
[fs.op.is_fifo]
30.10.34.21
Is other
[fs.op.is_other]
30.10.34.22
Is regular file
[fs.op.is_regular_file]
30.10.34.23
Is socket
[fs.op.is_socket]
30.10.34.24
Is symlink
[fs.op.is_symlink]
30.10.34.25
Last write time
[fs.op.last_write_time]
30.10.34.26
Permissions
[fs.op.permissions]
30.10.34.27
Proximate
[fs.op.proximate]
30.10.34.28
Read symlink
[fs.op.read_symlink]
30.10.34.29
Relative
[fs.op.relative]
30.10.34.30
Remove
[fs.op.remove]
30.10.34.31
Remove all
[fs.op.remove_all]
30.10.34.32
Rename
[fs.op.rename]
30.10.34.33
Resize file
[fs.op.resize_file]
30.10.34.34
Space
[fs.op.space]
30.10.34.35
Status
[fs.op.status]
30.10.34.36
Status known
[fs.op.status_known]
30.10.34.37
Symlink status
[fs.op.symlink_status]
30.10.34.38
Temporary directory path
[fs.op.temp_dir_path]
30.10.34.39
Weakly canonical
[fs.op.weakly_canonical]
30.11
C library files
[c.files]
30.11.1
Header <cstdio> synopsis
[cstdio.syn]
30.11.2
Header <cinttypes> synopsis
[cinttypes.syn]
31
Regular expressions library
[re]
31.1
General
[re.general]
31.2
Definitions
[re.def]
31.3
Requirements
[re.req]
31.4
Header <regex> synopsis
[re.syn]
31.5
Namespace std::regex_constants
[re.const]
31.5.1
Bitmask type syntax_option_type
[re.synopt]
31.5.2
Bitmask type match_flag_type
[re.matchflag]
31.5.3
Implementation-defined error_type
[re.err]
31.6
Class regex_error
[re.badexp]
31.7
Class template regex_traits
[re.traits]
31.8
Class template basic_regex
[re.regex]
31.8.1
basic_regex constants
[re.regex.const]
31.8.2
basic_regex constructors
[re.regex.construct]
31.8.3
basic_regex assign
[re.regex.assign]
31.8.4
basic_regex constant operations
[re.regex.operations]
31.8.5
basic_regex locale
[re.regex.locale]
31.8.6
basic_regex swap
[re.regex.swap]
31.8.7
basic_regex non-member functions
[re.regex.nonmemb]
31.8.7.1
basic_regex non-member swap
[re.regex.nmswap]
31.9
Class template sub_match
[re.submatch]
31.9.1
sub_match members
[re.submatch.members]
31.9.2
sub_match non-member operators
[re.submatch.op]
31.10
Class template match_results
[re.results]
31.10.1
match_results constructors
[re.results.const]
31.10.2
match_results state
[re.results.state]
31.10.3
match_results size
[re.results.size]
31.10.4
match_results element access
[re.results.acc]
31.10.5
match_results formatting
[re.results.form]
31.10.6
match_results allocator
[re.results.all]
31.10.7
match_results swap
[re.results.swap]
31.10.8
match_results non-member functions
[re.results.nonmember]
31.11
Regular expression algorithms
[re.alg]
31.11.1
Exceptions
[re.except]
31.11.2
regex_match
[re.alg.match]
31.11.3
regex_search
[re.alg.search]
31.11.4
regex_replace
[re.alg.replace]
31.12
Regular expression iterators
[re.iter]
31.12.1
Class template regex_iterator
[re.regiter]
31.12.1.1
regex_iterator constructors
[re.regiter.cnstr]
31.12.1.2
regex_iterator comparisons
[re.regiter.comp]
31.12.1.3
regex_iterator indirection
[re.regiter.deref]
31.12.1.4
regex_iterator increment
[re.regiter.incr]
31.12.2
Class template regex_token_iterator
[re.tokiter]
31.12.2.1
regex_token_iterator constructors
[re.tokiter.cnstr]
31.12.2.2
regex_token_iterator comparisons
[re.tokiter.comp]
31.12.2.3
regex_token_iterator indirection
[re.tokiter.deref]
31.12.2.4
regex_token_iterator increment
[re.tokiter.incr]
31.13
Modified ECMAScript regular expression grammar
[re.grammar]
32
Atomic operations library
[atomics]
32.1
General
[atomics.general]
32.2
Header <atomic> synopsis
[atomics.syn]
32.3
Type aliases
[atomics.alias]
32.4
Order and consistency
[atomics.order]
32.5
Lock-free property
[atomics.lockfree]
32.6
Class template atomic
[atomics.types.generic]
32.6.1
Operations on atomic types
[atomics.types.operations]
32.6.2
Specializations for integers
[atomics.types.int]
32.6.3
Partial specialization for pointers
[atomics.types.pointer]
32.6.4
Member operators common to integers and pointers to objects
[atomics.types.memop]
32.7
Non-member functions
[atomics.nonmembers]
32.8
Flag type and operations
[atomics.flag]
32.9
Fences
[atomics.fences]
33
Thread support library
[thread]
33.1
General
[thread.general]
33.2
Requirements
[thread.req]
33.2.1
Template parameter names
[thread.req.paramname]
33.2.2
Exceptions
[thread.req.exception]
33.2.3
Native handles
[thread.req.native]
33.2.4
Timing specifications
[thread.req.timing]
33.2.5
Requirements for Lockable types
[thread.req.lockable]
33.2.5.1
In general
[thread.req.lockable.general]
33.2.5.2
BasicLockable requirements
[thread.req.lockable.basic]
33.2.5.3
Lockable requirements
[thread.req.lockable.req]
33.2.5.4
TimedLockable requirements
[thread.req.lockable.timed]
33.2.6
decay_copy
[thread.decaycopy]
33.3
Threads
[thread.threads]
33.3.1
Header <thread> synopsis
[thread.syn]
33.3.2
Class thread
[thread.thread.class]
33.3.2.1
Class thread::id
[thread.thread.id]
33.3.2.2
thread constructors
[thread.thread.constr]
33.3.2.3
thread destructor
[thread.thread.destr]
33.3.2.4
thread assignment
[thread.thread.assign]
33.3.2.5
thread members
[thread.thread.member]
33.3.2.6
thread static members
[thread.thread.static]
33.3.2.7
thread specialized algorithms
[thread.thread.algorithm]
33.3.3
Namespace this_thread
[thread.thread.this]
33.4
Mutual exclusion
[thread.mutex]
33.4.1
Header <mutex> synopsis
[mutex.syn]
33.4.2
Header <shared_mutex> synopsis
[shared_mutex.syn]
33.4.3
Mutex requirements
[thread.mutex.requirements]
33.4.3.1
In general
[thread.mutex.requirements.general]
33.4.3.2
Mutex types
[thread.mutex.requirements.mutex]
33.4.3.2.1
Class mutex
[thread.mutex.class]
33.4.3.2.2
Class recursive_mutex
[thread.mutex.recursive]
33.4.3.3
Timed mutex types
[thread.timedmutex.requirements]
33.4.3.3.1
Class timed_mutex
[thread.timedmutex.class]
33.4.3.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
33.4.3.4
Shared mutex types
[thread.sharedmutex.requirements]
33.4.3.4.1
Class shared_mutex
[thread.sharedmutex.class]
33.4.3.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
33.4.3.5.1
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
33.4.4
Locks
[thread.lock]
33.4.4.1
Class template lock_guard
[thread.lock.guard]
33.4.4.2
Class template scoped_lock
[thread.lock.scoped]
33.4.4.3
Class template unique_lock
[thread.lock.unique]
33.4.4.3.1
unique_lock constructors, destructor, and assignment
[thread.lock.unique.cons]
33.4.4.3.2
unique_lock locking
[thread.lock.unique.locking]
33.4.4.3.3
unique_lock modifiers
[thread.lock.unique.mod]
33.4.4.3.4
unique_lock observers
[thread.lock.unique.obs]
33.4.4.4
Class template shared_lock
[thread.lock.shared]
33.4.4.4.1
shared_lock constructors, destructor, and assignment
[thread.lock.shared.cons]
33.4.4.4.2
shared_lock locking
[thread.lock.shared.locking]
33.4.4.4.3
shared_lock modifiers
[thread.lock.shared.mod]
33.4.4.4.4
shared_lock observers
[thread.lock.shared.obs]
33.4.5
Generic locking algorithms
[thread.lock.algorithm]
33.4.6
Call once
[thread.once]
33.4.6.1
Struct once_flag
[thread.once.onceflag]
33.4.6.2
Function call_once
[thread.once.callonce]
33.5
Condition variables
[thread.condition]
33.5.1
Header <condition_variable> synopsis
[condition_variable.syn]
33.5.2
Non-member functions
[thread.condition.nonmember]
33.5.3
Class condition_variable
[thread.condition.condvar]
33.5.4
Class condition_variable_any
[thread.condition.condvarany]
33.6
Futures
[futures]
33.6.1
Overview
[futures.overview]
33.6.2
Header <future> synopsis
[future.syn]
33.6.3
Error handling
[futures.errors]
33.6.4
Class future_error
[futures.future_error]
33.6.5
Shared state
[futures.state]
33.6.6
Class template promise
[futures.promise]
33.6.7
Class template future
[futures.unique_future]
33.6.8
Class template shared_future
[futures.shared_future]
33.6.9
Function template async
[futures.async]
33.6.10
Class template packaged_task
[futures.task]
33.6.10.1
packaged_task member functions
[futures.task.members]
33.6.10.2
packaged_task globals
[futures.task.nonmembers]
Annex A (informative) Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basic concepts
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Declarators
[gram.decl]
A.8
Classes
[gram.class]
A.9
Derived classes
[gram.derived]
A.10
Special member functions
[gram.special]
A.11
Overloading
[gram.over]
A.12
Templates
[gram.temp]
A.13
Exception handling
[gram.except]
A.14
Preprocessing directives
[gram.cpp]
Annex B (informative) Implementation quantities
[implimits]
Annex C (informative) Compatibility
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
Clause [lex]: lexical conventions
[diff.lex]
C.1.2
Clause [basic]: basic concepts
[diff.basic]
C.1.3
Clause [conv]: standard conversions
[diff.conv]
C.1.4
Clause [expr]: expressions
[diff.expr]
C.1.5
Clause [stmt.stmt]: statements
[diff.stat]
C.1.6
Clause [dcl.dcl]: declarations
[diff.dcl]
C.1.7
Clause [dcl.decl]: declarators
[diff.decl]
C.1.8
Clause [class]: classes
[diff.class]
C.1.9
Clause [special]: special member functions
[diff.special]
C.1.10
Clause [cpp]: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.2.2
Clause [conv]: standard conversions
[diff.cpp03.conv]
C.2.3
Clause [expr]: expressions
[diff.cpp03.expr]
C.2.4
Clause [dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.2.5
Clause [dcl.decl]: declarators
[diff.cpp03.dcl.decl]
C.2.6
Clause [special]: special member functions
[diff.cpp03.special]
C.2.7
Clause [temp]: templates
[diff.cpp03.temp]
C.2.8
Clause [library]: library introduction
[diff.cpp03.library]
C.2.9
Clause [language.support]: language support library
[diff.cpp03.language.support]
C.2.10
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.2.11
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.2.12
Clause [strings]: strings library
[diff.cpp03.strings]
C.2.13
Clause [containers]: containers library
[diff.cpp03.containers]
C.2.14
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.2.15
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.2.16
Clause [input.output]: input/output library
[diff.cpp03.input.output]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
Clause [lex]: lexical conventions
[diff.cpp11.lex]
C.3.2
Clause [basic]: basic concepts
[diff.cpp11.basic]
C.3.3
Clause [expr]: expressions
[diff.cpp11.expr]
C.3.4
Clause [dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.5
Clause [dcl.decl]: declarators
[diff.cpp11.dcl.decl]
C.3.6
Clause [library]: library introduction
[diff.cpp11.library]
C.3.7
Clause [input.output]: input/output library
[diff.cpp11.input.output]
C.4
C++ and ISO C++ 2014
[diff.cpp14]
C.4.1
Clause [lex]: lexical conventions
[diff.cpp14.lex]
C.4.2
Clause [expr]: expressions
[diff.cpp14.expr]
C.4.3
Clause [dcl.dcl]: declarations
[diff.cpp14.dcl.dcl]
C.4.4
Clause [dcl.decl]: declarators
[diff.cpp14.decl]
C.4.5
Clause [special]: special member functions
[diff.cpp14.special]
C.4.6
Clause [temp]: templates
[diff.cpp14.temp]
C.4.7
Clause [except]: exception handling
[diff.cpp14.except]
C.4.8
Clause [library]: library introduction
[diff.cpp14.library]
C.4.9
Clause [utilities]: general utilities library
[diff.cpp14.utilities]
C.4.10
Clause [strings]: strings library
[diff.cpp14.string]
C.4.11
Clause [containers]: containers library
[diff.cpp14.containers]
C.4.12
Annex [depr]: compatibility features
[diff.cpp14.depr]
C.5
C standard library
[diff.library]
C.5.1
Modifications to headers
[diff.mods.to.headers]
C.5.2
Modifications to definitions
[diff.mods.to.definitions]
C.5.2.1
Types char16_t and char32_t
[diff.char16]
C.5.2.2
Type wchar_t
[diff.wchar.t]
C.5.2.3
Header <assert.h>
[diff.header.assert.h]
C.5.2.4
Header <iso646.h>
[diff.header.iso646.h]
C.5.2.5
Header <stdalign.h>
[diff.header.stdalign.h]
C.5.2.6
Header <stdbool.h>
[diff.header.stdbool.h]
C.5.2.7
Macro NULL
[diff.null]
C.5.3
Modifications to declarations
[diff.mods.to.declarations]
C.5.4
Modifications to behavior
[diff.mods.to.behavior]
C.5.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.5.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative) Compatibility features
[depr]
D.1
Redeclaration of static constexpr data members
[depr.static_constexpr]
D.2
Implicit declaration of copy functions
[depr.impldec]
D.3
Deprecated exception specifications
[depr.except.spec]
D.4
C++standard library headers
[depr.cpp.headers]
D.4.1
Header <ccomplex> synopsis
[depr.ccomplex.syn]
D.4.2
Header <cstdalign> synopsis
[depr.cstdalign.syn]
D.4.3
Header <cstdbool> synopsis
[depr.cstdbool.syn]
D.4.4
Header <ctgmath> synopsis
[depr.ctgmath.syn]
D.5
C standard library headers
[depr.c.headers]
D.6
char* streams
[depr.str.strstreams]
D.6.1
Class strstreambuf
[depr.strstreambuf]
D.6.1.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.6.1.2
Member functions
[depr.strstreambuf.members]
D.6.1.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.6.2
Class istrstream
[depr.istrstream]
D.6.2.1
istrstream constructors
[depr.istrstream.cons]
D.6.2.2
Member functions
[depr.istrstream.members]
D.6.3
Class ostrstream
[depr.ostrstream]
D.6.3.1
ostrstream constructors
[depr.ostrstream.cons]
D.6.3.2
Member functions
[depr.ostrstream.members]
D.6.4
Class strstream
[depr.strstream]
D.6.4.1
strstream constructors
[depr.strstream.cons]
D.6.4.2
strstream destructor
[depr.strstream.dest]
D.6.4.3
strstream operations
[depr.strstream.oper]
D.7
uncaught_exception
[depr.uncaught]
D.8
Old adaptable function bindings
[depr.func.adaptor.binding]
D.8.1
Weak result types
[depr.weak.result_type]
D.8.2
Typedefs to support function binders
[depr.func.adaptor.typedefs]
D.8.3
Negators
[depr.negators]
D.9
The default allocator
[depr.default.allocator]
D.10
Raw storage iterator
[depr.storage.iterator]
D.11
Temporary buffers
[depr.temporary.buffer]
D.12
Deprecated type traits
[depr.meta.types]
D.13
Deprecated iterator primitives
[depr.iterator.primitives]
D.13.1
Basic iterator
[depr.iterator.basic]
D.14
Deprecated shared_ptr observers
[depr.util.smartptr.shared.obs]
D.15
Deprecated standard code conversion facets
[depr.locale.stdcvt]
D.15.1
Header <codecvt> synopsis
[depr.codecvt.syn]
D.15.2
Requirements
[depr.locale.stdcvt.req]
D.16
Deprecated convenience conversion interfaces
[depr.conversions]
D.16.1
Class template wstring_convert
[depr.conversions.string]
D.16.2
Class template wbuffer_convert
[depr.conversions.buffer]
Index
[generalindex]
Index of library names
[libraryindex]
Index of implementation-defined behavior
[impldefindex]
[
edit
]
Contents
1
Scope
[intro.scope]
2
Normative references
[intro.refs]
3
Terms and definitions
[intro.defs]
4
General principles
[intro]
4.1
Implementation compliance
[intro.compliance]
4.1.1
General
[intro.compliance.general]
4.1.2
Abstract machine
[intro.abstract]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
5
Lexical conventions
[lex]
5.1
Separate translation
[lex.separate]
5.2
Phases of translation
[lex.phases]
5.3
Character sets
[lex.charset]
5.4
Preprocessing tokens
[lex.pptoken]
5.5
Alternative tokens
[lex.digraph]
5.6
Tokens
[lex.token]
5.7
Comments
[lex.comment]
5.8
Header names
[lex.header]
5.9
Preprocessing numbers
[lex.ppnumber]
5.10
Identifiers
[lex.name]
5.11
Keywords
[lex.key]
5.12
Operators and punctuators
[lex.operators]
5.13
Literals
[lex.literal]
5.13.1
Kinds of literals
[lex.literal.kinds]
5.13.2
Integer literals
[lex.icon]
5.13.3
Character literals
[lex.ccon]
5.13.4
Floating-point literals
[lex.fcon]
5.13.5
String literals
[lex.string]
5.13.6
Boolean literals
[lex.bool]
5.13.7
Pointer literals
[lex.nullptr]
5.13.8
User-defined literals
[lex.ext]
6
Basics
[basic]
6.1
Preamble
[basic.pre]
6.2
Declarations and definitions
[basic.def]
6.3
One-definition rule
[basic.def.odr]
6.4
Scope
[basic.scope]
6.4.1
Declarative regions and scopes
[basic.scope.declarative]
6.4.2
Point of declaration
[basic.scope.pdecl]
6.4.3
Block scope
[basic.scope.block]
6.4.4
Function parameter scope
[basic.scope.param]
6.4.5
Function scope
[basic.funscope]
6.4.6
Namespace scope
[basic.scope.namespace]
6.4.7
Class scope
[basic.scope.class]
6.4.8
Enumeration scope
[basic.scope.enum]
6.4.9
Template parameter scope
[basic.scope.temp]
6.4.10
Name hiding
[basic.scope.hiding]
6.5
Name lookup
[basic.lookup]
6.5.1
General
[basic.lookup.general]
6.5.2
Unqualified name lookup
[basic.lookup.unqual]
6.5.3
Argument-dependent name lookup
[basic.lookup.argdep]
6.5.4
Qualified name lookup
[basic.lookup.qual]
6.5.4.1
General
[basic.lookup.qual.general]
6.5.4.2
Class members
[class.qual]
6.5.4.3
Namespace members
[namespace.qual]
6.5.5
Elaborated type specifiers
[basic.lookup.elab]
6.5.6
Class member access
[basic.lookup.classref]
6.5.7
Using-directives and namespace aliases
[basic.lookup.udir]
6.6
Program and linkage
[basic.link]
6.7
Memory and objects
[basic.memobj]
6.7.1
Memory model
[intro.memory]
6.7.2
Object model
[intro.object]
6.7.3
Lifetime
[basic.life]
6.7.4
Indeterminate values
[basic.indet]
6.7.5
Storage duration
[basic.stc]
6.7.5.1
General
[basic.stc.general]
6.7.5.2
Static storage duration
[basic.stc.static]
6.7.5.3
Thread storage duration
[basic.stc.thread]
6.7.5.4
Automatic storage duration
[basic.stc.auto]
6.7.5.5
Dynamic storage duration
[basic.stc.dynamic]
6.7.5.5.1
General
[basic.stc.dynamic.general]
6.7.5.5.2
Allocation functions
[basic.stc.dynamic.allocation]
6.7.5.5.3
Deallocation functions
[basic.stc.dynamic.deallocation]
6.7.5.5.4
Safely-derived pointers
[basic.stc.dynamic.safety]
6.7.5.6
Duration of subobjects
[basic.stc.inherit]
6.7.6
Alignment
[basic.align]
6.7.7
Temporary objects
[class.temporary]
6.8
Types
[basic.types]
6.8.1
General
[basic.types.general]
6.8.2
Fundamental types
[basic.fundamental]
6.8.3
Compound types
[basic.compound]
6.8.4
CV-qualifiers
[basic.type.qualifier]
6.8.5
Integer conversion rank
[conv.rank]
6.9
Program execution
[basic.exec]
6.9.1
Sequential execution
[intro.execution]
6.9.2
Multi-threaded executions and data races
[intro.multithread]
6.9.2.1
General
[intro.multithread.general]
6.9.2.2
Data races
[intro.races]
6.9.2.3
Forward progress
[intro.progress]
6.9.3
Start and termination
[basic.start]
6.9.3.1
main function
[basic.start.main]
6.9.3.2
Static initialization
[basic.start.static]
6.9.3.3
Dynamic initialization of non-local variables
[basic.start.dynamic]
6.9.3.4
Termination
[basic.start.term]
7
Expressions
[expr]
7.1
Preamble
[expr.pre]
7.2
Properties of expressions
[expr.prop]
7.2.1
Value category
[basic.lval]
7.2.2
Type
[expr.type]
7.2.3
Context dependence
[expr.context]
7.3
Standard conversions
[conv]
7.3.1
General
[conv.general]
7.3.2
Lvalue-to-rvalue conversion
[conv.lval]
7.3.3
Array-to-pointer conversion
[conv.array]
7.3.4
Function-to-pointer conversion
[conv.func]
7.3.5
Temporary materialization conversion
[conv.rval]
7.3.6
Qualification conversions
[conv.qual]
7.3.7
Integral promotions
[conv.prom]
7.3.8
Floating-point promotion
[conv.fpprom]
7.3.9
Integral conversions
[conv.integral]
7.3.10
Floating-point conversions
[conv.double]
7.3.11
Floating-integral conversions
[conv.fpint]
7.3.12
Pointer conversions
[conv.ptr]
7.3.13
Pointer-to-member conversions
[conv.mem]
7.3.14
Function pointer conversions
[conv.fctptr]
7.3.15
Boolean conversions
[conv.bool]
7.4
Usual arithmetic conversions
[expr.arith.conv]
7.5
Primary expressions
[expr.prim]
7.5.1
Literals
[expr.prim.literal]
7.5.2
This
[expr.prim.this]
7.5.3
Parentheses
[expr.prim.paren]
7.5.4
Names
[expr.prim.id]
7.5.4.1
General
[expr.prim.id.general]
7.5.4.2
Unqualified names
[expr.prim.id.unqual]
7.5.4.3
Qualified names
[expr.prim.id.qual]
7.5.4.4
Destruction
[expr.prim.id.dtor]
7.5.5
Lambda expressions
[expr.prim.lambda]
7.5.5.1
General
[expr.prim.lambda.general]
7.5.5.2
Closure types
[expr.prim.lambda.closure]
7.5.5.3
Captures
[expr.prim.lambda.capture]
7.5.6
Fold expressions
[expr.prim.fold]
7.5.7
Requires expressions
[expr.prim.req]
7.5.7.1
General
[expr.prim.req.general]
7.5.7.2
Simple requirements
[expr.prim.req.simple]
7.5.7.3
Type requirements
[expr.prim.req.type]
7.5.7.4
Compound requirements
[expr.prim.req.compound]
7.5.7.5
Nested requirements
[expr.prim.req.nested]
7.6
Compound expressions
[expr.compound]
7.6.1
Postfix expressions
[expr.post]
7.6.1.1
General
[expr.post.general]
7.6.1.2
Subscripting
[expr.sub]
7.6.1.3
Function call
[expr.call]
7.6.1.4
Explicit type conversion (functional notation)
[expr.type.conv]
7.6.1.5
Class member access
[expr.ref]
7.6.1.6
Increment and decrement
[expr.post.incr]
7.6.1.7
Dynamic cast
[expr.dynamic.cast]
7.6.1.8
Type identification
[expr.typeid]
7.6.1.9
Static cast
[expr.static.cast]
7.6.1.10
Reinterpret cast
[expr.reinterpret.cast]
7.6.1.11
Const cast
[expr.const.cast]
7.6.2
Unary expressions
[expr.unary]
7.6.2.1
General
[expr.unary.general]
7.6.2.2
Unary operators
[expr.unary.op]
7.6.2.3
Increment and decrement
[expr.pre.incr]
7.6.2.4
Await
[expr.await]
7.6.2.5
Sizeof
[expr.sizeof]
7.6.2.6
Alignof
[expr.alignof]
7.6.2.7
noexcept operator
[expr.unary.noexcept]
7.6.2.8
New
[expr.new]
7.6.2.9
Delete
[expr.delete]
7.6.3
Explicit type conversion (cast notation)
[expr.cast]
7.6.4
Pointer-to-member operators
[expr.mptr.oper]
7.6.5
Multiplicative operators
[expr.mul]
7.6.6
Additive operators
[expr.add]
7.6.7
Shift operators
[expr.shift]
7.6.8
Three-way comparison operator
[expr.spaceship]
7.6.9
Relational operators
[expr.rel]
7.6.10
Equality operators
[expr.eq]
7.6.11
Bitwise AND operator
[expr.bit.and]
7.6.12
Bitwise exclusive OR operator
[expr.xor]
7.6.13
Bitwise inclusive OR operator
[expr.or]
7.6.14
Logical AND operator
[expr.log.and]
7.6.15
Logical OR operator
[expr.log.or]
7.6.16
Conditional operator
[expr.cond]
7.6.17
Yielding a value
[expr.yield]
7.6.18
Throwing an exception
[expr.throw]
7.6.19
Assignment and compound assignment operators
[expr.ass]
7.6.20
Comma operator
[expr.comma]
7.7
Constant expressions
[expr.const]
8
Statements
[stmt.stmt]
8.1
Preamble
[stmt.pre]
8.2
Labeled statement
[stmt.label]
8.3
Expression statement
[stmt.expr]
8.4
Compound statement or block
[stmt.block]
8.5
Selection statements
[stmt.select]
8.5.1
General
[stmt.select.general]
8.5.2
The if statement
[stmt.if]
8.5.3
The switch statement
[stmt.switch]
8.6
Iteration statements
[stmt.iter]
8.6.1
General
[stmt.iter.general]
8.6.2
The while statement
[stmt.while]
8.6.3
The do statement
[stmt.do]
8.6.4
The for statement
[stmt.for]
8.6.5
The range-based for statement
[stmt.ranged]
8.7
Jump statements
[stmt.jump]
8.7.1
General
[stmt.jump.general]
8.7.2
The break statement
[stmt.break]
8.7.3
The continue statement
[stmt.cont]
8.7.4
The return statement
[stmt.return]
8.7.5
The co_return statement
[stmt.return.coroutine]
8.7.6
The goto statement
[stmt.goto]
8.8
Declaration statement
[stmt.dcl]
8.9
Ambiguity resolution
[stmt.ambig]
9
Declarations
[dcl.dcl]
9.1
Preamble
[dcl.pre]
9.2
Specifiers
[dcl.spec]
9.2.1
General
[dcl.spec.general]
9.2.2
Storage class specifiers
[dcl.stc]
9.2.3
Function specifiers
[dcl.fct.spec]
9.2.4
The typedef specifier
[dcl.typedef]
9.2.5
The friend specifier
[dcl.friend]
9.2.6
The constexpr and consteval specifiers
[dcl.constexpr]
9.2.7
The constinit specifier
[dcl.constinit]
9.2.8
The inline specifier
[dcl.inline]
9.2.9
Type specifiers
[dcl.type]
9.2.9.1
General
[dcl.type.general]
9.2.9.2
The cv-qualifiers
[dcl.type.cv]
9.2.9.3
Simple type specifiers
[dcl.type.simple]
9.2.9.4
Elaborated type specifiers
[dcl.type.elab]
9.2.9.5
Decltype specifiers
[dcl.type.decltype]
9.2.9.6
Placeholder type specifiers
[dcl.spec.auto]
9.2.9.6.1
General
[dcl.spec.auto.general]
9.2.9.6.2
Placeholder type deduction
[dcl.type.auto.deduct]
9.2.9.7
Deduced class template specialization types
[dcl.type.class.deduct]
9.3
Declarators
[dcl.decl]
9.3.1
General
[dcl.decl.general]
9.3.2
Type names
[dcl.name]
9.3.3
Ambiguity resolution
[dcl.ambig.res]
9.3.4
Meaning of declarators
[dcl.meaning]
9.3.4.1
General
[dcl.meaning.general]
9.3.4.2
Pointers
[dcl.ptr]
9.3.4.3
References
[dcl.ref]
9.3.4.4
Pointers to members
[dcl.mptr]
9.3.4.5
Arrays
[dcl.array]
9.3.4.6
Functions
[dcl.fct]
9.3.4.7
Default arguments
[dcl.fct.default]
9.4
Initializers
[dcl.init]
9.4.1
General
[dcl.init.general]
9.4.2
Aggregates
[dcl.init.aggr]
9.4.3
Character arrays
[dcl.init.string]
9.4.4
References
[dcl.init.ref]
9.4.5
List-initialization
[dcl.init.list]
9.5
Function definitions
[dcl.fct.def]
9.5.1
In general
[dcl.fct.def.general]
9.5.2
Explicitly-defaulted functions
[dcl.fct.def.default]
9.5.3
Deleted definitions
[dcl.fct.def.delete]
9.5.4
Coroutine definitions
[dcl.fct.def.coroutine]
9.6
Structured binding declarations
[dcl.struct.bind]
9.7
Enumerations
[enum]
9.7.1
Enumeration declarations
[dcl.enum]
9.7.2
The using enum declaration
[enum.udecl]
9.8
Namespaces
[basic.namespace]
9.8.1
General
[basic.namespace.general]
9.8.2
Namespace definition
[namespace.def]
9.8.2.1
General
[namespace.def.general]
9.8.2.2
Unnamed namespaces
[namespace.unnamed]
9.8.2.3
Namespace member definitions
[namespace.memdef]
9.8.3
Namespace alias
[namespace.alias]
9.8.4
Using namespace directive
[namespace.udir]
9.9
The using declaration
[namespace.udecl]
9.10
The asm declaration
[dcl.asm]
9.11
Linkage specifications
[dcl.link]
9.12
Attributes
[dcl.attr]
9.12.1
Attribute syntax and semantics
[dcl.attr.grammar]
9.12.2
Alignment specifier
[dcl.align]
9.12.3
Carries dependency attribute
[dcl.attr.depend]
9.12.4
Deprecated attribute
[dcl.attr.deprecated]
9.12.5
Fallthrough attribute
[dcl.attr.fallthrough]
9.12.6
Likelihood attributes
[dcl.attr.likelihood]
9.12.7
Maybe unused attribute
[dcl.attr.unused]
9.12.8
Nodiscard attribute
[dcl.attr.nodiscard]
9.12.9
Noreturn attribute
[dcl.attr.noreturn]
9.12.10
No unique address attribute
[dcl.attr.nouniqueaddr]
10
Modules
[module]
10.1
Module units and purviews
[module.unit]
10.2
Export declaration
[module.interface]
10.3
Import declaration
[module.import]
10.4
Global module fragment
[module.global.frag]
10.5
Private module fragment
[module.private.frag]
10.6
Instantiation context
[module.context]
10.7
Reachability
[module.reach]
11
Classes
[class]
11.1
Preamble
[class.pre]
11.2
Properties of classes
[class.prop]
11.3
Class names
[class.name]
11.4
Class members
[class.mem]
11.4.1
General
[class.mem.general]
11.4.2
Member functions
[class.mfct]
11.4.3
Non-static member functions
[class.mfct.non-static]
11.4.3.1
General
[class.mfct.non-static.general]
11.4.3.2
The this pointer
[class.this]
11.4.4
Special member functions
[special]
11.4.5
Constructors
[class.ctor]
11.4.5.1
General
[class.ctor.general]
11.4.5.2
Default constructors
[class.default.ctor]
11.4.5.3
Copy/move constructors
[class.copy.ctor]
11.4.6
Copy/move assignment operator
[class.copy.assign]
11.4.7
Destructors
[class.dtor]
11.4.8
Conversions
[class.conv]
11.4.8.1
General
[class.conv.general]
11.4.8.2
Conversion by constructor
[class.conv.ctor]
11.4.8.3
Conversion functions
[class.conv.fct]
11.4.9
Static members
[class.static]
11.4.9.1
General
[class.static.general]
11.4.9.2
Static member functions
[class.static.mfct]
11.4.9.3
Static data members
[class.static.data]
11.4.10
Bit-fields
[class.bit]
11.4.11
Nested class declarations
[class.nest]
11.4.12
Nested type names
[class.nested.type]
11.5
Unions
[class.union]
11.5.1
General
[class.union.general]
11.5.2
Anonymous unions
[class.union.anon]
11.6
Local class declarations
[class.local]
11.7
Derived classes
[class.derived]
11.7.1
General
[class.derived.general]
11.7.2
Multiple base classes
[class.mi]
11.7.3
Virtual functions
[class.virtual]
11.7.4
Abstract classes
[class.abstract]
11.8
Member name lookup
[class.member.lookup]
11.9
Member access control
[class.access]
11.9.1
General
[class.access.general]
11.9.2
Access specifiers
[class.access.spec]
11.9.3
Accessibility of base classes and base class members
[class.access.base]
11.9.4
Friends
[class.friend]
11.9.5
Protected member access
[class.protected]
11.9.6
Access to virtual functions
[class.access.virt]
11.9.7
Multiple access
[class.paths]
11.9.8
Nested classes
[class.access.nest]
11.10
Initialization
[class.init]
11.10.1
General
[class.init.general]
11.10.2
Explicit initialization
[class.expl.init]
11.10.3
Initializing bases and members
[class.base.init]
11.10.4
Initialization by inherited constructor
[class.inhctor.init]
11.10.5
Construction and destruction
[class.cdtor]
11.10.6
Copy/move elision
[class.copy.elision]
11.11
Comparisons
[class.compare]
11.11.1
Defaulted comparison operator functions
[class.compare.default]
11.11.2
Equality operator
[class.eq]
11.11.3
Three-way comparison
[class.spaceship]
11.11.4
Secondary comparison operators
[class.compare.secondary]
11.12
Free store
[class.free]
12
Overloading
[over]
12.1
Preamble
[over.pre]
12.2
Overloadable declarations
[over.load]
12.3
Declaration matching
[over.dcl]
12.4
Overload resolution
[over.match]
12.4.1
General
[over.match.general]
12.4.2
Candidate functions and argument lists
[over.match.funcs]
12.4.2.1
General
[over.match.funcs.general]
12.4.2.2
Function call syntax
[over.match.call]
12.4.2.2.1
General
[over.match.call.general]
12.4.2.2.2
Call to named function
[over.call.func]
12.4.2.2.3
Call to object of class type
[over.call.object]
12.4.2.3
Operators in expressions
[over.match.oper]
12.4.2.4
Initialization by constructor
[over.match.ctor]
12.4.2.5
Copy-initialization of class by user-defined conversion
[over.match.copy]
12.4.2.6
Initialization by conversion function
[over.match.conv]
12.4.2.7
Initialization by conversion function for direct reference binding
[over.match.ref]
12.4.2.8
Initialization by list-initialization
[over.match.list]
12.4.2.9
Class template argument deduction
[over.match.class.deduct]
12.4.3
Viable functions
[over.match.viable]
12.4.4
Best viable function
[over.match.best]
12.4.4.1
General
[over.match.best.general]
12.4.4.2
Implicit conversion sequences
[over.best.ics]
12.4.4.2.1
General
[over.best.ics.general]
12.4.4.2.2
Standard conversion sequences
[over.ics.scs]
12.4.4.2.3
User-defined conversion sequences
[over.ics.user]
12.4.4.2.4
Ellipsis conversion sequences
[over.ics.ellipsis]
12.4.4.2.5
Reference binding
[over.ics.ref]
12.4.4.2.6
List-initialization sequence
[over.ics.list]
12.4.4.3
Ranking implicit conversion sequences
[over.ics.rank]
12.5
Address of overloaded function
[over.over]
12.6
Overloaded operators
[over.oper]
12.6.1
General
[over.oper.general]
12.6.2
Unary operators
[over.unary]
12.6.3
Binary operators
[over.binary]
12.6.3.1
General
[over.binary.general]
12.6.3.2
Simple assignment
[over.ass]
12.6.4
Function call
[over.call]
12.6.5
Subscripting
[over.sub]
12.6.6
Class member access
[over.ref]
12.6.7
Increment and decrement
[over.inc]
12.7
Built-in operators
[over.built]
12.8
User-defined literals
[over.literal]
13
Templates
[temp]
13.1
Preamble
[temp.pre]
13.2
Template parameters
[temp.param]
13.3
Names of template specializations
[temp.names]
13.4
Template arguments
[temp.arg]
13.4.1
General
[temp.arg.general]
13.4.2
Template type arguments
[temp.arg.type]
13.4.3
Template non-type arguments
[temp.arg.nontype]
13.4.4
Template template arguments
[temp.arg.template]
13.5
Template constraints
[temp.constr]
13.5.1
General
[temp.constr.general]
13.5.2
Constraints
[temp.constr.constr]
13.5.2.1
General
[temp.constr.constr.general]
13.5.2.2
Logical operations
[temp.constr.op]
13.5.2.3
Atomic constraints
[temp.constr.atomic]
13.5.3
Constrained declarations
[temp.constr.decl]
13.5.4
Constraint normalization
[temp.constr.normal]
13.5.5
Partial ordering by constraints
[temp.constr.order]
13.6
Type equivalence
[temp.type]
13.7
Template declarations
[temp.decls]
13.7.1
General
[temp.decls.general]
13.7.2
Class templates
[temp.class]
13.7.2.1
General
[temp.class.general]
13.7.2.2
Member functions of class templates
[temp.mem.func]
13.7.2.3
Deduction guides
[temp.deduct.guide]
13.7.2.4
Member classes of class templates
[temp.mem.class]
13.7.2.5
Static data members of class templates
[temp.static]
13.7.2.6
Enumeration members of class templates
[temp.mem.enum]
13.7.3
Member templates
[temp.mem]
13.7.4
Variadic templates
[temp.variadic]
13.7.5
Friends
[temp.friend]
13.7.6
Class template partial specializations
[temp.class.spec]
13.7.6.1
General
[temp.class.spec.general]
13.7.6.2
Matching of class template partial specializations
[temp.class.spec.match]
13.7.6.3
Partial ordering of class template specializations
[temp.class.order]
13.7.6.4
Members of class template specializations
[temp.class.spec.mfunc]
13.7.7
Function templates
[temp.fct]
13.7.7.1
General
[temp.fct.general]
13.7.7.2
Function template overloading
[temp.over.link]
13.7.7.3
Partial ordering of function templates
[temp.func.order]
13.7.8
Alias templates
[temp.alias]
13.7.9
Concept definitions
[temp.concept]
13.8
Name resolution
[temp.res]
13.8.1
General
[temp.res.general]
13.8.2
Locally declared names
[temp.local]
13.8.3
Dependent names
[temp.dep]
13.8.3.1
General
[temp.dep.general]
13.8.3.2
Dependent types
[temp.dep.type]
13.8.3.3
Type-dependent expressions
[temp.dep.expr]
13.8.3.4
Value-dependent expressions
[temp.dep.constexpr]
13.8.3.5
Dependent template arguments
[temp.dep.temp]
13.8.4
Non-dependent names
[temp.nondep]
13.8.5
Dependent name resolution
[temp.dep.res]
13.8.5.1
Point of instantiation
[temp.point]
13.8.5.2
Candidate functions
[temp.dep.candidate]
13.8.6
Friend names declared within a class template
[temp.inject]
13.9
Template instantiation and specialization
[temp.spec]
13.9.1
General
[temp.spec.general]
13.9.2
Implicit instantiation
[temp.inst]
13.9.3
Explicit instantiation
[temp.explicit]
13.9.4
Explicit specialization
[temp.expl.spec]
13.10
Function template specializations
[temp.fct.spec]
13.10.1
General
[temp.fct.spec.general]
13.10.2
Explicit template argument specification
[temp.arg.explicit]
13.10.3
Template argument deduction
[temp.deduct]
13.10.3.1
General
[temp.deduct.general]
13.10.3.2
Deducing template arguments from a function call
[temp.deduct.call]
13.10.3.3
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
13.10.3.4
Deducing conversion function template arguments
[temp.deduct.conv]
13.10.3.5
Deducing template arguments during partial ordering
[temp.deduct.partial]
13.10.3.6
Deducing template arguments from a type
[temp.deduct.type]
13.10.3.7
Deducing template arguments from a function declaration
[temp.deduct.decl]
13.10.4
Overload resolution
[temp.over]
14
Exception handling
[except]
14.1
Preamble
[except.pre]
14.2
Throwing an exception
[except.throw]
14.3
Constructors and destructors
[except.ctor]
14.4
Handling an exception
[except.handle]
14.5
Exception specifications
[except.spec]
14.6
Special functions
[except.special]
14.6.1
General
[except.special.general]
14.6.2
The std::terminate function
[except.terminate]
14.6.3
The std::uncaught_exceptions function
[except.uncaught]
15
Preprocessing directives
[cpp]
15.1
Preamble
[cpp.pre]
15.2
Conditional inclusion
[cpp.cond]
15.3
Source file inclusion
[cpp.include]
15.4
Module directive
[cpp.module]
15.5
Header unit importation
[cpp.import]
15.6
Macro replacement
[cpp.replace]
15.6.1
General
[cpp.replace.general]
15.6.2
Argument substitution
[cpp.subst]
15.6.3
The # operator
[cpp.stringize]
15.6.4
The ## operator
[cpp.concat]
15.6.5
Rescanning and further replacement
[cpp.rescan]
15.6.6
Scope of macro definitions
[cpp.scope]
15.7
Line control
[cpp.line]
15.8
Error directive
[cpp.error]
15.9
Pragma directive
[cpp.pragma]
15.10
Null directive
[cpp.null]
15.11
Predefined macro names
[cpp.predefined]
15.12
Pragma operator
[cpp.pragma.op]
16
Library introduction
[library]
16.1
General
[library.general]
16.2
The C standard library
[library.c]
16.3
Method of description
[description]
16.3.1
General
[description.general]
16.3.2
Structure of each clause
[structure]
16.3.2.1
Elements
[structure.elements]
16.3.2.2
Summary
[structure.summary]
16.3.2.3
Requirements
[structure.requirements]
16.3.2.4
Detailed specifications
[structure.specifications]
16.3.2.5
C library
[structure.see.also]
16.3.3
Other conventions
[conventions]
16.3.3.1
General
[conventions.general]
16.3.3.2
Exposition-only functions
[expos.only.func]
16.3.3.3
Type descriptions
[type.descriptions]
16.3.3.3.1
General
[type.descriptions.general]
16.3.3.3.2
Exposition-only types
[expos.only.types]
16.3.3.3.3
Enumerated types
[enumerated.types]
16.3.3.3.4
Bitmask types
[bitmask.types]
16.3.3.3.5
Character sequences
[character.seq]
16.3.3.3.5.1
General
[character.seq.general]
16.3.3.3.5.2
Byte strings
[byte.strings]
16.3.3.3.5.3
Multibyte strings
[multibyte.strings]
16.3.3.3.6
Customization Point Object types
[customization.point.object]
16.3.3.4
Functions within classes
[functions.within.classes]
16.3.3.5
Private members
[objects.within.classes]
16.4
Library-wide requirements
[requirements]
16.4.1
General
[requirements.general]
16.4.2
Library contents and organization
[organization]
16.4.2.1
General
[organization.general]
16.4.2.2
Library contents
[contents]
16.4.2.3
Headers
[headers]
16.4.2.4
Freestanding implementations
[compliance]
16.4.3
Using the library
[using]
16.4.3.1
Overview
[using.overview]
16.4.3.2
Headers
[using.headers]
16.4.3.3
Linkage
[using.linkage]
16.4.4
Requirements on types and expressions
[utility.requirements]
16.4.4.1
General
[utility.requirements.general]
16.4.4.2
Template argument requirements
[utility.arg.requirements]
16.4.4.3
Swappable requirements
[swappable.requirements]
16.4.4.4
Cpp17NullablePointer requirements
[nullablepointer.requirements]
16.4.4.5
Cpp17Hash requirements
[hash.requirements]
16.4.4.6
Cpp17Allocator requirements
[allocator.requirements]
16.4.4.6.1
General
[allocator.requirements.general]
16.4.4.6.2
Allocator completeness requirements
[allocator.requirements.completeness]
16.4.5
Constraints on programs
[constraints]
16.4.5.1
Overview
[constraints.overview]
16.4.5.2
Namespace use
[namespace.constraints]
16.4.5.2.1
Namespace std
[namespace.std]
16.4.5.2.2
Namespace posix
[namespace.posix]
16.4.5.2.3
Namespaces for future standardization
[namespace.future]
16.4.5.3
Reserved names
[reserved.names]
16.4.5.3.1
General
[reserved.names.general]
16.4.5.3.2
Zombie names
[zombie.names]
16.4.5.3.3
Macro names
[macro.names]
16.4.5.3.4
External linkage
[extern.names]
16.4.5.3.5
Types
[extern.types]
16.4.5.3.6
User-defined literal suffixes
[usrlit.suffix]
16.4.5.4
Headers
[alt.headers]
16.4.5.5
Derived classes
[derived.classes]
16.4.5.6
Replacement functions
[replacement.functions]
16.4.5.7
Handler functions
[handler.functions]
16.4.5.8
Other functions
[res.on.functions]
16.4.5.9
Function arguments
[res.on.arguments]
16.4.5.10
Library object access
[res.on.objects]
16.4.5.11
Semantic requirements
[res.on.requirements]
16.4.6
Conforming implementations
[conforming]
16.4.6.1
Overview
[conforming.overview]
16.4.6.2
Headers
[res.on.headers]
16.4.6.3
Restrictions on macro definitions
[res.on.macro.definitions]
16.4.6.4
Non-member functions
[global.functions]
16.4.6.5
Member functions
[member.functions]
16.4.6.6
Friend functions
[hidden.friends]
16.4.6.7
Constexpr functions and constructors
[constexpr.functions]
16.4.6.8
Requirements for stable algorithms
[algorithm.stable]
16.4.6.9
Reentrancy
[reentrancy]
16.4.6.10
Data race avoidance
[res.on.data.races]
16.4.6.11
Protection within classes
[protection.within.classes]
16.4.6.12
Derived classes
[derivation]
16.4.6.13
Restrictions on exception handling
[res.on.exception.handling]
16.4.6.14
Restrictions on storage of pointers
[res.on.pointer.storage]
16.4.6.15
Value of error codes
[value.error.codes]
16.4.6.16
Moved-from state of library types
[lib.types.movedfrom]
17
Language support library
[support]
17.1
General
[support.general]
17.2
Common definitions
[support.types]
17.2.1
Header <cstddef> synopsis
[cstddef.syn]
17.2.2
Header <cstdlib> synopsis
[cstdlib.syn]
17.2.3
Null pointers
[support.types.nullptr]
17.2.4
Sizes, alignments, and offsets
[support.types.layout]
17.2.5
byte type operations
[support.types.byteops]
17.3
Implementation properties
[support.limits]
17.3.1
General
[support.limits.general]
17.3.2
Header <version> synopsis
[version.syn]
17.3.3
Header <limits> synopsis
[limits.syn]
17.3.4
Floating-point type properties
[fp.style]
17.3.4.1
Type float_round_style
[round.style]
17.3.4.2
Type float_denorm_style
[denorm.style]
17.3.5
Class template numeric_limits
[numeric.limits]
17.3.5.1
General
[numeric.limits.general]
17.3.5.2
numeric_limits members
[numeric.limits.members]
17.3.5.3
numeric_limits specializations
[numeric.special]
17.3.6
Header <climits> synopsis
[climits.syn]
17.3.7
Header <cfloat> synopsis
[cfloat.syn]
17.4
Integer types
[cstdint]
17.4.1
General
[cstdint.general]
17.4.2
Header <cstdint> synopsis
[cstdint.syn]
17.5
Startup and termination
[support.start.term]
17.6
Dynamic memory management
[support.dynamic]
17.6.1
General
[support.dynamic.general]
17.6.2
Header <new> synopsis
[new.syn]
17.6.3
Storage allocation and deallocation
[new.delete]
17.6.3.1
General
[new.delete.general]
17.6.3.2
Single-object forms
[new.delete.single]
17.6.3.3
Array forms
[new.delete.array]
17.6.3.4
Non-allocating forms
[new.delete.placement]
17.6.3.5
Data races
[new.delete.dataraces]
17.6.4
Storage allocation errors
[alloc.errors]
17.6.4.1
Class bad_alloc
[bad.alloc]
17.6.4.2
Class bad_array_new_length
[new.badlength]
17.6.4.3
Type new_handler
[new.handler]
17.6.4.4
set_new_handler
[set.new.handler]
17.6.4.5
get_new_handler
[get.new.handler]
17.6.5
Pointer optimization barrier
[ptr.launder]
17.6.6
Hardware interference size
[hardware.interference]
17.7
Type identification
[support.rtti]
17.7.1
General
[support.rtti.general]
17.7.2
Header <typeinfo> synopsis
[typeinfo.syn]
17.7.3
Class type_info
[type.info]
17.7.4
Class bad_cast
[bad.cast]
17.7.5
Class bad_typeid
[bad.typeid]
17.8
Source location
[support.srcloc]
17.8.1
Header <source_location> synopsis
[source.location.syn]
17.8.2
Class source_location
[support.srcloc.class]
17.8.2.1
General
[support.srcloc.class.general]
17.8.2.2
Creation
[support.srcloc.cons]
17.8.2.3
Observers
[support.srcloc.obs]
17.9
Exception handling
[support.exception]
17.9.1
General
[support.exception.general]
17.9.2
Header <exception> synopsis
[exception.syn]
17.9.3
Class exception
[exception]
17.9.4
Class bad_exception
[bad.exception]
17.9.5
Abnormal termination
[exception.terminate]
17.9.5.1
Type terminate_handler
[terminate.handler]
17.9.5.2
set_terminate
[set.terminate]
17.9.5.3
get_terminate
[get.terminate]
17.9.5.4
terminate
[terminate]
17.9.6
uncaught_exceptions
[uncaught.exceptions]
17.9.7
Exception propagation
[propagation]
17.9.8
nested_exception
[except.nested]
17.10
Initializer lists
[support.initlist]
17.10.1
General
[support.initlist.general]
17.10.2
Header <initializer_list> synopsis
[initializer.list.syn]
17.10.3
Initializer list constructors
[support.initlist.cons]
17.10.4
Initializer list access
[support.initlist.access]
17.10.5
Initializer list range access
[support.initlist.range]
17.11
Comparisons
[cmp]
17.11.1
Header <compare> synopsis
[compare.syn]
17.11.2
Comparison category types
[cmp.categories]
17.11.2.1
Preamble
[cmp.categories.pre]
17.11.2.2
Class partial_ordering
[cmp.partialord]
17.11.2.3
Class weak_ordering
[cmp.weakord]
17.11.2.4
Class strong_ordering
[cmp.strongord]
17.11.3
Class template common_comparison_category
[cmp.common]
17.11.4
Concept three_way_comparable
[cmp.concept]
17.11.5
Result of three-way comparison
[cmp.result]
17.11.6
Comparison algorithms
[cmp.alg]
17.12
Coroutines
[support.coroutine]
17.12.1
General
[support.coroutine.general]
17.12.2
Header <coroutine> synopsis
[coroutine.syn]
17.12.3
Coroutine traits
[coroutine.traits]
17.12.3.1
General
[coroutine.traits.general]
17.12.3.2
Class template coroutine_traits
[coroutine.traits.primary]
17.12.4
Class template coroutine_handle
[coroutine.handle]
17.12.4.1
General
[coroutine.handle.general]
17.12.4.2
Construct/reset
[coroutine.handle.con]
17.12.4.3
Export/import
[coroutine.handle.export.import]
17.12.4.4
Observers
[coroutine.handle.observers]
17.12.4.5
Resumption
[coroutine.handle.resumption]
17.12.4.6
Promise access
[coroutine.handle.promise]
17.12.4.7
Comparison operators
[coroutine.handle.compare]
17.12.4.8
Hash support
[coroutine.handle.hash]
17.12.5
No-op coroutines
[coroutine.noop]
17.12.5.1
Class noop_coroutine_promise
[coroutine.promise.noop]
17.12.5.2
Class coroutine_handle<noop_coroutine_promise>
[coroutine.handle.noop]
17.12.5.2.1
Observers
[coroutine.handle.noop.observers]
17.12.5.2.2
Resumption
[coroutine.handle.noop.resumption]
17.12.5.2.3
Promise access
[coroutine.handle.noop.promise]
17.12.5.2.4
Address
[coroutine.handle.noop.address]
17.12.5.3
Function noop_coroutine
[coroutine.noop.coroutine]
17.12.6
Trivial awaitables
[coroutine.trivial.awaitables]
17.13
Other runtime support
[support.runtime]
17.13.1
General
[support.runtime.general]
17.13.2
Header <cstdarg> synopsis
[cstdarg.syn]
17.13.3
Header <csetjmp> synopsis
[csetjmp.syn]
17.13.4
Header <csignal> synopsis
[csignal.syn]
17.13.5
Signal handlers
[support.signal]
18
Concepts library
[concepts]
18.1
General
[concepts.general]
18.2
Equality preservation
[concepts.equality]
18.3
Header <concepts> synopsis
[concepts.syn]
18.4
Language-related concepts
[concepts.lang]
18.4.1
General
[concepts.lang.general]
18.4.2
Concept same_as
[concept.same]
18.4.3
Concept derived_from
[concept.derived]
18.4.4
Concept convertible_to
[concept.convertible]
18.4.5
Concept common_reference_with
[concept.commonref]
18.4.6
Concept common_with
[concept.common]
18.4.7
Arithmetic concepts
[concepts.arithmetic]
18.4.8
Concept assignable_from
[concept.assignable]
18.4.9
Concept swappable
[concept.swappable]
18.4.10
Concept destructible
[concept.destructible]
18.4.11
Concept constructible_from
[concept.constructible]
18.4.12
Concept default_initializable
[concept.default.init]
18.4.13
Concept move_constructible
[concept.moveconstructible]
18.4.14
Concept copy_constructible
[concept.copyconstructible]
18.5
Comparison concepts
[concepts.compare]
18.5.1
General
[concepts.compare.general]
18.5.2
Boolean testability
[concept.booleantestable]
18.5.3
Concept equality_comparable
[concept.equalitycomparable]
18.5.4
Concept totally_ordered
[concept.totallyordered]
18.6
Object concepts
[concepts.object]
18.7
Callable concepts
[concepts.callable]
18.7.1
General
[concepts.callable.general]
18.7.2
Concept invocable
[concept.invocable]
18.7.3
Concept regular_invocable
[concept.regularinvocable]
18.7.4
Concept predicate
[concept.predicate]
18.7.5
Concept relation
[concept.relation]
18.7.6
Concept equivalence_relation
[concept.equiv]
18.7.7
Concept strict_weak_order
[concept.strictweakorder]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
General
[std.exceptions.general]
19.2.2
Header <stdexcept> synopsis
[stdexcept.syn]
19.2.3
Class logic_error
[logic.error]
19.2.4
Class domain_error
[domain.error]
19.2.5
Class invalid_argument
[invalid.argument]
19.2.6
Class length_error
[length.error]
19.2.7
Class out_of_range
[out.of.range]
19.2.8
Class runtime_error
[runtime.error]
19.2.9
Class range_error
[range.error]
19.2.10
Class overflow_error
[overflow.error]
19.2.11
Class underflow_error
[underflow.error]
19.3
Assertions
[assertions]
19.3.1
General
[assertions.general]
19.3.2
Header <cassert> synopsis
[cassert.syn]
19.3.3
The assert macro
[assertions.assert]
19.4
Error numbers
[errno]
19.4.1
General
[errno.general]
19.4.2
Header <cerrno> synopsis
[cerrno.syn]
19.5
System error support
[syserr]
19.5.1
General
[syserr.general]
19.5.2
Header <system_error> synopsis
[system.error.syn]
19.5.3
Class error_category
[syserr.errcat]
19.5.3.1
Overview
[syserr.errcat.overview]
19.5.3.2
Virtual members
[syserr.errcat.virtuals]
19.5.3.3
Non-virtual members
[syserr.errcat.nonvirtuals]
19.5.3.4
Program-defined classes derived from error_category
[syserr.errcat.derived]
19.5.3.5
Error category objects
[syserr.errcat.objects]
19.5.4
Class error_code
[syserr.errcode]
19.5.4.1
Overview
[syserr.errcode.overview]
19.5.4.2
Constructors
[syserr.errcode.constructors]
19.5.4.3
Modifiers
[syserr.errcode.modifiers]
19.5.4.4
Observers
[syserr.errcode.observers]
19.5.4.5
Non-member functions
[syserr.errcode.nonmembers]
19.5.5
Class error_condition
[syserr.errcondition]
19.5.5.1
Overview
[syserr.errcondition.overview]
19.5.5.2
Constructors
[syserr.errcondition.constructors]
19.5.5.3
Modifiers
[syserr.errcondition.modifiers]
19.5.5.4
Observers
[syserr.errcondition.observers]
19.5.5.5
Non-member functions
[syserr.errcondition.nonmembers]
19.5.6
Comparison operator functions
[syserr.compare]
19.5.7
System error hash support
[syserr.hash]
19.5.8
Class system_error
[syserr.syserr]
19.5.8.1
Overview
[syserr.syserr.overview]
19.5.8.2
Members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Header <utility> synopsis
[utility.syn]
20.2.2
swap
[utility.swap]
20.2.3
exchange
[utility.exchange]
20.2.4
Forward/move helpers
[forward]
20.2.5
Function template as_const
[utility.as.const]
20.2.6
Function template declval
[declval]
20.2.7
Integer comparison functions
[utility.intcmp]
20.3
Compile-time integer sequences
[intseq]
20.3.1
In general
[intseq.general]
20.3.2
Class template integer_sequence
[intseq.intseq]
20.3.3
Alias template make_integer_sequence
[intseq.make]
20.4
Pairs
[pairs]
20.4.1
In general
[pairs.general]
20.4.2
Class template pair
[pairs.pair]
20.4.3
Specialized algorithms
[pairs.spec]
20.4.4
Tuple-like access to pair
[pair.astuple]
20.4.5
Piecewise construction
[pair.piecewise]
20.5
Tuples
[tuple]
20.5.1
In general
[tuple.general]
20.5.2
Header <tuple> synopsis
[tuple.syn]
20.5.3
Class template tuple
[tuple.tuple]
20.5.3.1
Construction
[tuple.cnstr]
20.5.3.2
Assignment
[tuple.assign]
20.5.3.3
swap
[tuple.swap]
20.5.4
Tuple creation functions
[tuple.creation]
20.5.5
Calling a function with a tuple of arguments
[tuple.apply]
20.5.6
Tuple helper classes
[tuple.helper]
20.5.7
Element access
[tuple.elem]
20.5.8
Relational operators
[tuple.rel]
20.5.9
Tuple traits
[tuple.traits]
20.5.10
Tuple specialized algorithms
[tuple.special]
20.6
Optional objects
[optional]
20.6.1
In general
[optional.general]
20.6.2
Header <optional> synopsis
[optional.syn]
20.6.3
Class template optional
[optional.optional]
20.6.3.1
General
[optional.optional.general]
20.6.3.2
Constructors
[optional.ctor]
20.6.3.3
Destructor
[optional.dtor]
20.6.3.4
Assignment
[optional.assign]
20.6.3.5
Swap
[optional.swap]
20.6.3.6
Observers
[optional.observe]
20.6.3.7
Modifiers
[optional.mod]
20.6.4
No-value state indicator
[optional.nullopt]
20.6.5
Class bad_optional_access
[optional.bad.access]
20.6.6
Relational operators
[optional.relops]
20.6.7
Comparison with nullopt
[optional.nullops]
20.6.8
Comparison with T
[optional.comp.with.t]
20.6.9
Specialized algorithms
[optional.specalg]
20.6.10
Hash support
[optional.hash]
20.7
Variants
[variant]
20.7.1
In general
[variant.general]
20.7.2
Header <variant> synopsis
[variant.syn]
20.7.3
Class template variant
[variant.variant]
20.7.3.1
General
[variant.variant.general]
20.7.3.2
Constructors
[variant.ctor]
20.7.3.3
Destructor
[variant.dtor]
20.7.3.4
Assignment
[variant.assign]
20.7.3.5
Modifiers
[variant.mod]
20.7.3.6
Value status
[variant.status]
20.7.3.7
Swap
[variant.swap]
20.7.4
variant helper classes
[variant.helper]
20.7.5
Value access
[variant.get]
20.7.6
Relational operators
[variant.relops]
20.7.7
Visitation
[variant.visit]
20.7.8
Class monostate
[variant.monostate]
20.7.9
monostate relational operators
[variant.monostate.relops]
20.7.10
Specialized algorithms
[variant.specalg]
20.7.11
Class bad_variant_access
[variant.bad.access]
20.7.12
Hash support
[variant.hash]
20.8
Storage for any type
[any]
20.8.1
General
[any.general]
20.8.2
Header <any> synopsis
[any.synop]
20.8.3
Class bad_any_cast
[any.bad.any.cast]
20.8.4
Class any
[any.class]
20.8.4.1
General
[any.class.general]
20.8.4.2
Construction and destruction
[any.cons]
20.8.4.3
Assignment
[any.assign]
20.8.4.4
Modifiers
[any.modifiers]
20.8.4.5
Observers
[any.observers]
20.8.5
Non-member functions
[any.nonmembers]
20.9
Bitsets
[bitset]
20.9.1
Header <bitset> synopsis
[bitset.syn]
20.9.2
Class template bitset
[template.bitset]
20.9.2.1
General
[template.bitset.general]
20.9.2.2
Constructors
[bitset.cons]
20.9.2.3
Members
[bitset.members]
20.9.3
bitset hash support
[bitset.hash]
20.9.4
bitset operators
[bitset.operators]
20.10
Memory
[memory]
20.10.1
In general
[memory.general]
20.10.2
Header <memory> synopsis
[memory.syn]
20.10.3
Pointer traits
[pointer.traits]
20.10.3.1
General
[pointer.traits.general]
20.10.3.2
Member types
[pointer.traits.types]
20.10.3.3
Member functions
[pointer.traits.functions]
20.10.3.4
Optional members
[pointer.traits.optmem]
20.10.4
Pointer conversion
[pointer.conversion]
20.10.5
Pointer safety
[util.dynamic.safety]
20.10.6
Pointer alignment
[ptr.align]
20.10.7
Allocator argument tag
[allocator.tag]
20.10.8
uses_allocator
[allocator.uses]
20.10.8.1
uses_allocator trait
[allocator.uses.trait]
20.10.8.2
Uses-allocator construction
[allocator.uses.construction]
20.10.9
Allocator traits
[allocator.traits]
20.10.9.1
General
[allocator.traits.general]
20.10.9.2
Member types
[allocator.traits.types]
20.10.9.3
Static member functions
[allocator.traits.members]
20.10.10
The default allocator
[default.allocator]
20.10.10.1
General
[default.allocator.general]
20.10.10.2
Members
[allocator.members]
20.10.10.3
Operators
[allocator.globals]
20.10.11
addressof
[specialized.addressof]
20.10.12
C library memory allocation
[c.malloc]
20.11
Smart pointers
[smartptr]
20.11.1
Class template unique_ptr
[unique.ptr]
20.11.1.1
General
[unique.ptr.general]
20.11.1.2
Default deleters
[unique.ptr.dltr]
20.11.1.2.1
In general
[unique.ptr.dltr.general]
20.11.1.2.2
default_delete
[unique.ptr.dltr.dflt]
20.11.1.2.3
default_delete<T[]>
[unique.ptr.dltr.dflt1]
20.11.1.3
unique_ptr for single objects
[unique.ptr.single]
20.11.1.3.1
General
[unique.ptr.single.general]
20.11.1.3.2
Constructors
[unique.ptr.single.ctor]
20.11.1.3.3
Destructor
[unique.ptr.single.dtor]
20.11.1.3.4
Assignment
[unique.ptr.single.asgn]
20.11.1.3.5
Observers
[unique.ptr.single.observers]
20.11.1.3.6
Modifiers
[unique.ptr.single.modifiers]
20.11.1.4
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.11.1.4.1
General
[unique.ptr.runtime.general]
20.11.1.4.2
Constructors
[unique.ptr.runtime.ctor]
20.11.1.4.3
Assignment
[unique.ptr.runtime.asgn]
20.11.1.4.4
Observers
[unique.ptr.runtime.observers]
20.11.1.4.5
Modifiers
[unique.ptr.runtime.modifiers]
20.11.1.5
Creation
[unique.ptr.create]
20.11.1.6
Specialized algorithms
[unique.ptr.special]
20.11.1.7
I/O
[unique.ptr.io]
20.11.2
Class bad_weak_ptr
[util.smartptr.weak.bad]
20.11.3
Class template shared_ptr
[util.smartptr.shared]
20.11.3.1
General
[util.smartptr.shared.general]
20.11.3.2
Constructors
[util.smartptr.shared.const]
20.11.3.3
Destructor
[util.smartptr.shared.dest]
20.11.3.4
Assignment
[util.smartptr.shared.assign]
20.11.3.5
Modifiers
[util.smartptr.shared.mod]
20.11.3.6
Observers
[util.smartptr.shared.obs]
20.11.3.7
Creation
[util.smartptr.shared.create]
20.11.3.8
Comparison
[util.smartptr.shared.cmp]
20.11.3.9
Specialized algorithms
[util.smartptr.shared.spec]
20.11.3.10
Casts
[util.smartptr.shared.cast]
20.11.3.11
get_deleter
[util.smartptr.getdeleter]
20.11.3.12
I/O
[util.smartptr.shared.io]
20.11.4
Class template weak_ptr
[util.smartptr.weak]
20.11.4.1
General
[util.smartptr.weak.general]
20.11.4.2
Constructors
[util.smartptr.weak.const]
20.11.4.3
Destructor
[util.smartptr.weak.dest]
20.11.4.4
Assignment
[util.smartptr.weak.assign]
20.11.4.5
Modifiers
[util.smartptr.weak.mod]
20.11.4.6
Observers
[util.smartptr.weak.obs]
20.11.4.7
Specialized algorithms
[util.smartptr.weak.spec]
20.11.5
Class template owner_less
[util.smartptr.ownerless]
20.11.6
Class template enable_shared_from_this
[util.smartptr.enab]
20.11.7
Smart pointer hash support
[util.smartptr.hash]
20.12
Memory resources
[mem.res]
20.12.1
Header <memory_resource> synopsis
[mem.res.syn]
20.12.2
Class memory_resource
[mem.res.class]
20.12.2.1
General
[mem.res.class.general]
20.12.2.2
Public member functions
[mem.res.public]
20.12.2.3
Private virtual member functions
[mem.res.private]
20.12.2.4
Equality
[mem.res.eq]
20.12.3
Class template polymorphic_allocator
[mem.poly.allocator.class]
20.12.3.1
General
[mem.poly.allocator.class.general]
20.12.3.2
Constructors
[mem.poly.allocator.ctor]
20.12.3.3
Member functions
[mem.poly.allocator.mem]
20.12.3.4
Equality
[mem.poly.allocator.eq]
20.12.4
Access to program-wide memory_resource objects
[mem.res.global]
20.12.5
Pool resource classes
[mem.res.pool]
20.12.5.1
Classes synchronized_pool_resource and unsynchronized_pool_resource
[mem.res.pool.overview]
20.12.5.2
pool_options data members
[mem.res.pool.options]
20.12.5.3
Constructors and destructors
[mem.res.pool.ctor]
20.12.5.4
Members
[mem.res.pool.mem]
20.12.6
Class monotonic_buffer_resource
[mem.res.monotonic.buffer]
20.12.6.1
General
[mem.res.monotonic.buffer.general]
20.12.6.2
Constructors and destructor
[mem.res.monotonic.buffer.ctor]
20.12.6.3
Members
[mem.res.monotonic.buffer.mem]
20.13
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.13.1
Header <scoped_allocator> synopsis
[allocator.adaptor.syn]
20.13.2
Member types
[allocator.adaptor.types]
20.13.3
Constructors
[allocator.adaptor.cnstr]
20.13.4
Members
[allocator.adaptor.members]
20.13.5
Operators
[scoped.adaptor.operators]
20.14
Function objects
[function.objects]
20.14.1
General
[function.objects.general]
20.14.2
Header <functional> synopsis
[functional.syn]
20.14.3
Definitions
[func.def]
20.14.4
Requirements
[func.require]
20.14.5
Function template invoke
[func.invoke]
20.14.6
Class template reference_wrapper
[refwrap]
20.14.6.1
General
[refwrap.general]
20.14.6.2
Constructors and destructor
[refwrap.const]
20.14.6.3
Assignment
[refwrap.assign]
20.14.6.4
Access
[refwrap.access]
20.14.6.5
Invocation
[refwrap.invoke]
20.14.6.6
Helper functions
[refwrap.helpers]
20.14.7
Arithmetic operations
[arithmetic.operations]
20.14.7.1
General
[arithmetic.operations.general]
20.14.7.2
Class template plus
[arithmetic.operations.plus]
20.14.7.3
Class template minus
[arithmetic.operations.minus]
20.14.7.4
Class template multiplies
[arithmetic.operations.multiplies]
20.14.7.5
Class template divides
[arithmetic.operations.divides]
20.14.7.6
Class template modulus
[arithmetic.operations.modulus]
20.14.7.7
Class template negate
[arithmetic.operations.negate]
20.14.8
Comparisons
[comparisons]
20.14.8.1
General
[comparisons.general]
20.14.8.2
Class template equal_to
[comparisons.equal.to]
20.14.8.3
Class template not_equal_to
[comparisons.not.equal.to]
20.14.8.4
Class template greater
[comparisons.greater]
20.14.8.5
Class template less
[comparisons.less]
20.14.8.6
Class template greater_equal
[comparisons.greater.equal]
20.14.8.7
Class template less_equal
[comparisons.less.equal]
20.14.8.8
Class compare_three_way
[comparisons.three.way]
20.14.9
Concept-constrained comparisons
[range.cmp]
20.14.10
Logical operations
[logical.operations]
20.14.10.1
General
[logical.operations.general]
20.14.10.2
Class template logical_and
[logical.operations.and]
20.14.10.3
Class template logical_or
[logical.operations.or]
20.14.10.4
Class template logical_not
[logical.operations.not]
20.14.11
Bitwise operations
[bitwise.operations]
20.14.11.1
General
[bitwise.operations.general]
20.14.11.2
Class template bit_and
[bitwise.operations.and]
20.14.11.3
Class template bit_or
[bitwise.operations.or]
20.14.11.4
Class template bit_xor
[bitwise.operations.xor]
20.14.11.5
Class template bit_not
[bitwise.operations.not]
20.14.12
Class identity
[func.identity]
20.14.13
Function template not_fn
[func.not.fn]
20.14.14
Function template bind_front
[func.bind.front]
20.14.15
Function object binders
[func.bind]
20.14.15.1
General
[func.bind.general]
20.14.15.2
Class template is_bind_expression
[func.bind.isbind]
20.14.15.3
Class template is_placeholder
[func.bind.isplace]
20.14.15.4
Function template bind
[func.bind.bind]
20.14.15.5
Placeholders
[func.bind.place]
20.14.16
Function template mem_fn
[func.memfn]
20.14.17
Polymorphic function wrappers
[func.wrap]
20.14.17.1
General
[func.wrap.general]
20.14.17.2
Class bad_function_call
[func.wrap.badcall]
20.14.17.3
Class template function
[func.wrap.func]
20.14.17.3.1
General
[func.wrap.func.general]
20.14.17.3.2
Constructors and destructor
[func.wrap.func.con]
20.14.17.3.3
Modifiers
[func.wrap.func.mod]
20.14.17.3.4
Capacity
[func.wrap.func.cap]
20.14.17.3.5
Invocation
[func.wrap.func.inv]
20.14.17.3.6
Target access
[func.wrap.func.targ]
20.14.17.3.7
Null pointer comparison operator functions
[func.wrap.func.nullptr]
20.14.17.3.8
Specialized algorithms
[func.wrap.func.alg]
20.14.18
Searchers
[func.search]
20.14.18.1
General
[func.search.general]
20.14.18.2
Class template default_searcher
[func.search.default]
20.14.18.3
Class template boyer_moore_searcher
[func.search.bm]
20.14.18.4
Class template boyer_moore_horspool_searcher
[func.search.bmh]
20.14.19
Class template hash
[unord.hash]
20.15
Metaprogramming and type traits
[meta]
20.15.1
General
[meta.general]
20.15.2
Requirements
[meta.rqmts]
20.15.3
Header <type_traits> synopsis
[meta.type.synop]
20.15.4
Helper classes
[meta.help]
20.15.5
Unary type traits
[meta.unary]
20.15.5.1
General
[meta.unary.general]
20.15.5.2
Primary type categories
[meta.unary.cat]
20.15.5.3
Composite type traits
[meta.unary.comp]
20.15.5.4
Type properties
[meta.unary.prop]
20.15.6
Type property queries
[meta.unary.prop.query]
20.15.7
Relationships between types
[meta.rel]
20.15.8
Transformations between types
[meta.trans]
20.15.8.1
General
[meta.trans.general]
20.15.8.2
Const-volatile modifications
[meta.trans.cv]
20.15.8.3
Reference modifications
[meta.trans.ref]
20.15.8.4
Sign modifications
[meta.trans.sign]
20.15.8.5
Array modifications
[meta.trans.arr]
20.15.8.6
Pointer modifications
[meta.trans.ptr]
20.15.8.7
Other transformations
[meta.trans.other]
20.15.9
Logical operator traits
[meta.logical]
20.15.10
Member relationships
[meta.member]
20.15.11
Constant evaluation context
[meta.const.eval]
20.16
Compile-time rational arithmetic
[ratio]
20.16.1
In general
[ratio.general]
20.16.2
Header <ratio> synopsis
[ratio.syn]
20.16.3
Class template ratio
[ratio.ratio]
20.16.4
Arithmetic on ratios
[ratio.arithmetic]
20.16.5
Comparison of ratios
[ratio.comparison]
20.16.6
SI types for ratio
[ratio.si]
20.17
Class type_index
[type.index]
20.17.1
Header <typeindex> synopsis
[type.index.synopsis]
20.17.2
type_index overview
[type.index.overview]
20.17.3
type_index members
[type.index.members]
20.17.4
Hash support
[type.index.hash]
20.18
Execution policies
[execpol]
20.18.1
In general
[execpol.general]
20.18.2
Header <execution> synopsis
[execution.syn]
20.18.3
Execution policy type trait
[execpol.type]
20.18.4
Sequenced execution policy
[execpol.seq]
20.18.5
Parallel execution policy
[execpol.par]
20.18.6
Parallel and unsequenced execution policy
[execpol.parunseq]
20.18.7
Unsequenced execution policy
[execpol.unseq]
20.18.8
Execution policy objects
[execpol.objects]
20.19
Primitive numeric conversions
[charconv]
20.19.1
Header <charconv> synopsis
[charconv.syn]
20.19.2
Primitive numeric output conversion
[charconv.to.chars]
20.19.3
Primitive numeric input conversion
[charconv.from.chars]
20.20
Formatting
[format]
20.20.1
Header <format> synopsis
[format.syn]
20.20.2
Format string
[format.string]
20.20.2.1
In general
[format.string.general]
20.20.2.2
Standard format specifiers
[format.string.std]
20.20.3
Error reporting
[format.err.report]
20.20.4
Formatting functions
[format.functions]
20.20.5
Formatter
[format.formatter]
20.20.5.1
Formatter requirements
[formatter.requirements]
20.20.5.2
Formatter specializations
[format.formatter.spec]
20.20.5.3
Class template basic_format_parse_context
[format.parse.ctx]
20.20.5.4
Class template basic_format_context
[format.context]
20.20.6
Arguments
[format.arguments]
20.20.6.1
Class template basic_format_arg
[format.arg]
20.20.6.2
Class template format-arg-store
[format.arg.store]
20.20.6.3
Class template basic_format_args
[format.args]
20.20.7
Class format_error
[format.error]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
General
[char.traits.general]
21.2.2
Character traits requirements
[char.traits.require]
21.2.3
Traits typedefs
[char.traits.typedefs]
21.2.4
char_traits specializations
[char.traits.specializations]
21.2.4.1
General
[char.traits.specializations.general]
21.2.4.2
struct char_traits<char>
[char.traits.specializations.char]
21.2.4.3
struct char_traits<char8_t>
[char.traits.specializations.char8.t]
21.2.4.4
struct char_traits<char16_t>
[char.traits.specializations.char16.t]
21.2.4.5
struct char_traits<char32_t>
[char.traits.specializations.char32.t]
21.2.4.6
struct char_traits<wchar_t>
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.3.1
General
[string.classes.general]
21.3.2
Header <string> synopsis
[string.syn]
21.3.3
Class template basic_string
[basic.string]
21.3.3.1
General
[basic.string.general]
21.3.3.2
General requirements
[string.require]
21.3.3.3
Constructors and assignment operators
[string.cons]
21.3.3.4
Iterator support
[string.iterators]
21.3.3.5
Capacity
[string.capacity]
21.3.3.6
Element access
[string.access]
21.3.3.7
Modifiers
[string.modifiers]
21.3.3.7.1
basic_string::operator+=
[string.op.append]
21.3.3.7.2
basic_string::append
[string.append]
21.3.3.7.3
basic_string::assign
[string.assign]
21.3.3.7.4
basic_string::insert
[string.insert]
21.3.3.7.5
basic_string::erase
[string.erase]
21.3.3.7.6
basic_string::replace
[string.replace]
21.3.3.7.7
basic_string::copy
[string.copy]
21.3.3.7.8
basic_string::swap
[string.swap]
21.3.3.8
String operations
[string.ops]
21.3.3.8.1
Accessors
[string.accessors]
21.3.3.8.2
Searching
[string.find]
21.3.3.8.3
basic_string::substr
[string.substr]
21.3.3.8.4
basic_string::compare
[string.compare]
21.3.3.8.5
basic_string::starts_with
[string.starts.with]
21.3.3.8.6
basic_string::ends_with
[string.ends.with]
21.3.4
Non-member functions
[string.nonmembers]
21.3.4.1
operator+
[string.op.plus]
21.3.4.2
Non-member comparison operator functions
[string.cmp]
21.3.4.3
swap
[string.special]
21.3.4.4
Inserters and extractors
[string.io]
21.3.4.5
Erasure
[string.erasure]
21.3.5
Numeric conversions
[string.conversions]
21.3.6
Hash support
[basic.string.hash]
21.3.7
Suffix for basic_string literals
[basic.string.literals]
21.4
String view classes
[string.view]
21.4.1
General
[string.view.general]
21.4.2
Header <string_view> synopsis
[string.view.synop]
21.4.3
Class template basic_string_view
[string.view.template]
21.4.3.1
General
[string.view.template.general]
21.4.3.2
Construction and assignment
[string.view.cons]
21.4.3.3
Iterator support
[string.view.iterators]
21.4.3.4
Capacity
[string.view.capacity]
21.4.3.5
Element access
[string.view.access]
21.4.3.6
Modifiers
[string.view.modifiers]
21.4.3.7
String operations
[string.view.ops]
21.4.3.8
Searching
[string.view.find]
21.4.4
Deduction guide
[string.view.deduct]
21.4.5
Non-member comparison functions
[string.view.comparison]
21.4.6
Inserters and extractors
[string.view.io]
21.4.7
Hash support
[string.view.hash]
21.4.8
Suffix for basic_string_view literals
[string.view.literals]
21.5
Null-terminated sequence utilities
[c.strings]
21.5.1
Header <cctype> synopsis
[cctype.syn]
21.5.2
Header <cwctype> synopsis
[cwctype.syn]
21.5.3
Header <cstring> synopsis
[cstring.syn]
21.5.4
Header <cwchar> synopsis
[cwchar.syn]
21.5.5
Header <cuchar> synopsis
[cuchar.syn]
21.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
22
Containers library
[containers]
22.1
General
[containers.general]
22.2
Container requirements
[container.requirements]
22.2.1
General container requirements
[container.requirements.general]
22.2.2
Container data races
[container.requirements.dataraces]
22.2.3
Sequence containers
[sequence.reqmts]
22.2.4
Node handles
[container.node]
22.2.4.1
Overview
[container.node.overview]
22.2.4.2
Constructors, copy, and assignment
[container.node.cons]
22.2.4.3
Destructor
[container.node.dtor]
22.2.4.4
Observers
[container.node.observers]
22.2.4.5
Modifiers
[container.node.modifiers]
22.2.5
Insert return type
[container.insert.return]
22.2.6
Associative containers
[associative.reqmts]
22.2.6.1
General
[associative.reqmts.general]
22.2.6.2
Exception safety guarantees
[associative.reqmts.except]
22.2.7
Unordered associative containers
[unord.req]
22.2.7.1
General
[unord.req.general]
22.2.7.2
Exception safety guarantees
[unord.req.except]
22.3
Sequence containers
[sequences]
22.3.1
In general
[sequences.general]
22.3.2
Header <array> synopsis
[array.syn]
22.3.3
Header <deque> synopsis
[deque.syn]
22.3.4
Header <forward_list> synopsis
[forward.list.syn]
22.3.5
Header <list> synopsis
[list.syn]
22.3.6
Header <vector> synopsis
[vector.syn]
22.3.7
Class template array
[array]
22.3.7.1
Overview
[array.overview]
22.3.7.2
Constructors, copy, and assignment
[array.cons]
22.3.7.3
Member functions
[array.members]
22.3.7.4
Specialized algorithms
[array.special]
22.3.7.5
Zero-sized arrays
[array.zero]
22.3.7.6
Array creation functions
[array.creation]
22.3.7.7
Tuple interface
[array.tuple]
22.3.8
Class template deque
[deque]
22.3.8.1
Overview
[deque.overview]
22.3.8.2
Constructors, copy, and assignment
[deque.cons]
22.3.8.3
Capacity
[deque.capacity]
22.3.8.4
Modifiers
[deque.modifiers]
22.3.8.5
Erasure
[deque.erasure]
22.3.9
Class template forward_list
[forwardlist]
22.3.9.1
Overview
[forwardlist.overview]
22.3.9.2
Constructors, copy, and assignment
[forwardlist.cons]
22.3.9.3
Iterators
[forwardlist.iter]
22.3.9.4
Element access
[forwardlist.access]
22.3.9.5
Modifiers
[forwardlist.modifiers]
22.3.9.6
Operations
[forwardlist.ops]
22.3.9.7
Erasure
[forward.list.erasure]
22.3.10
Class template list
[list]
22.3.10.1
Overview
[list.overview]
22.3.10.2
Constructors, copy, and assignment
[list.cons]
22.3.10.3
Capacity
[list.capacity]
22.3.10.4
Modifiers
[list.modifiers]
22.3.10.5
Operations
[list.ops]
22.3.10.6
Erasure
[list.erasure]
22.3.11
Class template vector
[vector]
22.3.11.1
Overview
[vector.overview]
22.3.11.2
Constructors
[vector.cons]
22.3.11.3
Capacity
[vector.capacity]
22.3.11.4
Data
[vector.data]
22.3.11.5
Modifiers
[vector.modifiers]
22.3.11.6
Erasure
[vector.erasure]
22.3.12
Class vector<bool>
[vector.bool]
22.4
Associative containers
[associative]
22.4.1
In general
[associative.general]
22.4.2
Header <map> synopsis
[associative.map.syn]
22.4.3
Header <set> synopsis
[associative.set.syn]
22.4.4
Class template map
[map]
22.4.4.1
Overview
[map.overview]
22.4.4.2
Constructors, copy, and assignment
[map.cons]
22.4.4.3
Element access
[map.access]
22.4.4.4
Modifiers
[map.modifiers]
22.4.4.5
Erasure
[map.erasure]
22.4.5
Class template multimap
[multimap]
22.4.5.1
Overview
[multimap.overview]
22.4.5.2
Constructors
[multimap.cons]
22.4.5.3
Modifiers
[multimap.modifiers]
22.4.5.4
Erasure
[multimap.erasure]
22.4.6
Class template set
[set]
22.4.6.1
Overview
[set.overview]
22.4.6.2
Constructors, copy, and assignment
[set.cons]
22.4.6.3
Erasure
[set.erasure]
22.4.7
Class template multiset
[multiset]
22.4.7.1
Overview
[multiset.overview]
22.4.7.2
Constructors
[multiset.cons]
22.4.7.3
Erasure
[multiset.erasure]
22.5
Unordered associative containers
[unord]
22.5.1
In general
[unord.general]
22.5.2
Header <unordered_map> synopsis
[unord.map.syn]
22.5.3
Header <unordered_set> synopsis
[unord.set.syn]
22.5.4
Class template unordered_map
[unord.map]
22.5.4.1
Overview
[unord.map.overview]
22.5.4.2
Constructors
[unord.map.cnstr]
22.5.4.3
Element access
[unord.map.elem]
22.5.4.4
Modifiers
[unord.map.modifiers]
22.5.4.5
Erasure
[unord.map.erasure]
22.5.5
Class template unordered_multimap
[unord.multimap]
22.5.5.1
Overview
[unord.multimap.overview]
22.5.5.2
Constructors
[unord.multimap.cnstr]
22.5.5.3
Modifiers
[unord.multimap.modifiers]
22.5.5.4
Erasure
[unord.multimap.erasure]
22.5.6
Class template unordered_set
[unord.set]
22.5.6.1
Overview
[unord.set.overview]
22.5.6.2
Constructors
[unord.set.cnstr]
22.5.6.3
Erasure
[unord.set.erasure]
22.5.7
Class template unordered_multiset
[unord.multiset]
22.5.7.1
Overview
[unord.multiset.overview]
22.5.7.2
Constructors
[unord.multiset.cnstr]
22.5.7.3
Erasure
[unord.multiset.erasure]
22.6
Container adaptors
[container.adaptors]
22.6.1
In general
[container.adaptors.general]
22.6.2
Header <queue> synopsis
[queue.syn]
22.6.3
Header <stack> synopsis
[stack.syn]
22.6.4
Class template queue
[queue]
22.6.4.1
Definition
[queue.defn]
22.6.4.2
Constructors
[queue.cons]
22.6.4.3
Constructors with allocators
[queue.cons.alloc]
22.6.4.4
Operators
[queue.ops]
22.6.4.5
Specialized algorithms
[queue.special]
22.6.5
Class template priority_queue
[priority.queue]
22.6.5.1
Overview
[priqueue.overview]
22.6.5.2
Constructors
[priqueue.cons]
22.6.5.3
Constructors with allocators
[priqueue.cons.alloc]
22.6.5.4
Members
[priqueue.members]
22.6.5.5
Specialized algorithms
[priqueue.special]
22.6.6
Class template stack
[stack]
22.6.6.1
General
[stack.general]
22.6.6.2
Definition
[stack.defn]
22.6.6.3
Constructors
[stack.cons]
22.6.6.4
Constructors with allocators
[stack.cons.alloc]
22.6.6.5
Operators
[stack.ops]
22.6.6.6
Specialized algorithms
[stack.special]
22.7
Views
[views]
22.7.1
General
[views.general]
22.7.2
Header
synopsis
[span.syn]
22.7.3
Class template span
[views.span]
22.7.3.1
Overview
[span.overview]
22.7.3.2
Constructors, copy, and assignment
[span.cons]
22.7.3.3
Deduction guides
[span.deduct]
22.7.3.4
Subviews
[span.sub]
22.7.3.5
Observers
[span.obs]
22.7.3.6
Element access
[span.elem]
22.7.3.7
Iterator support
[span.iterators]
22.7.3.8
Views of object representation
[span.objectrep]
23
Iterators library
[iterators]
23.1
General
[iterators.general]
23.2
Header <iterator> synopsis
[iterator.synopsis]
23.3
Iterator requirements
[iterator.requirements]
23.3.1
In general
[iterator.requirements.general]
23.3.2
Associated types
[iterator.assoc.types]
23.3.2.1
Incrementable traits
[incrementable.traits]
23.3.2.2
Indirectly readable traits
[readable.traits]
23.3.2.3
Iterator traits
[iterator.traits]
23.3.3
Customization point objects
[iterator.cust]
23.3.3.1
ranges::iter_move
[iterator.cust.move]
23.3.3.2
ranges::iter_swap
[iterator.cust.swap]
23.3.4
Iterator concepts
[iterator.concepts]
23.3.4.1
General
[iterator.concepts.general]
23.3.4.2
Concept indirectly_readable
[iterator.concept.readable]
23.3.4.3
Concept indirectly_writable
[iterator.concept.writable]
23.3.4.4
Concept weakly_incrementable
[iterator.concept.winc]
23.3.4.5
Concept incrementable
[iterator.concept.inc]
23.3.4.6
Concept input_or_output_iterator
[iterator.concept.iterator]
23.3.4.7
Concept sentinel_for
[iterator.concept.sentinel]
23.3.4.8
Concept sized_sentinel_for
[iterator.concept.sizedsentinel]
23.3.4.9
Concept input_iterator
[iterator.concept.input]
23.3.4.10
Concept output_iterator
[iterator.concept.output]
23.3.4.11
Concept forward_iterator
[iterator.concept.forward]
23.3.4.12
Concept bidirectional_iterator
[iterator.concept.bidir]
23.3.4.13
Concept random_access_iterator
[iterator.concept.random.access]
23.3.4.14
Concept contiguous_iterator
[iterator.concept.contiguous]
23.3.5
C++17 iterator requirements
[iterator.cpp17]
23.3.5.1
General
[iterator.cpp17.general]
23.3.5.2
Cpp17Iterator
[iterator.iterators]
23.3.5.3
Input iterators
[input.iterators]
23.3.5.4
Output iterators
[output.iterators]
23.3.5.5
Forward iterators
[forward.iterators]
23.3.5.6
Bidirectional iterators
[bidirectional.iterators]
23.3.5.7
Random access iterators
[random.access.iterators]
23.3.6
Indirect callable requirements
[indirectcallable]
23.3.6.1
General
[indirectcallable.general]
23.3.6.2
Indirect callables
[indirectcallable.indirectinvocable]
23.3.6.3
Class template projected
[projected]
23.3.7
Common algorithm requirements
[alg.req]
23.3.7.1
General
[alg.req.general]
23.3.7.2
Concept indirectly_movable
[alg.req.ind.move]
23.3.7.3
Concept indirectly_copyable
[alg.req.ind.copy]
23.3.7.4
Concept indirectly_swappable
[alg.req.ind.swap]
23.3.7.5
Concept indirectly_comparable
[alg.req.ind.cmp]
23.3.7.6
Concept permutable
[alg.req.permutable]
23.3.7.7
Concept mergeable
[alg.req.mergeable]
23.3.7.8
Concept sortable
[alg.req.sortable]
23.4
Iterator primitives
[iterator.primitives]
23.4.1
General
[iterator.primitives.general]
23.4.2
Standard iterator tags
[std.iterator.tags]
23.4.3
Iterator operations
[iterator.operations]
23.4.4
Range iterator operations
[range.iter.ops]
23.4.4.1
General
[range.iter.ops.general]
23.4.4.2
ranges::advance
[range.iter.op.advance]
23.4.4.3
ranges::distance
[range.iter.op.distance]
23.4.4.4
ranges::next
[range.iter.op.next]
23.4.4.5
ranges::prev
[range.iter.op.prev]
23.5
Iterator adaptors
[predef.iterators]
23.5.1
Reverse iterators
[reverse.iterators]
23.5.1.1
General
[reverse.iterators.general]
23.5.1.2
Class template reverse_iterator
[reverse.iterator]
23.5.1.3
Requirements
[reverse.iter.requirements]
23.5.1.4
Construction and assignment
[reverse.iter.cons]
23.5.1.5
Conversion
[reverse.iter.conv]
23.5.1.6
Element access
[reverse.iter.elem]
23.5.1.7
Navigation
[reverse.iter.nav]
23.5.1.8
Comparisons
[reverse.iter.cmp]
23.5.1.9
Non-member functions
[reverse.iter.nonmember]
23.5.2
Insert iterators
[insert.iterators]
23.5.2.1
General
[insert.iterators.general]
23.5.2.2
Class template back_insert_iterator
[back.insert.iterator]
23.5.2.2.1
Operations
[back.insert.iter.ops]
23.5.2.2.2
back_inserter
[back.inserter]
23.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
23.5.2.3.1
Operations
[front.insert.iter.ops]
23.5.2.3.2
front_inserter
[front.inserter]
23.5.2.4
Class template insert_iterator
[insert.iterator]
23.5.2.4.1
Operations
[insert.iter.ops]
23.5.2.4.2
inserter
[inserter]
23.5.3
Move iterators and sentinels
[move.iterators]
23.5.3.1
General
[move.iterators.general]
23.5.3.2
Class template move_iterator
[move.iterator]
23.5.3.3
Requirements
[move.iter.requirements]
23.5.3.4
Construction and assignment
[move.iter.cons]
23.5.3.5
Conversion
[move.iter.op.conv]
23.5.3.6
Element access
[move.iter.elem]
23.5.3.7
Navigation
[move.iter.nav]
23.5.3.8
Comparisons
[move.iter.op.comp]
23.5.3.9
Non-member functions
[move.iter.nonmember]
23.5.3.10
Class template move_sentinel
[move.sentinel]
23.5.3.11
Operations
[move.sent.ops]
23.5.4
Common iterators
[iterators.common]
23.5.4.1
Class template common_iterator
[common.iterator]
23.5.4.2
Associated types
[common.iter.types]
23.5.4.3
Constructors and conversions
[common.iter.const]
23.5.4.4
Accessors
[common.iter.access]
23.5.4.5
Navigation
[common.iter.nav]
23.5.4.6
Comparisons
[common.iter.cmp]
23.5.4.7
Customizations
[common.iter.cust]
23.5.5
Default sentinel
[default.sentinel]
23.5.6
Counted iterators
[iterators.counted]
23.5.6.1
Class template counted_iterator
[counted.iterator]
23.5.6.2
Constructors and conversions
[counted.iter.const]
23.5.6.3
Accessors
[counted.iter.access]
23.5.6.4
Element access
[counted.iter.elem]
23.5.6.5
Navigation
[counted.iter.nav]
23.5.6.6
Comparisons
[counted.iter.cmp]
23.5.6.7
Customizations
[counted.iter.cust]
23.5.7
Unreachable sentinel
[unreachable.sentinel]
23.6
Stream iterators
[stream.iterators]
23.6.1
General
[stream.iterators.general]
23.6.2
Class template istream_iterator
[istream.iterator]
23.6.2.1
General
[istream.iterator.general]
23.6.2.2
Constructors and destructor
[istream.iterator.cons]
23.6.2.3
Operations
[istream.iterator.ops]
23.6.3
Class template ostream_iterator
[ostream.iterator]
23.6.3.1
General
[ostream.iterator.general]
23.6.3.2
Constructors and destructor
[ostream.iterator.cons.des]
23.6.3.3
Operations
[ostream.iterator.ops]
23.6.4
Class template istreambuf_iterator
[istreambuf.iterator]
23.6.4.1
General
[istreambuf.iterator.general]
23.6.4.2
Class istreambuf_iterator::proxy
[istreambuf.iterator.proxy]
23.6.4.3
Constructors
[istreambuf.iterator.cons]
23.6.4.4
Operations
[istreambuf.iterator.ops]
23.6.5
Class template ostreambuf_iterator
[ostreambuf.iterator]
23.6.5.1
General
[ostreambuf.iterator.general]
23.6.5.2
Constructors
[ostreambuf.iter.cons]
23.6.5.3
Operations
[ostreambuf.iter.ops]
23.7
Range access
[iterator.range]
24
Ranges library
[ranges]
24.1
General
[ranges.general]
24.2
Header <ranges> synopsis
[ranges.syn]
24.3
Range access
[range.access]
24.3.1
General
[range.access.general]
24.3.2
ranges::begin
[range.access.begin]
24.3.3
ranges::end
[range.access.end]
24.3.4
ranges::cbegin
[range.access.cbegin]
24.3.5
ranges::cend
[range.access.cend]
24.3.6
ranges::rbegin
[range.access.rbegin]
24.3.7
ranges::rend
[range.access.rend]
24.3.8
ranges::crbegin
[range.access.crbegin]
24.3.9
ranges::crend
[range.access.crend]
24.3.10
ranges::size
[range.prim.size]
24.3.11
ranges::ssize
[range.prim.ssize]
24.3.12
ranges::empty
[range.prim.empty]
24.3.13
ranges::data
[range.prim.data]
24.3.14
ranges::cdata
[range.prim.cdata]
24.4
Range requirements
[range.req]
24.4.1
General
[range.req.general]
24.4.2
Ranges
[range.range]
24.4.3
Sized ranges
[range.sized]
24.4.4
Views
[range.view]
24.4.5
Other range refinements
[range.refinements]
24.5
Range utilities
[range.utility]
24.5.1
General
[range.utility.general]
24.5.2
Helper concepts
[range.utility.helpers]
24.5.3
View interface
[view.interface]
24.5.3.1
General
[view.interface.general]
24.5.3.2
Members
[view.interface.members]
24.5.4
Sub-ranges
[range.subrange]
24.5.4.1
General
[range.subrange.general]
24.5.4.2
Constructors and conversions
[range.subrange.ctor]
24.5.4.3
Accessors
[range.subrange.access]
24.5.5
Dangling iterator handling
[range.dangling]
24.6
Range factories
[range.factories]
24.6.1
General
[range.factories.general]
24.6.2
Empty view
[range.empty]
24.6.2.1
Overview
[range.empty.overview]
24.6.2.2
Class template empty_view
[range.empty.view]
24.6.3
Single view
[range.single]
24.6.3.1
Overview
[range.single.overview]
24.6.3.2
Class template single_view
[range.single.view]
24.6.4
Iota view
[range.iota]
24.6.4.1
Overview
[range.iota.overview]
24.6.4.2
Class template iota_view
[range.iota.view]
24.6.4.3
Class iota_view::iterator
[range.iota.iterator]
24.6.4.4
Class iota_view::sentinel
[range.iota.sentinel]
24.6.5
Istream view
[range.istream]
24.6.5.1
Overview
[range.istream.overview]
24.6.5.2
Class template basic_istream_view
[range.istream.view]
24.6.5.3
Class template basic_istream_view::iterator
[range.istream.iterator]
24.7
Range adaptors
[range.adaptors]
24.7.1
General
[range.adaptors.general]
24.7.2
Range adaptor objects
[range.adaptor.object]
24.7.3
Semiregular wrapper
[range.semi.wrap]
24.7.4
All view
[range.all]
24.7.4.1
General
[range.all.general]
24.7.4.2
Class template ref_view
[range.ref.view]
24.7.5
Filter view
[range.filter]
24.7.5.1
Overview
[range.filter.overview]
24.7.5.2
Class template filter_view
[range.filter.view]
24.7.5.3
Class filter_view::iterator
[range.filter.iterator]
24.7.5.4
Class filter_view::sentinel
[range.filter.sentinel]
24.7.6
Transform view
[range.transform]
24.7.6.1
Overview
[range.transform.overview]
24.7.6.2
Class template transform_view
[range.transform.view]
24.7.6.3
Class template transform_view::iterator
[range.transform.iterator]
24.7.6.4
Class template transform_view::sentinel
[range.transform.sentinel]
24.7.7
Take view
[range.take]
24.7.7.1
Overview
[range.take.overview]
24.7.7.2
Class template take_view
[range.take.view]
24.7.7.3
Class template take_view::sentinel
[range.take.sentinel]
24.7.8
Take while view
[range.take.while]
24.7.8.1
Overview
[range.take.while.overview]
24.7.8.2
Class template take_while_view
[range.take.while.view]
24.7.8.3
Class template take_while_view::sentinel
[range.take.while.sentinel]
24.7.9
Drop view
[range.drop]
24.7.9.1
Overview
[range.drop.overview]
24.7.9.2
Class template drop_view
[range.drop.view]
24.7.10
Drop while view
[range.drop.while]
24.7.10.1
Overview
[range.drop.while.overview]
24.7.10.2
Class template drop_while_view
[range.drop.while.view]
24.7.11
Join view
[range.join]
24.7.11.1
Overview
[range.join.overview]
24.7.11.2
Class template join_view
[range.join.view]
24.7.11.3
Class template join_view::iterator
[range.join.iterator]
24.7.11.4
Class template join_view::sentinel
[range.join.sentinel]
24.7.12
Split view
[range.split]
24.7.12.1
Overview
[range.split.overview]
24.7.12.2
Class template split_view
[range.split.view]
24.7.12.3
Class template split_view::outer-iterator
[range.split.outer]
24.7.12.4
Class split_view::outer-iterator::value_type
[range.split.outer.value]
24.7.12.5
Class template split_view::inner-iterator
[range.split.inner]
24.7.13
Counted view
[range.counted]
24.7.14
Common view
[range.common]
24.7.14.1
Overview
[range.common.overview]
24.7.14.2
Class template common_view
[range.common.view]
24.7.15
Reverse view
[range.reverse]
24.7.15.1
Overview
[range.reverse.overview]
24.7.15.2
Class template reverse_view
[range.reverse.view]
24.7.16
Elements view
[range.elements]
24.7.16.1
Overview
[range.elements.overview]
24.7.16.2
Class template elements_view
[range.elements.view]
24.7.16.3
Class template elements_view::iterator
[range.elements.iterator]
24.7.16.4
Class template elements_view::sentinel
[range.elements.sentinel]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Algorithms requirements
[algorithms.requirements]
25.3
Parallel algorithms
[algorithms.parallel]
25.3.1
Preamble
[algorithms.parallel.defns]
25.3.2
Requirements on user-provided function objects
[algorithms.parallel.user]
25.3.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
25.3.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
25.3.5
ExecutionPolicy algorithm overloads
[algorithms.parallel.overloads]
25.4
Header <algorithm> synopsis
[algorithm.syn]
25.5
Algorithm result types
[algorithms.results]
25.6
Non-modifying sequence operations
[alg.nonmodifying]
25.6.1
All of
[alg.all.of]
25.6.2
Any of
[alg.any.of]
25.6.3
None of
[alg.none.of]
25.6.4
For each
[alg.foreach]
25.6.5
Find
[alg.find]
25.6.6
Find end
[alg.find.end]
25.6.7
Find first
[alg.find.first.of]
25.6.8
Adjacent find
[alg.adjacent.find]
25.6.9
Count
[alg.count]
25.6.10
Mismatch
[mismatch]
25.6.11
Equal
[alg.equal]
25.6.12
Is permutation
[alg.is.permutation]
25.6.13
Search
[alg.search]
25.7
Mutating sequence operations
[alg.modifying.operations]
25.7.1
Copy
[alg.copy]
25.7.2
Move
[alg.move]
25.7.3
Swap
[alg.swap]
25.7.4
Transform
[alg.transform]
25.7.5
Replace
[alg.replace]
25.7.6
Fill
[alg.fill]
25.7.7
Generate
[alg.generate]
25.7.8
Remove
[alg.remove]
25.7.9
Unique
[alg.unique]
25.7.10
Reverse
[alg.reverse]
25.7.11
Rotate
[alg.rotate]
25.7.12
Sample
[alg.random.sample]
25.7.13
Shuffle
[alg.random.shuffle]
25.7.14
Shift
[alg.shift]
25.8
Sorting and related operations
[alg.sorting]
25.8.1
General
[alg.sorting.general]
25.8.2
Sorting
[alg.sort]
25.8.2.1
sort
[sort]
25.8.2.2
stable_sort
[stable.sort]
25.8.2.3
partial_sort
[partial.sort]
25.8.2.4
partial_sort_copy
[partial.sort.copy]
25.8.2.5
is_sorted
[is.sorted]
25.8.3
Nth element
[alg.nth.element]
25.8.4
Binary search
[alg.binary.search]
25.8.4.1
General
[alg.binary.search.general]
25.8.4.2
lower_bound
[lower.bound]
25.8.4.3
upper_bound
[upper.bound]
25.8.4.4
equal_range
[equal.range]
25.8.4.5
binary_search
[binary.search]
25.8.5
Partitions
[alg.partitions]
25.8.6
Merge
[alg.merge]
25.8.7
Set operations on sorted structures
[alg.set.operations]
25.8.7.1
General
[alg.set.operations.general]
25.8.7.2
includes
[includes]
25.8.7.3
set_union
[set.union]
25.8.7.4
set_intersection
[set.intersection]
25.8.7.5
set_difference
[set.difference]
25.8.7.6
set_symmetric_difference
[set.symmetric.difference]
25.8.8
Heap operations
[alg.heap.operations]
25.8.8.1
General
[alg.heap.operations.general]
25.8.8.2
push_heap
[push.heap]
25.8.8.3
pop_heap
[pop.heap]
25.8.8.4
make_heap
[make.heap]
25.8.8.5
sort_heap
[sort.heap]
25.8.8.6
is_heap
[is.heap]
25.8.9
Minimum and maximum
[alg.min.max]
25.8.10
Bounded value
[alg.clamp]
25.8.11
Lexicographical comparison
[alg.lex.comparison]
25.8.12
Three-way comparison algorithms
[alg.three.way]
25.8.13
Permutation generators
[alg.permutation.generators]
25.9
Header <numeric> synopsis
[numeric.ops.overview]
25.10
Generalized numeric operations
[numeric.ops]
25.10.1
General
[numeric.ops.general]
25.10.2
Definitions
[numerics.defns]
25.10.3
Accumulate
[accumulate]
25.10.4
Reduce
[reduce]
25.10.5
Inner product
[inner.product]
25.10.6
Transform reduce
[transform.reduce]
25.10.7
Partial sum
[partial.sum]
25.10.8
Exclusive scan
[exclusive.scan]
25.10.9
Inclusive scan
[inclusive.scan]
25.10.10
Transform exclusive scan
[transform.exclusive.scan]
25.10.11
Transform inclusive scan
[transform.inclusive.scan]
25.10.12
Adjacent difference
[adjacent.difference]
25.10.13
Iota
[numeric.iota]
25.10.14
Greatest common divisor
[numeric.ops.gcd]
25.10.15
Least common multiple
[numeric.ops.lcm]
25.10.16
Midpoint
[numeric.ops.midpoint]
25.11
Specialized <memory> algorithms
[specialized.algorithms]
25.11.1
General
[specialized.algorithms.general]
25.11.2
Special memory concepts
[special.mem.concepts]
25.11.3
uninitialized_default_construct
[uninitialized.construct.default]
25.11.4
uninitialized_value_construct
[uninitialized.construct.value]
25.11.5
uninitialized_copy
[uninitialized.copy]
25.11.6
uninitialized_move
[uninitialized.move]
25.11.7
uninitialized_fill
[uninitialized.fill]
25.11.8
construct_at
[specialized.construct]
25.11.9
destroy
[specialized.destroy]
25.12
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Numeric type requirements
[numeric.requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header <cfenv> synopsis
[cfenv.syn]
26.3.2
Threads
[cfenv.thread]
26.4
Complex numbers
[complex.numbers]
26.4.1
General
[complex.numbers.general]
26.4.2
Header <complex> synopsis
[complex.syn]
26.4.3
Class template complex
[complex]
26.4.4
Specializations
[complex.special]
26.4.5
Member functions
[complex.members]
26.4.6
Member operators
[complex.member.ops]
26.4.7
Non-member operations
[complex.ops]
26.4.8
Value operations
[complex.value.ops]
26.4.9
Transcendentals
[complex.transcendentals]
26.4.10
Additional overloads
[cmplx.over]
26.4.11
Suffixes for complex number literals
[complex.literals]
26.5
Bit manipulation
[bit]
26.5.1
General
[bit.general]
26.5.2
Header <bit> synopsis
[bit.syn]
26.5.3
Function template bit_cast
[bit.cast]
26.5.4
Integral powers of 2
[bit.pow.two]
26.5.5
Rotating
[bit.rotate]
26.5.6
Counting
[bit.count]
26.5.7
Endian
[bit.endian]
26.6
Random number generation
[rand]
26.6.1
General
[rand.general]
26.6.2
Header <random> synopsis
[rand.synopsis]
26.6.3
Requirements
[rand.req]
26.6.3.1
General requirements
[rand.req.genl]
26.6.3.2
Seed sequence requirements
[rand.req.seedseq]
26.6.3.3
Uniform random bit generator requirements
[rand.req.urng]
26.6.3.4
Random number engine requirements
[rand.req.eng]
26.6.3.5
Random number engine adaptor requirements
[rand.req.adapt]
26.6.3.6
Random number distribution requirements
[rand.req.dist]
26.6.4
Random number engine class templates
[rand.eng]
26.6.4.1
General
[rand.eng.general]
26.6.4.2
Class template linear_congruential_engine
[rand.eng.lcong]
26.6.4.3
Class template mersenne_twister_engine
[rand.eng.mers]
26.6.4.4
Class template subtract_with_carry_engine
[rand.eng.sub]
26.6.5
Random number engine adaptor class templates
[rand.adapt]
26.6.5.1
In general
[rand.adapt.general]
26.6.5.2
Class template discard_block_engine
[rand.adapt.disc]
26.6.5.3
Class template independent_bits_engine
[rand.adapt.ibits]
26.6.5.4
Class template shuffle_order_engine
[rand.adapt.shuf]
26.6.6
Engines and engine adaptors with predefined parameters
[rand.predef]
26.6.7
Class random_device
[rand.device]
26.6.8
Utilities
[rand.util]
26.6.8.1
Class seed_seq
[rand.util.seedseq]
26.6.8.2
Function template generate_canonical
[rand.util.canonical]
26.6.9
Random number distribution class templates
[rand.dist]
26.6.9.1
In general
[rand.dist.general]
26.6.9.2
Uniform distributions
[rand.dist.uni]
26.6.9.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
26.6.9.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
26.6.9.3
Bernoulli distributions
[rand.dist.bern]
26.6.9.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
26.6.9.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
26.6.9.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
26.6.9.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
26.6.9.4
Poisson distributions
[rand.dist.pois]
26.6.9.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
26.6.9.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
26.6.9.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
26.6.9.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
26.6.9.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
26.6.9.5
Normal distributions
[rand.dist.norm]
26.6.9.5.1
Class template normal_distribution
[rand.dist.norm.normal]
26.6.9.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
26.6.9.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
26.6.9.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
26.6.9.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
26.6.9.5.6
Class template student_t_distribution
[rand.dist.norm.t]
26.6.9.6
Sampling distributions
[rand.dist.samp]
26.6.9.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
26.6.9.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
26.6.9.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
26.6.10
Low-quality random number generation
[c.math.rand]
26.7
Numeric arrays
[numarray]
26.7.1
Header <valarray> synopsis
[valarray.syn]
26.7.2
Class template valarray
[template.valarray]
26.7.2.1
Overview
[template.valarray.overview]
26.7.2.2
Constructors
[valarray.cons]
26.7.2.3
Assignment
[valarray.assign]
26.7.2.4
Element access
[valarray.access]
26.7.2.5
Subset operations
[valarray.sub]
26.7.2.6
Unary operators
[valarray.unary]
26.7.2.7
Compound assignment
[valarray.cassign]
26.7.2.8
Member functions
[valarray.members]
26.7.3
valarray non-member operations
[valarray.nonmembers]
26.7.3.1
Binary operators
[valarray.binary]
26.7.3.2
Logical operators
[valarray.comparison]
26.7.3.3
Transcendentals
[valarray.transcend]
26.7.3.4
Specialized algorithms
[valarray.special]
26.7.4
Class slice
[class.slice]
26.7.4.1
Overview
[class.slice.overview]
26.7.4.2
Constructors
[cons.slice]
26.7.4.3
Access functions
[slice.access]
26.7.4.4
Operators
[slice.ops]
26.7.5
Class template slice_array
[template.slice.array]
26.7.5.1
Overview
[template.slice.array.overview]
26.7.5.2
Assignment
[slice.arr.assign]
26.7.5.3
Compound assignment
[slice.arr.comp.assign]
26.7.5.4
Fill function
[slice.arr.fill]
26.7.6
The gslice class
[class.gslice]
26.7.6.1
Overview
[class.gslice.overview]
26.7.6.2
Constructors
[gslice.cons]
26.7.6.3
Access functions
[gslice.access]
26.7.7
Class template gslice_array
[template.gslice.array]
26.7.7.1
Overview
[template.gslice.array.overview]
26.7.7.2
Assignment
[gslice.array.assign]
26.7.7.3
Compound assignment
[gslice.array.comp.assign]
26.7.7.4
Fill function
[gslice.array.fill]
26.7.8
Class template mask_array
[template.mask.array]
26.7.8.1
Overview
[template.mask.array.overview]
26.7.8.2
Assignment
[mask.array.assign]
26.7.8.3
Compound assignment
[mask.array.comp.assign]
26.7.8.4
Fill function
[mask.array.fill]
26.7.9
Class template indirect_array
[template.indirect.array]
26.7.9.1
Overview
[template.indirect.array.overview]
26.7.9.2
Assignment
[indirect.array.assign]
26.7.9.3
Compound assignment
[indirect.array.comp.assign]
26.7.9.4
Fill function
[indirect.array.fill]
26.7.10
valarray range access
[valarray.range]
26.8
Mathematical functions for floating-point types
[c.math]
26.8.1
Header <cmath> synopsis
[cmath.syn]
26.8.2
Absolute values
[c.math.abs]
26.8.3
Three-dimensional hypotenuse
[c.math.hypot3]
26.8.4
Linear interpolation
[c.math.lerp]
26.8.5
Classification / comparison functions
[c.math.fpclass]
26.8.6
Mathematical special functions
[sf.cmath]
26.8.6.1
General
[sf.cmath.general]
26.8.6.2
Associated Laguerre polynomials
[sf.cmath.assoc.laguerre]
26.8.6.3
Associated Legendre functions
[sf.cmath.assoc.legendre]
26.8.6.4
Beta function
[sf.cmath.beta]
26.8.6.5
Complete elliptic integral of the first kind
[sf.cmath.comp.ellint.1]
26.8.6.6
Complete elliptic integral of the second kind
[sf.cmath.comp.ellint.2]
26.8.6.7
Complete elliptic integral of the third kind
[sf.cmath.comp.ellint.3]
26.8.6.8
Regular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.i]
26.8.6.9
Cylindrical Bessel functions of the first kind
[sf.cmath.cyl.bessel.j]
26.8.6.10
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.k]
26.8.6.11
Cylindrical Neumann functions
[sf.cmath.cyl.neumann]
26.8.6.12
Incomplete elliptic integral of the first kind
[sf.cmath.ellint.1]
26.8.6.13
Incomplete elliptic integral of the second kind
[sf.cmath.ellint.2]
26.8.6.14
Incomplete elliptic integral of the third kind
[sf.cmath.ellint.3]
26.8.6.15
Exponential integral
[sf.cmath.expint]
26.8.6.16
Hermite polynomials
[sf.cmath.hermite]
26.8.6.17
Laguerre polynomials
[sf.cmath.laguerre]
26.8.6.18
Legendre polynomials
[sf.cmath.legendre]
26.8.6.19
Riemann zeta function
[sf.cmath.riemann.zeta]
26.8.6.20
Spherical Bessel functions of the first kind
[sf.cmath.sph.bessel]
26.8.6.21
Spherical associated Legendre functions
[sf.cmath.sph.legendre]
26.8.6.22
Spherical Neumann functions
[sf.cmath.sph.neumann]
26.9
Numbers
[numbers]
26.9.1
Header <numbers> synopsis
[numbers.syn]
26.9.2
Mathematical constants
[math.constants]
27
Time library
[time]
27.1
General
[time.general]
27.2
Header <chrono> synopsis
[time.syn]
27.3
Cpp17Clock requirements
[time.clock.req]
27.4
Time-related traits
[time.traits]
27.4.1
treat_as_floating_point
[time.traits.is.fp]
27.4.2
duration_values
[time.traits.duration.values]
27.4.3
Specializations of common_type
[time.traits.specializations]
27.4.4
Class template is_clock
[time.traits.is.clock]
27.5
Class template duration
[time.duration]
27.5.1
General
[time.duration.general]
27.5.2
Constructors
[time.duration.cons]
27.5.3
Observer
[time.duration.observer]
27.5.4
Arithmetic
[time.duration.arithmetic]
27.5.5
Special values
[time.duration.special]
27.5.6
Non-member arithmetic
[time.duration.nonmember]
27.5.7
Comparisons
[time.duration.comparisons]
27.5.8
Conversions
[time.duration.cast]
27.5.9
Suffixes for duration literals
[time.duration.literals]
27.5.10
Algorithms
[time.duration.alg]
27.5.11
I/O
[time.duration.io]
27.6
Class template time_point
[time.point]
27.6.1
General
[time.point.general]
27.6.2
Constructors
[time.point.cons]
27.6.3
Observer
[time.point.observer]
27.6.4
Arithmetic
[time.point.arithmetic]
27.6.5
Special values
[time.point.special]
27.6.6
Non-member arithmetic
[time.point.nonmember]
27.6.7
Comparisons
[time.point.comparisons]
27.6.8
Conversions
[time.point.cast]
27.7
Clocks
[time.clock]
27.7.1
General
[time.clock.general]
27.7.2
Class system_clock
[time.clock.system]
27.7.2.1
Overview
[time.clock.system.overview]
27.7.2.2
Members
[time.clock.system.members]
27.7.2.3
Non-member functions
[time.clock.system.nonmembers]
27.7.3
Class utc_clock
[time.clock.utc]
27.7.3.1
Overview
[time.clock.utc.overview]
27.7.3.2
Member functions
[time.clock.utc.members]
27.7.3.3
Non-member functions
[time.clock.utc.nonmembers]
27.7.4
Class tai_clock
[time.clock.tai]
27.7.4.1
Overview
[time.clock.tai.overview]
27.7.4.2
Member functions
[time.clock.tai.members]
27.7.4.3
Non-member functions
[time.clock.tai.nonmembers]
27.7.5
Class gps_clock
[time.clock.gps]
27.7.5.1
Overview
[time.clock.gps.overview]
27.7.5.2
Member functions
[time.clock.gps.members]
27.7.5.3
Non-member functions
[time.clock.gps.nonmembers]
27.7.6
Type file_clock
[time.clock.file]
27.7.6.1
Overview
[time.clock.file.overview]
27.7.6.2
Member functions
[time.clock.file.members]
27.7.6.3
Non-member functions
[time.clock.file.nonmembers]
27.7.7
Class steady_clock
[time.clock.steady]
27.7.8
Class high_resolution_clock
[time.clock.hires]
27.7.9
Local time
[time.clock.local]
27.7.10
time_point conversions
[time.clock.cast]
27.7.10.1
Class template clock_time_conversion
[time.clock.conv]
27.7.10.2
Identity conversions
[time.clock.cast.id]
27.7.10.3
Conversions between system_clock and utc_clock
[time.clock.cast.sys.utc]
27.7.10.4
Conversions between system_clock and other clocks
[time.clock.cast.sys]
27.7.10.5
Conversions between utc_clock and other clocks
[time.clock.cast.utc]
27.7.10.6
Function template clock_cast
[time.clock.cast.fn]
27.8
The civil calendar
[time.cal]
27.8.1
In general
[time.cal.general]
27.8.2
Class last_spec
[time.cal.last]
27.8.3
Class day
[time.cal.day]
27.8.3.1
Overview
[time.cal.day.overview]
27.8.3.2
Member functions
[time.cal.day.members]
27.8.3.3
Non-member functions
[time.cal.day.nonmembers]
27.8.4
Class month
[time.cal.month]
27.8.4.1
Overview
[time.cal.month.overview]
27.8.4.2
Member functions
[time.cal.month.members]
27.8.4.3
Non-member functions
[time.cal.month.nonmembers]
27.8.5
Class year
[time.cal.year]
27.8.5.1
Overview
[time.cal.year.overview]
27.8.5.2
Member functions
[time.cal.year.members]
27.8.5.3
Non-member functions
[time.cal.year.nonmembers]
27.8.6
Class weekday
[time.cal.wd]
27.8.6.1
Overview
[time.cal.wd.overview]
27.8.6.2
Member functions
[time.cal.wd.members]
27.8.6.3
Non-member functions
[time.cal.wd.nonmembers]
27.8.7
Class weekday_indexed
[time.cal.wdidx]
27.8.7.1
Overview
[time.cal.wdidx.overview]
27.8.7.2
Member functions
[time.cal.wdidx.members]
27.8.7.3
Non-member functions
[time.cal.wdidx.nonmembers]
27.8.8
Class weekday_last
[time.cal.wdlast]
27.8.8.1
Overview
[time.cal.wdlast.overview]
27.8.8.2
Member functions
[time.cal.wdlast.members]
27.8.8.3
Non-member functions
[time.cal.wdlast.nonmembers]
27.8.9
Class month_day
[time.cal.md]
27.8.9.1
Overview
[time.cal.md.overview]
27.8.9.2
Member functions
[time.cal.md.members]
27.8.9.3
Non-member functions
[time.cal.md.nonmembers]
27.8.10
Class month_day_last
[time.cal.mdlast]
27.8.11
Class month_weekday
[time.cal.mwd]
27.8.11.1
Overview
[time.cal.mwd.overview]
27.8.11.2
Member functions
[time.cal.mwd.members]
27.8.11.3
Non-member functions
[time.cal.mwd.nonmembers]
27.8.12
Class month_weekday_last
[time.cal.mwdlast]
27.8.12.1
Overview
[time.cal.mwdlast.overview]
27.8.12.2
Member functions
[time.cal.mwdlast.members]
27.8.12.3
Non-member functions
[time.cal.mwdlast.nonmembers]
27.8.13
Class year_month
[time.cal.ym]
27.8.13.1
Overview
[time.cal.ym.overview]
27.8.13.2
Member functions
[time.cal.ym.members]
27.8.13.3
Non-member functions
[time.cal.ym.nonmembers]
27.8.14
Class year_month_day
[time.cal.ymd]
27.8.14.1
Overview
[time.cal.ymd.overview]
27.8.14.2
Member functions
[time.cal.ymd.members]
27.8.14.3
Non-member functions
[time.cal.ymd.nonmembers]
27.8.15
Class year_month_day_last
[time.cal.ymdlast]
27.8.15.1
Overview
[time.cal.ymdlast.overview]
27.8.15.2
Member functions
[time.cal.ymdlast.members]
27.8.15.3
Non-member functions
[time.cal.ymdlast.nonmembers]
27.8.16
Class year_month_weekday
[time.cal.ymwd]
27.8.16.1
Overview
[time.cal.ymwd.overview]
27.8.16.2
Member functions
[time.cal.ymwd.members]
27.8.16.3
Non-member functions
[time.cal.ymwd.nonmembers]
27.8.17
Class year_month_weekday_last
[time.cal.ymwdlast]
27.8.17.1
Overview
[time.cal.ymwdlast.overview]
27.8.17.2
Member functions
[time.cal.ymwdlast.members]
27.8.17.3
Non-member functions
[time.cal.ymwdlast.nonmembers]
27.8.18
Conventional syntax operators
[time.cal.operators]
27.9
Class template hh_mm_ss
[time.hms]
27.9.1
Overview
[time.hms.overview]
27.9.2
Members
[time.hms.members]
27.9.3
Non-members
[time.hms.nonmembers]
27.10
12/24 hours functions
[time.12]
27.11
Time zones
[time.zone]
27.11.1
In general
[time.zone.general]
27.11.2
Time zone database
[time.zone.db]
27.11.2.1
Class tzdb
[time.zone.db.tzdb]
27.11.2.2
Class tzdb_list
[time.zone.db.list]
27.11.2.3
Time zone database access
[time.zone.db.access]
27.11.2.4
Remote time zone database support
[time.zone.db.remote]
27.11.3
Exception classes
[time.zone.exception]
27.11.3.1
Class nonexistent_local_time
[time.zone.exception.nonexist]
27.11.3.2
Class ambiguous_local_time
[time.zone.exception.ambig]
27.11.4
Information classes
[time.zone.info]
27.11.4.1
Class sys_info
[time.zone.info.sys]
27.11.4.2
Class local_info
[time.zone.info.local]
27.11.5
Class time_zone
[time.zone.timezone]
27.11.5.1
Overview
[time.zone.overview]
27.11.5.2
Member functions
[time.zone.members]
27.11.5.3
Non-member functions
[time.zone.nonmembers]
27.11.6
Class template zoned_traits
[time.zone.zonedtraits]
27.11.7
Class template zoned_time
[time.zone.zonedtime]
27.11.7.1
Overview
[time.zone.zonedtime.overview]
27.11.7.2
Constructors
[time.zone.zonedtime.ctor]
27.11.7.3
Member functions
[time.zone.zonedtime.members]
27.11.7.4
Non-member functions
[time.zone.zonedtime.nonmembers]
27.11.8
Class leap_second
[time.zone.leap]
27.11.8.1
Overview
[time.zone.leap.overview]
27.11.8.2
Member functions
[time.zone.leap.members]
27.11.8.3
Non-member functions
[time.zone.leap.nonmembers]
27.11.9
Class time_zone_link
[time.zone.link]
27.11.9.1
Overview
[time.zone.link.overview]
27.11.9.2
Member functions
[time.zone.link.members]
27.11.9.3
Non-member functions
[time.zone.link.nonmembers]
27.12
Formatting
[time.format]
27.13
Parsing
[time.parse]
27.14
Header <ctime> synopsis
[ctime.syn]
28
Localization library
[localization]
28.1
General
[localization.general]
28.2
Header <locale> synopsis
[locale.syn]
28.3
Locales
[locales]
28.3.1
Class locale
[locale]
28.3.1.1
General
[locale.general]
28.3.1.2
Types
[locale.types]
28.3.1.2.1
Type locale::category
[locale.category]
28.3.1.2.2
Class locale::facet
[locale.facet]
28.3.1.2.3
Class locale::id
[locale.id]
28.3.1.3
Constructors and destructor
[locale.cons]
28.3.1.4
Members
[locale.members]
28.3.1.5
Operators
[locale.operators]
28.3.1.6
Static members
[locale.statics]
28.3.2
locale globals
[locale.global.templates]
28.3.3
Convenience interfaces
[locale.convenience]
28.3.3.1
Character classification
[classification]
28.3.3.2
Character conversions
[conversions.character]
28.4
Standard locale categories
[locale.categories]
28.4.1
General
[locale.categories.general]
28.4.2
The ctype category
[category.ctype]
28.4.2.1
General
[category.ctype.general]
28.4.2.2
Class template ctype
[locale.ctype]
28.4.2.2.1
General
[locale.ctype.general]
28.4.2.2.2
ctype members
[locale.ctype.members]
28.4.2.2.3
ctype virtual functions
[locale.ctype.virtuals]
28.4.2.3
Class template ctype_byname
[locale.ctype.byname]
28.4.2.4
ctype<char> specialization
[facet.ctype.special]
28.4.2.4.1
General
[facet.ctype.special.general]
28.4.2.4.2
Destructor
[facet.ctype.char.dtor]
28.4.2.4.3
Members
[facet.ctype.char.members]
28.4.2.4.4
Static members
[facet.ctype.char.statics]
28.4.2.4.5
Virtual functions
[facet.ctype.char.virtuals]
28.4.2.5
Class template codecvt
[locale.codecvt]
28.4.2.5.1
General
[locale.codecvt.general]
28.4.2.5.2
Members
[locale.codecvt.members]
28.4.2.5.3
Virtual functions
[locale.codecvt.virtuals]
28.4.2.6
Class template codecvt_byname
[locale.codecvt.byname]
28.4.3
The numeric category
[category.numeric]
28.4.3.1
General
[category.numeric.general]
28.4.3.2
Class template num_get
[locale.num.get]
28.4.3.2.1
General
[locale.num.get.general]
28.4.3.2.2
Members
[facet.num.get.members]
28.4.3.2.3
Virtual functions
[facet.num.get.virtuals]
28.4.3.3
Class template num_put
[locale.nm.put]
28.4.3.3.1
General
[locale.nm.put.general]
28.4.3.3.2
Members
[facet.num.put.members]
28.4.3.3.3
Virtual functions
[facet.num.put.virtuals]
28.4.4
The numeric punctuation facet
[facet.numpunct]
28.4.4.1
Class template numpunct
[locale.numpunct]
28.4.4.1.1
General
[locale.numpunct.general]
28.4.4.1.2
Members
[facet.numpunct.members]
28.4.4.1.3
Virtual functions
[facet.numpunct.virtuals]
28.4.4.2
Class template numpunct_byname
[locale.numpunct.byname]
28.4.5
The collate category
[category.collate]
28.4.5.1
Class template collate
[locale.collate]
28.4.5.1.1
General
[locale.collate.general]
28.4.5.1.2
Members
[locale.collate.members]
28.4.5.1.3
Virtual functions
[locale.collate.virtuals]
28.4.5.2
Class template collate_byname
[locale.collate.byname]
28.4.6
The time category
[category.time]
28.4.6.1
General
[category.time.general]
28.4.6.2
Class template time_get
[locale.time.get]
28.4.6.2.1
General
[locale.time.get.general]
28.4.6.2.2
Members
[locale.time.get.members]
28.4.6.2.3
Virtual functions
[locale.time.get.virtuals]
28.4.6.3
Class template time_get_byname
[locale.time.get.byname]
28.4.6.4
Class template time_put
[locale.time.put]
28.4.6.4.1
Members
[locale.time.put.members]
28.4.6.4.2
Virtual functions
[locale.time.put.virtuals]
28.4.6.5
Class template time_put_byname
[locale.time.put.byname]
28.4.7
The monetary category
[category.monetary]
28.4.7.1
General
[category.monetary.general]
28.4.7.2
Class template money_get
[locale.money.get]
28.4.7.2.1
Members
[locale.money.get.members]
28.4.7.2.2
Virtual functions
[locale.money.get.virtuals]
28.4.7.3
Class template money_put
[locale.money.put]
28.4.7.3.1
Members
[locale.money.put.members]
28.4.7.3.2
Virtual functions
[locale.money.put.virtuals]
28.4.7.4
Class template moneypunct
[locale.moneypunct]
28.4.7.4.1
General
[locale.moneypunct.general]
28.4.7.4.2
Members
[locale.moneypunct.members]
28.4.7.4.3
Virtual functions
[locale.moneypunct.virtuals]
28.4.7.5
Class template moneypunct_byname
[locale.moneypunct.byname]
28.4.8
The message retrieval category
[category.messages]
28.4.8.1
General
[category.messages.general]
28.4.8.2
Class template messages
[locale.messages]
28.4.8.2.1
General
[locale.messages.general]
28.4.8.2.2
Members
[locale.messages.members]
28.4.8.2.3
Virtual functions
[locale.messages.virtuals]
28.4.8.3
Class template messages_byname
[locale.messages.byname]
28.5
C library locales
[c.locales]
28.5.1
Header <clocale> synopsis
[clocale.syn]
28.5.2
Data races
[clocale.data.races]
29
Input/output library
[input.output]
29.1
General
[input.output.general]
29.2
Iostreams requirements
[iostreams.requirements]
29.2.1
Imbue limitations
[iostream.limits.imbue]
29.2.2
Positioning type limitations
[iostreams.limits.pos]
29.2.3
Thread safety
[iostreams.threadsafety]
29.3
Forward declarations
[iostream.forward]
29.3.1
Header <iosfwd> synopsis
[iosfwd.syn]
29.3.2
Overview
[iostream.forward.overview]
29.4
Standard iostream objects
[iostream.objects]
29.4.1
Header <iostream> synopsis
[iostream.syn]
29.4.2
Overview
[iostream.objects.overview]
29.4.3
Narrow stream objects
[narrow.stream.objects]
29.4.4
Wide stream objects
[wide.stream.objects]
29.5
Iostreams base classes
[iostreams.base]
29.5.1
Header <ios> synopsis
[ios.syn]
29.5.2
Types
[stream.types]
29.5.3
Class ios_base
[ios.base]
29.5.3.1
General
[ios.base.general]
29.5.3.2
Types
[ios.types]
29.5.3.2.1
Class ios_base::failure
[ios.failure]
29.5.3.2.2
Type ios_base::fmtflags
[ios.fmtflags]
29.5.3.2.3
Type ios_base::iostate
[ios.iostate]
29.5.3.2.4
Type ios_base::openmode
[ios.openmode]
29.5.3.2.5
Type ios_base::seekdir
[ios.seekdir]
29.5.3.2.6
Class ios_base::Init
[ios.init]
29.5.3.3
State functions
[fmtflags.state]
29.5.3.4
Functions
[ios.base.locales]
29.5.3.5
Static members
[ios.members.static]
29.5.3.6
Storage functions
[ios.base.storage]
29.5.3.7
Callbacks
[ios.base.callback]
29.5.3.8
Constructors and destructor
[ios.base.cons]
29.5.4
Class template fpos
[fpos]
29.5.4.1
Members
[fpos.members]
29.5.4.2
Requirements
[fpos.operations]
29.5.5
Class template basic_ios
[ios]
29.5.5.1
Overview
[ios.overview]
29.5.5.2
Constructors
[basic.ios.cons]
29.5.5.3
Member functions
[basic.ios.members]
29.5.5.4
Flags functions
[iostate.flags]
29.5.6
ios_base manipulators
[std.ios.manip]
29.5.6.1
fmtflags manipulators
[fmtflags.manip]
29.5.6.2
adjustfield manipulators
[adjustfield.manip]
29.5.6.3
basefield manipulators
[basefield.manip]
29.5.6.4
floatfield manipulators
[floatfield.manip]
29.5.7
Error reporting
[error.reporting]
29.6
Stream buffers
[stream.buffers]
29.6.1
Header <streambuf> synopsis
[streambuf.syn]
29.6.2
Stream buffer requirements
[streambuf.reqts]
29.6.3
Class template basic_streambuf
[streambuf]
29.6.3.1
General
[streambuf.general]
29.6.3.2
Constructors
[streambuf.cons]
29.6.3.3
Public member functions
[streambuf.members]
29.6.3.3.1
Locales
[streambuf.locales]
29.6.3.3.2
Buffer management and positioning
[streambuf.buffer]
29.6.3.3.3
Get area
[streambuf.pub.get]
29.6.3.3.4
Putback
[streambuf.pub.pback]
29.6.3.3.5
Put area
[streambuf.pub.put]
29.6.3.4
Protected member functions
[streambuf.protected]
29.6.3.4.1
Assignment
[streambuf.assign]
29.6.3.4.2
Get area access
[streambuf.get.area]
29.6.3.4.3
Put area access
[streambuf.put.area]
29.6.3.5
Virtual functions
[streambuf.virtuals]
29.6.3.5.1
Locales
[streambuf.virt.locales]
29.6.3.5.2
Buffer management and positioning
[streambuf.virt.buffer]
29.6.3.5.3
Get area
[streambuf.virt.get]
29.6.3.5.4
Putback
[streambuf.virt.pback]
29.6.3.5.5
Put area
[streambuf.virt.put]
29.7
Formatting and manipulators
[iostream.format]
29.7.1
Header <istream> synopsis
[istream.syn]
29.7.2
Header <ostream> synopsis
[ostream.syn]
29.7.3
Header <iomanip> synopsis
[iomanip.syn]
29.7.4
Input streams
[input.streams]
29.7.4.1
General
[input.streams.general]
29.7.4.2
Class template basic_istream
[istream]
29.7.4.2.1
General
[istream.general]
29.7.4.2.2
Constructors
[istream.cons]
29.7.4.2.3
Assignment and swap
[istream.assign]
29.7.4.2.4
Class basic_istream::sentry
[istream.sentry]
29.7.4.3
Formatted input functions
[istream.formatted]
29.7.4.3.1
Common requirements
[istream.formatted.reqmts]
29.7.4.3.2
Arithmetic extractors
[istream.formatted.arithmetic]
29.7.4.3.3
basic_istream::operator>>
[istream.extractors]
29.7.4.4
Unformatted input functions
[istream.unformatted]
29.7.4.5
Standard basic_istream manipulators
[istream.manip]
29.7.4.6
Rvalue stream extraction
[istream.rvalue]
29.7.4.7
Class template basic_iostream
[iostreamclass]
29.7.4.7.1
General
[iostreamclass.general]
29.7.4.7.2
Constructors
[iostream.cons]
29.7.4.7.3
Destructor
[iostream.dest]
29.7.4.7.4
Assignment and swap
[iostream.assign]
29.7.5
Output streams
[output.streams]
29.7.5.1
General
[output.streams.general]
29.7.5.2
Class template basic_ostream
[ostream]
29.7.5.2.1
General
[ostream.general]
29.7.5.2.2
Constructors
[ostream.cons]
29.7.5.2.3
Assignment and swap
[ostream.assign]
29.7.5.2.4
Class basic_ostream::sentry
[ostream.sentry]
29.7.5.2.5
Seek members
[ostream.seeks]
29.7.5.3
Formatted output functions
[ostream.formatted]
29.7.5.3.1
Common requirements
[ostream.formatted.reqmts]
29.7.5.3.2
Arithmetic inserters
[ostream.inserters.arithmetic]
29.7.5.3.3
basic_ostream::operator<<
[ostream.inserters]
29.7.5.3.4
Character inserter function templates
[ostream.inserters.character]
29.7.5.4
Unformatted output functions
[ostream.unformatted]
29.7.5.5
Standard manipulators
[ostream.manip]
29.7.5.6
Rvalue stream insertion
[ostream.rvalue]
29.7.6
Standard manipulators
[std.manip]
29.7.7
Extended manipulators
[ext.manip]
29.7.8
Quoted manipulators
[quoted.manip]
29.8
String-based streams
[string.streams]
29.8.1
Header <sstream> synopsis
[sstream.syn]
29.8.2
Class template basic_stringbuf
[stringbuf]
29.8.2.1
General
[stringbuf.general]
29.8.2.2
Constructors
[stringbuf.cons]
29.8.2.3
Assignment and swap
[stringbuf.assign]
29.8.2.4
Member functions
[stringbuf.members]
29.8.2.5
Overridden virtual functions
[stringbuf.virtuals]
29.8.3
Class template basic_istringstream
[istringstream]
29.8.3.1
General
[istringstream.general]
29.8.3.2
Constructors
[istringstream.cons]
29.8.3.3
Assignment and swap
[istringstream.assign]
29.8.3.4
Member functions
[istringstream.members]
29.8.4
Class template basic_ostringstream
[ostringstream]
29.8.4.1
General
[ostringstream.general]
29.8.4.2
Constructors
[ostringstream.cons]
29.8.4.3
Assignment and swap
[ostringstream.assign]
29.8.4.4
Member functions
[ostringstream.members]
29.8.5
Class template basic_stringstream
[stringstream]
29.8.5.1
General
[stringstream.general]
29.8.5.2
Constructors
[stringstream.cons]
29.8.5.3
Assignment and swap
[stringstream.assign]
29.8.5.4
Member functions
[stringstream.members]
29.9
File-based streams
[file.streams]
29.9.1
Header <fstream> synopsis
[fstream.syn]
29.9.2
Class template basic_filebuf
[filebuf]
29.9.2.1
General
[filebuf.general]
29.9.2.2
Constructors
[filebuf.cons]
29.9.2.3
Assignment and swap
[filebuf.assign]
29.9.2.4
Member functions
[filebuf.members]
29.9.2.5
Overridden virtual functions
[filebuf.virtuals]
29.9.3
Class template basic_ifstream
[ifstream]
29.9.3.1
General
[ifstream.general]
29.9.3.2
Constructors
[ifstream.cons]
29.9.3.3
Assignment and swap
[ifstream.assign]
29.9.3.4
Member functions
[ifstream.members]
29.9.4
Class template basic_ofstream
[ofstream]
29.9.4.1
General
[ofstream.general]
29.9.4.2
Constructors
[ofstream.cons]
29.9.4.3
Assignment and swap
[ofstream.assign]
29.9.4.4
Member functions
[ofstream.members]
29.9.5
Class template basic_fstream
[fstream]
29.9.5.1
General
[fstream.general]
29.9.5.2
Constructors
[fstream.cons]
29.9.5.3
Assignment and swap
[fstream.assign]
29.9.5.4
Member functions
[fstream.members]
29.10
Synchronized output streams
[syncstream]
29.10.1
Header <syncstream> synopsis
[syncstream.syn]
29.10.2
Class template basic_syncbuf
[syncstream.syncbuf]
29.10.2.1
Overview
[syncstream.syncbuf.overview]
29.10.2.2
Construction and destruction
[syncstream.syncbuf.cons]
29.10.2.3
Assignment and swap
[syncstream.syncbuf.assign]
29.10.2.4
Member functions
[syncstream.syncbuf.members]
29.10.2.5
Overridden virtual functions
[syncstream.syncbuf.virtuals]
29.10.2.6
Specialized algorithms
[syncstream.syncbuf.special]
29.10.3
Class template basic_osyncstream
[syncstream.osyncstream]
29.10.3.1
Overview
[syncstream.osyncstream.overview]
29.10.3.2
Construction and destruction
[syncstream.osyncstream.cons]
29.10.3.3
Member functions
[syncstream.osyncstream.members]
29.11
File systems
[filesystems]
29.11.1
General
[fs.general]
29.11.2
Conformance
[fs.conformance]
29.11.2.1
General
[fs.conformance.general]
29.11.2.2
POSIX conformance
[fs.conform.9945]
29.11.2.3
Operating system dependent behavior conformance
[fs.conform.os]
29.11.2.4
File system race behavior
[fs.race.behavior]
29.11.3
Requirements
[fs.req]
29.11.3.1
General
[fs.req.general]
29.11.3.2
Namespaces and headers
[fs.req.namespace]
29.11.4
Header <filesystem> synopsis
[fs.filesystem.syn]
29.11.5
Error reporting
[fs.err.report]
29.11.6
Class path
[fs.class.path]
29.11.6.1
General
[fs.class.path.general]
29.11.6.2
Generic pathname format
[fs.path.generic]
29.11.6.3
Conversions
[fs.path.cvt]
29.11.6.3.1
Argument format conversions
[fs.path.fmt.cvt]
29.11.6.3.2
Type and encoding conversions
[fs.path.type.cvt]
29.11.6.4
Requirements
[fs.path.req]
29.11.6.5
Members
[fs.path.member]
29.11.6.5.1
Constructors
[fs.path.construct]
29.11.6.5.2
Assignments
[fs.path.assign]
29.11.6.5.3
Appends
[fs.path.append]
29.11.6.5.4
Concatenation
[fs.path.concat]
29.11.6.5.5
Modifiers
[fs.path.modifiers]
29.11.6.5.6
Native format observers
[fs.path.native.obs]
29.11.6.5.7
Generic format observers
[fs.path.generic.obs]
29.11.6.5.8
Compare
[fs.path.compare]
29.11.6.5.9
Decomposition
[fs.path.decompose]
29.11.6.5.10
Query
[fs.path.query]
29.11.6.5.11
Generation
[fs.path.gen]
29.11.6.6
Iterators
[fs.path.itr]
29.11.6.7
Inserter and extractor
[fs.path.io]
29.11.6.8
Non-member functions
[fs.path.nonmember]
29.11.7
Class filesystem_error
[fs.class.filesystem.error]
29.11.7.1
General
[fs.class.filesystem.error.general]
29.11.7.2
Members
[fs.filesystem.error.members]
29.11.8
Enumerations
[fs.enum]
29.11.8.1
Enum path::format
[fs.enum.path.format]
29.11.8.2
Enum class file_type
[fs.enum.file.type]
29.11.8.3
Enum class copy_options
[fs.enum.copy.opts]
29.11.8.4
Enum class perms
[fs.enum.perms]
29.11.8.5
Enum class perm_options
[fs.enum.perm.opts]
29.11.8.6
Enum class directory_options
[fs.enum.dir.opts]
29.11.9
Class file_status
[fs.class.file.status]
29.11.9.1
General
[fs.class.file.status.general]
29.11.9.2
Constructors
[fs.file.status.cons]
29.11.9.3
Observers
[fs.file.status.obs]
29.11.9.4
Modifiers
[fs.file.status.mods]
29.11.10
Class directory_entry
[fs.class.directory.entry]
29.11.10.1
General
[fs.class.directory.entry.general]
29.11.10.2
Constructors
[fs.dir.entry.cons]
29.11.10.3
Modifiers
[fs.dir.entry.mods]
29.11.10.4
Observers
[fs.dir.entry.obs]
29.11.11
Class directory_iterator
[fs.class.directory.iterator]
29.11.11.1
General
[fs.class.directory.iterator.general]
29.11.11.2
Members
[fs.dir.itr.members]
29.11.11.3
Non-member functions
[fs.dir.itr.nonmembers]
29.11.12
Class recursive_directory_iterator
[fs.class.rec.dir.itr]
29.11.12.1
General
[fs.class.rec.dir.itr.general]
29.11.12.2
Members
[fs.rec.dir.itr.members]
29.11.12.3
Non-member functions
[fs.rec.dir.itr.nonmembers]
29.11.13
Filesystem operation functions
[fs.op.funcs]
29.11.13.1
General
[fs.op.funcs.general]
29.11.13.2
Absolute
[fs.op.absolute]
29.11.13.3
Canonical
[fs.op.canonical]
29.11.13.4
Copy
[fs.op.copy]
29.11.13.5
Copy file
[fs.op.copy.file]
29.11.13.6
Copy symlink
[fs.op.copy.symlink]
29.11.13.7
Create directories
[fs.op.create.directories]
29.11.13.8
Create directory
[fs.op.create.directory]
29.11.13.9
Create directory symlink
[fs.op.create.dir.symlk]
29.11.13.10
Create hard link
[fs.op.create.hard.lk]
29.11.13.11
Create symlink
[fs.op.create.symlink]
29.11.13.12
Current path
[fs.op.current.path]
29.11.13.13
Equivalent
[fs.op.equivalent]
29.11.13.14
Exists
[fs.op.exists]
29.11.13.15
File size
[fs.op.file.size]
29.11.13.16
Hard link count
[fs.op.hard.lk.ct]
29.11.13.17
Is block file
[fs.op.is.block.file]
29.11.13.18
Is character file
[fs.op.is.char.file]
29.11.13.19
Is directory
[fs.op.is.directory]
29.11.13.20
Is empty
[fs.op.is.empty]
29.11.13.21
Is fifo
[fs.op.is.fifo]
29.11.13.22
Is other
[fs.op.is.other]
29.11.13.23
Is regular file
[fs.op.is.regular.file]
29.11.13.24
Is socket
[fs.op.is.socket]
29.11.13.25
Is symlink
[fs.op.is.symlink]
29.11.13.26
Last write time
[fs.op.last.write.time]
29.11.13.27
Permissions
[fs.op.permissions]
29.11.13.28
Proximate
[fs.op.proximate]
29.11.13.29
Read symlink
[fs.op.read.symlink]
29.11.13.30
Relative
[fs.op.relative]
29.11.13.31
Remove
[fs.op.remove]
29.11.13.32
Remove all
[fs.op.remove.all]
29.11.13.33
Rename
[fs.op.rename]
29.11.13.34
Resize file
[fs.op.resize.file]
29.11.13.35
Space
[fs.op.space]
29.11.13.36
Status
[fs.op.status]
29.11.13.37
Status known
[fs.op.status.known]
29.11.13.38
Symlink status
[fs.op.symlink.status]
29.11.13.39
Temporary directory path
[fs.op.temp.dir.path]
29.11.13.40
Weakly canonical
[fs.op.weakly.canonical]
29.12
C library files
[c.files]
29.12.1
Header <cstdio> synopsis
[cstdio.syn]
29.12.2
Header <cinttypes> synopsis
[cinttypes.syn]
30
Regular expressions library
[re]
30.1
General
[re.general]
30.2
Requirements
[re.req]
30.3
Header <regex> synopsis
[re.syn]
30.4
Namespace std::regex_constants
[re.const]
30.4.1
General
[re.const.general]
30.4.2
Bitmask type syntax_option_type
[re.synopt]
30.4.3
Bitmask type match_flag_type
[re.matchflag]
30.4.4
Implementation-defined error_type
[re.err]
30.5
Class regex_error
[re.badexp]
30.6
Class template regex_traits
[re.traits]
30.7
Class template basic_regex
[re.regex]
30.7.1
General
[re.regex.general]
30.7.2
Constructors
[re.regex.construct]
30.7.3
Assignment
[re.regex.assign]
30.7.4
Constant operations
[re.regex.operations]
30.7.5
Locale
[re.regex.locale]
30.7.6
Swap
[re.regex.swap]
30.7.7
Non-member functions
[re.regex.nonmemb]
30.8
Class template sub_match
[re.submatch]
30.8.1
General
[re.submatch.general]
30.8.2
Members
[re.submatch.members]
30.8.3
Non-member operators
[re.submatch.op]
30.9
Class template match_results
[re.results]
30.9.1
General
[re.results.general]
30.9.2
Constructors
[re.results.const]
30.9.3
State
[re.results.state]
30.9.4
Size
[re.results.size]
30.9.5
Element access
[re.results.acc]
30.9.6
Formatting
[re.results.form]
30.9.7
Allocator
[re.results.all]
30.9.8
Swap
[re.results.swap]
30.9.9
Non-member functions
[re.results.nonmember]
30.10
Regular expression algorithms
[re.alg]
30.10.1
Exceptions
[re.except]
30.10.2
regex_match
[re.alg.match]
30.10.3
regex_search
[re.alg.search]
30.10.4
regex_replace
[re.alg.replace]
30.11
Regular expression iterators
[re.iter]
30.11.1
Class template regex_iterator
[re.regiter]
30.11.1.1
General
[re.regiter.general]
30.11.1.2
Constructors
[re.regiter.cnstr]
30.11.1.3
Comparisons
[re.regiter.comp]
30.11.1.4
Indirection
[re.regiter.deref]
30.11.1.5
Increment
[re.regiter.incr]
30.11.2
Class template regex_token_iterator
[re.tokiter]
30.11.2.1
General
[re.tokiter.general]
30.11.2.2
Constructors
[re.tokiter.cnstr]
30.11.2.3
Comparisons
[re.tokiter.comp]
30.11.2.4
Indirection
[re.tokiter.deref]
30.11.2.5
Increment
[re.tokiter.incr]
30.12
Modified ECMAScript regular expression grammar
[re.grammar]
31
Atomic operations library
[atomics]
31.1
General
[atomics.general]
31.2
Header <atomic> synopsis
[atomics.syn]
31.3
Type aliases
[atomics.alias]
31.4
Order and consistency
[atomics.order]
31.5
Lock-free property
[atomics.lockfree]
31.6
Waiting and notifying
[atomics.wait]
31.7
Class template atomic_ref
[atomics.ref.generic]
31.7.1
General
[atomics.ref.generic.general]
31.7.2
Operations
[atomics.ref.ops]
31.7.3
Specializations for integral types
[atomics.ref.int]
31.7.4
Specializations for floating-point types
[atomics.ref.float]
31.7.5
Partial specialization for pointers
[atomics.ref.pointer]
31.7.6
Member operators common to integers and pointers to objects
[atomics.ref.memop]
31.8
Class template atomic
[atomics.types.generic]
31.8.1
General
[atomics.types.generic.general]
31.8.2
Operations on atomic types
[atomics.types.operations]
31.8.3
Specializations for integers
[atomics.types.int]
31.8.4
Specializations for floating-point types
[atomics.types.float]
31.8.5
Partial specialization for pointers
[atomics.types.pointer]
31.8.6
Member operators common to integers and pointers to objects
[atomics.types.memop]
31.8.7
Partial specializations for smart pointers
[util.smartptr.atomic]
31.8.7.1
General
[util.smartptr.atomic.general]
31.8.7.2
Partial specialization for shared_ptr
[util.smartptr.atomic.shared]
31.8.7.3
Partial specialization for weak_ptr
[util.smartptr.atomic.weak]
31.9
Non-member functions
[atomics.nonmembers]
31.10
Flag type and operations
[atomics.flag]
31.11
Fences
[atomics.fences]
32
Thread support library
[thread]
32.1
General
[thread.general]
32.2
Requirements
[thread.req]
32.2.1
Template parameter names
[thread.req.paramname]
32.2.2
Exceptions
[thread.req.exception]
32.2.3
Native handles
[thread.req.native]
32.2.4
Timing specifications
[thread.req.timing]
32.2.5
Requirements for Cpp17Lockable types
[thread.req.lockable]
32.2.5.1
In general
[thread.req.lockable.general]
32.2.5.2
Cpp17BasicLockable requirements
[thread.req.lockable.basic]
32.2.5.3
Cpp17Lockable requirements
[thread.req.lockable.req]
32.2.5.4
Cpp17TimedLockable requirements
[thread.req.lockable.timed]
32.3
Stop tokens
[thread.stoptoken]
32.3.1
Introduction
[thread.stoptoken.intro]
32.3.2
Header <stop_token> synopsis
[thread.stoptoken.syn]
32.3.3
Class stop_token
[stoptoken]
32.3.3.1
General
[stoptoken.general]
32.3.3.2
Constructors, copy, and assignment
[stoptoken.cons]
32.3.3.3
Members
[stoptoken.mem]
32.3.3.4
Non-member functions
[stoptoken.nonmembers]
32.3.4
Class stop_source
[stopsource]
32.3.4.1
General
[stopsource.general]
32.3.4.2
Constructors, copy, and assignment
[stopsource.cons]
32.3.4.3
Members
[stopsource.mem]
32.3.4.4
Non-member functions
[stopsource.nonmembers]
32.3.5
Class template stop_callback
[stopcallback]
32.3.5.1
General
[stopcallback.general]
32.3.5.2
Constructors and destructor
[stopcallback.cons]
32.4
Threads
[thread.threads]
32.4.1
General
[thread.threads.general]
32.4.2
Header <thread> synopsis
[thread.syn]
32.4.3
Class thread
[thread.thread.class]
32.4.3.1
General
[thread.thread.class.general]
32.4.3.2
Class thread::id
[thread.thread.id]
32.4.3.3
Constructors
[thread.thread.constr]
32.4.3.4
Destructor
[thread.thread.destr]
32.4.3.5
Assignment
[thread.thread.assign]
32.4.3.6
Members
[thread.thread.member]
32.4.3.7
Static members
[thread.thread.static]
32.4.3.8
Specialized algorithms
[thread.thread.algorithm]
32.4.4
Class jthread
[thread.jthread.class]
32.4.4.1
General
[thread.jthread.class.general]
32.4.4.2
Constructors, move, and assignment
[thread.jthread.cons]
32.4.4.3
Members
[thread.jthread.mem]
32.4.4.4
Stop token handling
[thread.jthread.stop]
32.4.4.5
Specialized algorithms
[thread.jthread.special]
32.4.4.6
Static members
[thread.jthread.static]
32.4.5
Namespace this_thread
[thread.thread.this]
32.5
Mutual exclusion
[thread.mutex]
32.5.1
General
[thread.mutex.general]
32.5.2
Header <mutex> synopsis
[mutex.syn]
32.5.3
Header <shared_mutex> synopsis
[shared.mutex.syn]
32.5.4
Mutex requirements
[thread.mutex.requirements]
32.5.4.1
In general
[thread.mutex.requirements.general]
32.5.4.2
Mutex types
[thread.mutex.requirements.mutex]
32.5.4.2.1
General
[thread.mutex.requirements.mutex.general]
32.5.4.2.2
Class mutex
[thread.mutex.class]
32.5.4.2.3
Class recursive_mutex
[thread.mutex.recursive]
32.5.4.3
Timed mutex types
[thread.timedmutex.requirements]
32.5.4.3.1
General
[thread.timedmutex.requirements.general]
32.5.4.3.2
Class timed_mutex
[thread.timedmutex.class]
32.5.4.3.3
Class recursive_timed_mutex
[thread.timedmutex.recursive]
32.5.4.4
Shared mutex types
[thread.sharedmutex.requirements]
32.5.4.4.1
General
[thread.sharedmutex.requirements.general]
32.5.4.4.2
Class shared_mutex
[thread.sharedmutex.class]
32.5.4.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
32.5.4.5.1
General
[thread.sharedtimedmutex.requirements.general]
32.5.4.5.2
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
32.5.5
Locks
[thread.lock]
32.5.5.1
General
[thread.lock.general]
32.5.5.2
Class template lock_guard
[thread.lock.guard]
32.5.5.3
Class template scoped_lock
[thread.lock.scoped]
32.5.5.4
Class template unique_lock
[thread.lock.unique]
32.5.5.4.1
General
[thread.lock.unique.general]
32.5.5.4.2
Constructors, destructor, and assignment
[thread.lock.unique.cons]
32.5.5.4.3
Locking
[thread.lock.unique.locking]
32.5.5.4.4
Modifiers
[thread.lock.unique.mod]
32.5.5.4.5
Observers
[thread.lock.unique.obs]
32.5.5.5
Class template shared_lock
[thread.lock.shared]
32.5.5.5.1
General
[thread.lock.shared.general]
32.5.5.5.2
Constructors, destructor, and assignment
[thread.lock.shared.cons]
32.5.5.5.3
Locking
[thread.lock.shared.locking]
32.5.5.5.4
Modifiers
[thread.lock.shared.mod]
32.5.5.5.5
Observers
[thread.lock.shared.obs]
32.5.6
Generic locking algorithms
[thread.lock.algorithm]
32.5.7
Call once
[thread.once]
32.5.7.1
Struct once_flag
[thread.once.onceflag]
32.5.7.2
Function call_once
[thread.once.callonce]
32.6
Condition variables
[thread.condition]
32.6.1
General
[thread.condition.general]
32.6.2
Header <condition_variable> synopsis
[condition.variable.syn]
32.6.3
Non-member functions
[thread.condition.nonmember]
32.6.4
Class condition_variable
[thread.condition.condvar]
32.6.5
Class condition_variable_any
[thread.condition.condvarany]
32.6.5.1
General
[thread.condition.condvarany.general]
32.6.5.2
Noninterruptible waits
[thread.condvarany.wait]
32.6.5.3
Interruptible waits
[thread.condvarany.intwait]
32.7
Semaphore
[thread.sema]
32.7.1
General
[thread.sema.general]
32.7.2
Header <semaphore> synopsis
[semaphore.syn]
32.7.3
Class template counting_semaphore
[thread.sema.cnt]
32.8
Coordination types
[thread.coord]
32.8.1
General
[thread.coord.general]
32.8.2
Latches
[thread.latch]
32.8.2.1
General
[thread.latch.general]
32.8.2.2
Header <latch> synopsis
[latch.syn]
32.8.2.3
Class latch
[thread.latch.class]
32.8.3
Barriers
[thread.barrier]
32.8.3.1
General
[thread.barrier.general]
32.8.3.2
Header <barrier> synopsis
[barrier.syn]
32.8.3.3
Class template barrier
[thread.barrier.class]
32.9
Futures
[futures]
32.9.1
Overview
[futures.overview]
32.9.2
Header <future> synopsis
[future.syn]
32.9.3
Error handling
[futures.errors]
32.9.4
Class future_error
[futures.future.error]
32.9.5
Shared state
[futures.state]
32.9.6
Class template promise
[futures.promise]
32.9.7
Class template future
[futures.unique.future]
32.9.8
Class template shared_future
[futures.shared.future]
32.9.9
Function template async
[futures.async]
32.9.10
Class template packaged_task
[futures.task]
32.9.10.1
General
[futures.task.general]
32.9.10.2
Member functions
[futures.task.members]
32.9.10.3
Globals
[futures.task.nonmembers]
Annex A (informative) Grammar summary
[gram]
A.1
General
[gram.general]
A.2
Keywords
[gram.key]
A.3
Lexical conventions
[gram.lex]
A.4
Basics
[gram.basic]
A.5
Expressions
[gram.expr]
A.6
Statements
[gram.stmt]
A.7
Declarations
[gram.dcl]
A.8
Modules
[gram.module]
A.9
Classes
[gram.class]
A.10
Overloading
[gram.over]
A.11
Templates
[gram.temp]
A.12
Exception handling
[gram.except]
A.13
Preprocessing directives
[gram.cpp]
Annex B (normative) Implementation quantities
[implimits]
Annex C (informative) Compatibility
[diff]
C.1
C++ and ISO C++ 2017
[diff.cpp17]
C.1.1
General
[diff.cpp17.general]
C.1.2
[lex]: lexical conventions
[diff.cpp17.lex]
C.1.3
[basic]: basics
[diff.cpp17.basic]
C.1.4
[expr]: expressions
[diff.cpp17.expr]
C.1.5
[dcl.dcl]: declarations
[diff.cpp17.dcl.dcl]
C.1.6
[class]: classes
[diff.cpp17.class]
C.1.7
[over]: overloading
[diff.cpp17.over]
C.1.8
[temp]: templates
[diff.cpp17.temp]
C.1.9
[except]: exception handling
[diff.cpp17.except]
C.1.10
[library]: library introduction
[diff.cpp17.library]
C.1.11
[containers]: containers library
[diff.cpp17.containers]
C.1.12
[iterators]: iterators library
[diff.cpp17.iterators]
C.1.13
[algorithms]: algorithms library
[diff.cpp17.alg.reqs]
C.1.14
[input.output]: input/output library
[diff.cpp17.input.output]
C.1.15
[depr]: compatibility features
[diff.cpp17.depr]
C.2
C++ and ISO C++ 2014
[diff.cpp14]
C.2.1
General
[diff.cpp14.general]
C.2.2
[lex]: lexical conventions
[diff.cpp14.lex]
C.2.3
[expr]: expressions
[diff.cpp14.expr]
C.2.4
[dcl.dcl]: declarations
[diff.cpp14.dcl.dcl]
C.2.5
[class]: classes
[diff.cpp14.class]
C.2.6
[temp]: templates
[diff.cpp14.temp]
C.2.7
[except]: exception handling
[diff.cpp14.except]
C.2.8
[library]: library introduction
[diff.cpp14.library]
C.2.9
[utilities]: general utilities library
[diff.cpp14.utilities]
C.2.10
[strings]: strings library
[diff.cpp14.string]
C.2.11
[containers]: containers library
[diff.cpp14.containers]
C.2.12
[depr]: compatibility features
[diff.cpp14.depr]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
General
[diff.cpp11.general]
C.3.2
[lex]: lexical conventions
[diff.cpp11.lex]
C.3.3
[basic]: basics
[diff.cpp11.basic]
C.3.4
[expr]: expressions
[diff.cpp11.expr]
C.3.5
[dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.6
[library]: library introduction
[diff.cpp11.library]
C.3.7
[input.output]: input/output library
[diff.cpp11.input.output]
C.4
C++ and ISO C++ 2003
[diff.cpp03]
C.4.1
General
[diff.cpp03.general]
C.4.2
[lex]: lexical conventions
[diff.cpp03.lex]
C.4.3
[expr]: expressions
[diff.cpp03.expr]
C.4.4
[dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.4.5
[class]: classes
[diff.cpp03.class]
C.4.6
[temp]: templates
[diff.cpp03.temp]
C.4.7
[library]: library introduction
[diff.cpp03.library]
C.4.8
[support]: language support library
[diff.cpp03.language.support]
C.4.9
[diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.4.10
[utilities]: general utilities library
[diff.cpp03.utilities]
C.4.11
[strings]: strings library
[diff.cpp03.strings]
C.4.12
[containers]: containers library
[diff.cpp03.containers]
C.4.13
[algorithms]: algorithms library
[diff.cpp03.algorithms]
C.4.14
[numerics]: numerics library
[diff.cpp03.numerics]
C.4.15
[input.output]: input/output library
[diff.cpp03.input.output]
C.5
C++ and ISO C
[diff.iso]
C.5.1
General
[diff.iso.general]
C.5.2
[lex]: lexical conventions
[diff.lex]
C.5.3
[basic]: basics
[diff.basic]
C.5.4
[expr]: expressions
[diff.expr]
C.5.5
[stmt.stmt]: statements
[diff.stat]
C.5.6
[dcl.dcl]: declarations
[diff.dcl]
C.5.7
[class]: classes
[diff.class]
C.5.8
[cpp]: preprocessing directives
[diff.cpp]
C.6
C standard library
[diff.library]
C.6.1
General
[diff.library.general]
C.6.2
Modifications to headers
[diff.mods.to.headers]
C.6.3
Modifications to definitions
[diff.mods.to.definitions]
C.6.3.1
Types char16_t and char32_t
[diff.char16]
C.6.3.2
Type wchar_t
[diff.wchar.t]
C.6.3.3
Header <assert.h>
[diff.header.assert.h]
C.6.3.4
Header <iso646.h>
[diff.header.iso646.h]
C.6.3.5
Header <stdalign.h>
[diff.header.stdalign.h]
C.6.3.6
Header <stdbool.h>
[diff.header.stdbool.h]
C.6.3.7
Macro NULL
[diff.null]
C.6.4
Modifications to declarations
[diff.mods.to.declarations]
C.6.5
Modifications to behavior
[diff.mods.to.behavior]
C.6.5.1
General
[diff.mods.to.behavior.general]
C.6.5.2
Macro offsetof(type, member-designator)
[diff.offsetof]
C.6.5.3
Memory allocation functions
[diff.malloc]
Annex D (normative) Compatibility features
[depr]
D.1
General
[depr.general]
D.2
Arithmetic conversion on enumerations
[depr.arith.conv.enum]
D.3
Implicit capture of *this by reference
[depr.capture.this]
D.4
Comma operator in subscript expressions
[depr.comma.subscript]
D.5
Array comparisons
[depr.array.comp]
D.6
Deprecated volatile types
[depr.volatile.type]
D.7
Redeclaration of static constexpr data members
[depr.static.constexpr]
D.8
Non-local use of TU-local entities
[depr.local]
D.9
Implicit declaration of copy functions
[depr.impldec]
D.10
C headers
[depr.c.headers]
D.10.1
General
[depr.c.headers.general]
D.10.2
Header <complex.h> synopsis
[depr.complex.h.syn]
D.10.3
Header <iso646.h> synopsis
[depr.iso646.h.syn]
D.10.4
Header <stdalign.h> synopsis
[depr.stdalign.h.syn]
D.10.5
Header <stdbool.h> synopsis
[depr.stdbool.h.syn]
D.10.6
Header <tgmath.h> synopsis
[depr.tgmath.h.syn]
D.10.7
Other C headers
[depr.c.headers.other]
D.11
Requires paragraph
[depr.res.on.required]
D.12
Relational operators
[depr.relops]
D.13
char* streams
[depr.str.strstreams]
D.13.1
Header <strstream> synopsis
[depr.strstream.syn]
D.13.2
Class strstreambuf
[depr.strstreambuf]
D.13.2.1
General
[depr.strstreambuf.general]
D.13.2.2
strstreambuf constructors
[depr.strstreambuf.cons]
D.13.2.3
Member functions
[depr.strstreambuf.members]
D.13.2.4
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.13.3
Class istrstream
[depr.istrstream]
D.13.3.1
General
[depr.istrstream.general]
D.13.3.2
istrstream constructors
[depr.istrstream.cons]
D.13.3.3
Member functions
[depr.istrstream.members]
D.13.4
Class ostrstream
[depr.ostrstream]
D.13.4.1
General
[depr.ostrstream.general]
D.13.4.2
ostrstream constructors
[depr.ostrstream.cons]
D.13.4.3
Member functions
[depr.ostrstream.members]
D.13.5
Class strstream
[depr.strstream]
D.13.5.1
General
[depr.strstream.general]
D.13.5.2
strstream constructors
[depr.strstream.cons]
D.13.5.3
strstream destructor
[depr.strstream.dest]
D.13.5.4
strstream operations
[depr.strstream.oper]
D.14
Deprecated type traits
[depr.meta.types]
D.15
Tuple
[depr.tuple]
D.16
Variant
[depr.variant]
D.17
Deprecated iterator class template
[depr.iterator]
D.18
Deprecated move_iterator access
[depr.move.iter.elem]
D.19
Deprecated shared_ptr atomic access
[depr.util.smartptr.shared.atomic]
D.20
Deprecated basic_string capacity
[depr.string.capacity]
D.21
Deprecated standard code conversion facets
[depr.locale.stdcvt]
D.21.1
General
[depr.locale.stdcvt.general]
D.21.2
Header <codecvt> synopsis
[depr.codecvt.syn]
D.21.3
Requirements
[depr.locale.stdcvt.req]
D.22
Deprecated convenience conversion interfaces
[depr.conversions]
D.22.1
General
[depr.conversions.general]
D.22.2
Class template wstring_convert
[depr.conversions.string]
D.22.3
Class template wbuffer_convert
[depr.conversions.buffer]
D.23
Deprecated locale category facets
[depr.locale.category]
D.24
Deprecated filesystem path factory functions
[depr.fs.path.factory]
D.25
Deprecated atomic operations
[depr.atomics]
D.25.1
General
[depr.atomics.general]
D.25.2
Volatile access
[depr.atomics.volatile]
D.25.3
Non-member functions
[depr.atomics.nonmembers]
D.25.4
Operations on atomic types
[depr.atomics.types.operations]
D.25.5
Flag type and operations
[depr.atomics.flag]
Index
[generalindex]
Index of grammar productions
[grammarindex]
Index of library headers
[headerindex]
Index of library names
[libraryindex]
Index of library concepts
[conceptindex]
Index of implementation-defined behavior
[impldefindex]
[
edit
]
#invoke:CppStd
Category
:
Pages where template include size is exceeded
Cookies help us deliver our services. By using our services, you agree to our use of cookies.
More information
OK
Navigation menu
Personal tools
English
Create account
Log in
Namespaces
CppStd
Discussion
English
Views
Read
View source
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Printable version
Permanent link
Page information
Cite this page