Working Draft, Standard for Programming Language C++
(Generated on 2019-02-05 from the
LaTeX sources
by
cxxdraft-htmlgen
. This is
not
an ISO publication.)
Note: this is an early draft. It's known to be incomplet and incorrekt, and it has lots of b
a
d
for
matti
n
g.
Contents
1
Scope
[intro.scope]
[intro.scope]
2
Normative references
[intro.refs]
[intro.refs]
3
Terms and definitions
[intro.defs]
[intro.defs]
4
General principles
[intro]
[intro]
4.1
Implementation compliance
[intro.compliance]
4.1.1
Abstract machine
[intro.abstract]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
4.4
Acknowledgments
[intro.ack]
5
Lexical conventions
[lex]
[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
Basics
[basic]
[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 parameter scope
[basic.scope.param]
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
Memory and objects
[basic.memobj]
6.6.1
Memory model
[intro.memory]
6.6.2
Object model
[intro.object]
6.6.3
Object and reference lifetime
[basic.life]
6.6.4
Indeterminate values
[basic.indet]
6.6.5
Storage duration
[basic.stc]
6.6.5.1
Static storage duration
[basic.stc.static]
6.6.5.2
Thread storage duration
[basic.stc.thread]
6.6.5.3
Automatic storage duration
[basic.stc.auto]
6.6.5.4
Dynamic storage duration
[basic.stc.dynamic]
6.6.5.4.1
Allocation functions
[basic.stc.dynamic.allocation]
6.6.5.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
6.6.5.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
6.6.5.5
Duration of subobjects
[basic.stc.inherit]
6.6.6
Alignment
[basic.align]
6.6.7
Temporary objects
[class.temporary]
6.7
Types
[basic.types]
6.7.1
Fundamental types
[basic.fundamental]
6.7.2
Compound types
[basic.compound]
6.7.3
CV-qualifiers
[basic.type.qualifier]
6.7.4
Integer conversion rank
[conv.rank]
6.8
Program execution
[basic.exec]
6.8.1
Sequential execution
[intro.execution]
6.8.2
Multi-threaded executions and data races
[intro.multithread]
6.8.2.1
Data races
[intro.races]
6.8.2.2
Forward progress
[intro.progress]
6.8.3
Start and termination
[basic.start]
6.8.3.1
main
function
[basic.start.main]
6.8.3.2
Static initialization
[basic.start.static]
6.8.3.3
Dynamic initialization of non-local variables
[basic.start.dynamic]
6.8.3.4
Termination
[basic.start.term]
7
Expressions
[expr]
[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
Lvalue-to-rvalue conversion
[conv.lval]
7.3.2
Array-to-pointer conversion
[conv.array]
7.3.3
Function-to-pointer conversion
[conv.func]
7.3.4
Temporary materialization conversion
[conv.rval]
7.3.5
Qualification conversions
[conv.qual]
7.3.6
Integral promotions
[conv.prom]
7.3.7
Floating-point promotion
[conv.fpprom]
7.3.8
Integral conversions
[conv.integral]
7.3.9
Floating-point conversions
[conv.double]
7.3.10
Floating-integral conversions
[conv.fpint]
7.3.11
Pointer conversions
[conv.ptr]
7.3.12
Pointer-to-member conversions
[conv.mem]
7.3.13
Function pointer conversions
[conv.fctptr]
7.3.14
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
Unqualified names
[expr.prim.id.unqual]
7.5.4.2
Qualified names
[expr.prim.id.qual]
7.5.4.3
Destruction
[expr.prim.id.dtor]
7.5.5
Lambda expressions
[expr.prim.lambda]
7.5.5.1
Closure types
[expr.prim.lambda.closure]
7.5.5.2
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
Simple requirements
[expr.prim.req.simple]
7.5.7.2
Type requirements
[expr.prim.req.type]
7.5.7.3
Compound requirements
[expr.prim.req.compound]
7.5.7.4
Nested requirements
[expr.prim.req.nested]
7.6
Compound expressions
[expr.compound]
7.6.1
Postfix expressions
[expr.post]
7.6.1.1
Subscripting
[expr.sub]
7.6.1.2
Function call
[expr.call]
7.6.1.3
Explicit type conversion (functional notation)
[expr.type.conv]
7.6.1.4
Class member access
[expr.ref]
7.6.1.5
Increment and decrement
[expr.post.incr]
7.6.1.6
Dynamic cast
[expr.dynamic.cast]
7.6.1.7
Type identification
[expr.typeid]
7.6.1.8
Static cast
[expr.static.cast]
7.6.1.9
Reinterpret cast
[expr.reinterpret.cast]
7.6.1.10
Const cast
[expr.const.cast]
7.6.2
Unary expressions
[expr.unary]
7.6.2.1
Unary operators
[expr.unary.op]
7.6.2.2
Increment and decrement
[expr.pre.incr]
7.6.2.3
Sizeof
[expr.sizeof]
7.6.2.4
New
[expr.new]
7.6.2.5
Delete
[expr.delete]
7.6.2.6
Alignof
[expr.alignof]
7.6.2.7
noexcept
operator
[expr.unary.noexcept]
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
Throwing an exception
[expr.throw]
7.6.18
Assignment and compound assignment operators
[expr.ass]
7.6.19
Comma operator
[expr.comma]
7.7
Constant expressions
[expr.const]
8
Statements
[stmt.stmt]
[stmt.stmt]
8.1
Labeled statement
[stmt.label]
8.2
Expression statement
[stmt.expr]
8.3
Compound statement or block
[stmt.block]
8.4
Selection statements
[stmt.select]
8.4.1
The
if
statement
[stmt.if]
8.4.2
The
switch
statement
[stmt.switch]
8.5
Iteration statements
[stmt.iter]
8.5.1
The
while
statement
[stmt.while]
8.5.2
The
do
statement
[stmt.do]
8.5.3
The
for
statement
[stmt.for]
8.5.4
The range-based
for
statement
[stmt.ranged]
8.6
Jump statements
[stmt.jump]
8.6.1
The
break
statement
[stmt.break]
8.6.2
The
continue
statement
[stmt.cont]
8.6.3
The
return
statement
[stmt.return]
8.6.4
The
goto
statement
[stmt.goto]
8.7
Declaration statement
[stmt.dcl]
8.8
Ambiguity resolution
[stmt.ambig]
9
Declarations
[dcl.dcl]
[dcl.dcl]
9.1
Specifiers
[dcl.spec]
9.1.1
Storage class specifiers
[dcl.stc]
9.1.2
Function specifiers
[dcl.fct.spec]
9.1.3
The
typedef
specifier
[dcl.typedef]
9.1.4
The
friend
specifier
[dcl.friend]
9.1.5
The
constexpr
and
consteval
specifiers
[dcl.constexpr]
9.1.6
The
inline
specifier
[dcl.inline]
9.1.7
Type specifiers
[dcl.type]
9.1.7.1
The
cv-qualifier
s
[dcl.type.cv]
9.1.7.2
Simple type specifiers
[dcl.type.simple]
9.1.7.3
Elaborated type specifiers
[dcl.type.elab]
9.1.7.4
Decltype specifiers
[dcl.type.decltype]
9.1.7.5
Placeholder type specifiers
[dcl.spec.auto]
9.1.7.5.1
Placeholder type deduction
[dcl.type.auto.deduct]
9.1.7.6
Deduced class template specialization types
[dcl.type.class.deduct]
9.2
Declarators
[dcl.decl]
9.2.1
Type names
[dcl.name]
9.2.2
Ambiguity resolution
[dcl.ambig.res]
9.2.3
Meaning of declarators
[dcl.meaning]
9.2.3.1
Pointers
[dcl.ptr]
9.2.3.2
References
[dcl.ref]
9.2.3.3
Pointers to members
[dcl.mptr]
9.2.3.4
Arrays
[dcl.array]
9.2.3.5
Functions
[dcl.fct]
9.2.3.6
Default arguments
[dcl.fct.default]
9.3
Initializers
[dcl.init]
9.3.1
Aggregates
[dcl.init.aggr]
9.3.2
Character arrays
[dcl.init.string]
9.3.3
References
[dcl.init.ref]
9.3.4
List-initialization
[dcl.init.list]
9.4
Function definitions
[dcl.fct.def]
9.4.1
In general
[dcl.fct.def.general]
9.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
9.4.3
Deleted definitions
[dcl.fct.def.delete]
9.5
Structured binding declarations
[dcl.struct.bind]
9.6
Enumeration declarations
[dcl.enum]
9.7
Namespaces
[basic.namespace]
9.7.1
Namespace definition
[namespace.def]
9.7.1.1
Unnamed namespaces
[namespace.unnamed]
9.7.1.2
Namespace member definitions
[namespace.memdef]
9.7.2
Namespace alias
[namespace.alias]
9.7.3
Using directive
[namespace.udir]
9.8
The
using
declaration
[namespace.udecl]
9.9
The
asm
declaration
[dcl.asm]
9.10
Linkage specifications
[dcl.link]
9.11
Attributes
[dcl.attr]
9.11.1
Attribute syntax and semantics
[dcl.attr.grammar]
9.11.2
Alignment specifier
[dcl.align]
9.11.3
Carries dependency attribute
[dcl.attr.depend]
9.11.4
Contract attributes
[dcl.attr.contract]
9.11.4.1
Syntax
[dcl.attr.contract.syn]
9.11.4.2
Contract conditions
[dcl.attr.contract.cond]
9.11.4.3
Checking contracts
[dcl.attr.contract.check]
9.11.5
Deprecated attribute
[dcl.attr.deprecated]
9.11.6
Fallthrough attribute
[dcl.attr.fallthrough]
9.11.7
Likelihood attributes
[dcl.attr.likelihood]
9.11.8
Maybe unused attribute
[dcl.attr.unused]
9.11.9
Nodiscard attribute
[dcl.attr.nodiscard]
9.11.10
Noreturn attribute
[dcl.attr.noreturn]
9.11.11
No unique address attribute
[dcl.attr.nouniqueaddr]
10
Classes
[class]
[class]
10.1
Properties of classes
[class.prop]
10.2
Class names
[class.name]
10.3
Class members
[class.mem]
10.3.1
Member functions
[class.mfct]
10.3.2
Non-static member functions
[class.mfct.non-static]
10.3.2.1
The
this
pointer
[class.this]
10.3.3
Special member functions
[special]
10.3.4
Constructors
[class.ctor]
10.3.4.1
Default constructors
[class.default.ctor]
10.3.4.2
Copy/move constructors
[class.copy.ctor]
10.3.5
Copy/move assignment operator
[class.copy.assign]
10.3.6
Destructors
[class.dtor]
10.3.7
Conversions
[class.conv]
10.3.7.1
Conversion by constructor
[class.conv.ctor]
10.3.7.2
Conversion functions
[class.conv.fct]
10.3.8
Static members
[class.static]
10.3.8.1
Static member functions
[class.static.mfct]
10.3.8.2
Static data members
[class.static.data]
10.3.9
Bit-fields
[class.bit]
10.3.10
Nested class declarations
[class.nest]
10.3.11
Nested type names
[class.nested.type]
10.4
Unions
[class.union]
10.4.1
Anonymous unions
[class.union.anon]
10.5
Local class declarations
[class.local]
10.6
Derived classes
[class.derived]
10.6.1
Multiple base classes
[class.mi]
10.6.2
Virtual functions
[class.virtual]
10.6.3
Abstract classes
[class.abstract]
10.7
Member name lookup
[class.member.lookup]
10.8
Member access control
[class.access]
10.8.1
Access specifiers
[class.access.spec]
10.8.2
Accessibility of base classes and base class members
[class.access.base]
10.8.3
Friends
[class.friend]
10.8.4
Protected member access
[class.protected]
10.8.5
Access to virtual functions
[class.access.virt]
10.8.6
Multiple access
[class.paths]
10.8.7
Nested classes
[class.access.nest]
10.9
Initialization
[class.init]
10.9.1
Explicit initialization
[class.expl.init]
10.9.2
Initializing bases and members
[class.base.init]
10.9.3
Initialization by inherited constructor
[class.inhctor.init]
10.9.4
Construction and destruction
[class.cdtor]
10.9.5
Copy/move elision
[class.copy.elision]
10.10
Comparisons
[class.compare]
10.10.1
Defaulted comparison operator functions
[class.compare.default]
10.10.2
Three-way comparison
[class.spaceship]
10.10.3
Other comparison operators
[class.rel.eq]
10.11
Free store
[class.free]
11
Overloading
[over]
[over]
11.1
Overloadable declarations
[over.load]
11.2
Declaration matching
[over.dcl]
11.3
Overload resolution
[over.match]
11.3.1
Candidate functions and argument lists
[over.match.funcs]
11.3.1.1
Function call syntax
[over.match.call]
11.3.1.1.1
Call to named function
[over.call.func]
11.3.1.1.2
Call to object of class type
[over.call.object]
11.3.1.2
Operators in expressions
[over.match.oper]
11.3.1.3
Initialization by constructor
[over.match.ctor]
11.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
11.3.1.5
Initialization by conversion function
[over.match.conv]
11.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
11.3.1.7
Initialization by list-initialization
[over.match.list]
11.3.1.8
Class template argument deduction
[over.match.class.deduct]
11.3.2
Viable functions
[over.match.viable]
11.3.3
Best viable function
[over.match.best]
11.3.3.1
Implicit conversion sequences
[over.best.ics]
11.3.3.1.1
Standard conversion sequences
[over.ics.scs]
11.3.3.1.2
User-defined conversion sequences
[over.ics.user]
11.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
11.3.3.1.4
Reference binding
[over.ics.ref]
11.3.3.1.5
List-initialization sequence
[over.ics.list]
11.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
11.4
Address of overloaded function
[over.over]
11.5
Overloaded operators
[over.oper]
11.5.1
Unary operators
[over.unary]
11.5.2
Binary operators
[over.binary]
11.5.3
Assignment
[over.ass]
11.5.4
Function call
[over.call]
11.5.5
Subscripting
[over.sub]
11.5.6
Class member access
[over.ref]
11.5.7
Increment and decrement
[over.inc]
11.5.8
User-defined literals
[over.literal]
11.6
Built-in operators
[over.built]
12
Templates
[temp]
[temp]
12.1
Template parameters
[temp.param]
12.2
Names of template specializations
[temp.names]
12.3
Template arguments
[temp.arg]
12.3.1
Template type arguments
[temp.arg.type]
12.3.2
Template non-type arguments
[temp.arg.nontype]
12.3.3
Template template arguments
[temp.arg.template]
12.4
Template constraints
[temp.constr]
12.4.1
Constraints
[temp.constr.constr]
12.4.1.1
Logical operations
[temp.constr.op]
12.4.1.2
Atomic constraints
[temp.constr.atomic]
12.4.2
Constrained declarations
[temp.constr.decl]
12.4.3
Constraint normalization
[temp.constr.normal]
12.4.4
Partial ordering by constraints
[temp.constr.order]
12.5
Type equivalence
[temp.type]
12.6
Template declarations
[temp.decls]
12.6.1
Class templates
[temp.class]
12.6.1.1
Member functions of class templates
[temp.mem.func]
12.6.1.2
Member classes of class templates
[temp.mem.class]
12.6.1.3
Static data members of class templates
[temp.static]
12.6.1.4
Enumeration members of class templates
[temp.mem.enum]
12.6.2
Member templates
[temp.mem]
12.6.3
Variadic templates
[temp.variadic]
12.6.4
Friends
[temp.friend]
12.6.5
Class template partial specializations
[temp.class.spec]
12.6.5.1
Matching of class template partial specializations
[temp.class.spec.match]
12.6.5.2
Partial ordering of class template specializations
[temp.class.order]
12.6.5.3
Members of class template specializations
[temp.class.spec.mfunc]
12.6.6
Function templates
[temp.fct]
12.6.6.1
Function template overloading
[temp.over.link]
12.6.6.2
Partial ordering of function templates
[temp.func.order]
12.6.7
Alias templates
[temp.alias]
12.6.8
Concept definitions
[temp.concept]
12.7
Name resolution
[temp.res]
12.7.1
Locally declared names
[temp.local]
12.7.2
Dependent names
[temp.dep]
12.7.2.1
Dependent types
[temp.dep.type]
12.7.2.2
Type-dependent expressions
[temp.dep.expr]
12.7.2.3
Value-dependent expressions
[temp.dep.constexpr]
12.7.2.4
Dependent template arguments
[temp.dep.temp]
12.7.3
Non-dependent names
[temp.nondep]
12.7.4
Dependent name resolution
[temp.dep.res]
12.7.4.1
Point of instantiation
[temp.point]
12.7.4.2
Candidate functions
[temp.dep.candidate]
12.7.5
Friend names declared within a class template
[temp.inject]
12.8
Template instantiation and specialization
[temp.spec]
12.8.1
Implicit instantiation
[temp.inst]
12.8.2
Explicit instantiation
[temp.explicit]
12.8.3
Explicit specialization
[temp.expl.spec]
12.9
Function template specializations
[temp.fct.spec]
12.9.1
Explicit template argument specification
[temp.arg.explicit]
12.9.2
Template argument deduction
[temp.deduct]
12.9.2.1
Deducing template arguments from a function call
[temp.deduct.call]
12.9.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
12.9.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
12.9.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
12.9.2.5
Deducing template arguments from a type
[temp.deduct.type]
12.9.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
12.9.3
Overload resolution
[temp.over]
12.10
Deduction guides
[temp.deduct.guide]
13
Exception handling
[except]
[except]
13.1
Throwing an exception
[except.throw]
13.2
Constructors and destructors
[except.ctor]
13.3
Handling an exception
[except.handle]
13.4
Exception specifications
[except.spec]
13.5
Special functions
[except.special]
13.5.1
The
std::terminate
function
[except.terminate]
13.5.2
The
std::uncaught_exceptions()
function
[except.uncaught]
14
Preprocessing directives
[cpp]
[cpp]
14.1
Conditional inclusion
[cpp.cond]
14.2
Source file inclusion
[cpp.include]
14.3
Macro replacement
[cpp.replace]
14.3.1
Argument substitution
[cpp.subst]
14.3.2
The
#
operator
[cpp.stringize]
14.3.3
The
##
operator
[cpp.concat]
14.3.4
Rescanning and further replacement
[cpp.rescan]
14.3.5
Scope of macro definitions
[cpp.scope]
14.4
Line control
[cpp.line]
14.5
Error directive
[cpp.error]
14.6
Pragma directive
[cpp.pragma]
14.7
Null directive
[cpp.null]
14.8
Predefined macro names
[cpp.predefined]
14.9
Pragma operator
[cpp.pragma.op]
15
Library introduction
[library]
[library]
15.1
General
[library.general]
15.2
The C standard library
[library.c]
15.3
Definitions
[definitions]
15.4
Method of description
[description]
15.4.1
Structure of each clause
[structure]
15.4.1.1
Elements
[structure.elements]
15.4.1.2
Summary
[structure.summary]
15.4.1.3
Requirements
[structure.requirements]
15.4.1.4
Detailed specifications
[structure.specifications]
15.4.1.5
C library
[structure.see.also]
15.4.2
Other conventions
[conventions]
15.4.2.1
Exposition-only functions
[expos.only.func]
15.4.2.2
Type descriptions
[type.descriptions]
15.4.2.2.1
General
[type.descriptions.general]
15.4.2.2.2
Exposition-only types
[expos.only.types]
15.4.2.2.3
Enumerated types
[enumerated.types]
15.4.2.2.4
Bitmask types
[bitmask.types]
15.4.2.2.5
Character sequences
[character.seq]
15.4.2.2.5.1
Byte strings
[byte.strings]
15.4.2.2.5.2
Multibyte strings
[multibyte.strings]
15.4.2.2.6
Customization Point Object types
[customization.point.object]
15.4.2.3
Functions within classes
[functions.within.classes]
15.4.2.4
Operators
[operators]
15.4.2.5
Private members
[objects.within.classes]
15.5
Library-wide requirements
[requirements]
15.5.1
Library contents and organization
[organization]
15.5.1.1
Library contents
[contents]
15.5.1.2
Headers
[headers]
15.5.1.3
Freestanding implementations
[compliance]
15.5.2
Using the library
[using]
15.5.2.1
Overview
[using.overview]
15.5.2.2
Headers
[using.headers]
15.5.2.3
Linkage
[using.linkage]
15.5.3
Requirements on types and expressions
[utility.requirements]
15.5.3.1
Template argument requirements
[utility.arg.requirements]
15.5.3.2
Swappable requirements
[swappable.requirements]
15.5.3.3
Cpp17NullablePointer
requirements
[nullablepointer.requirements]
15.5.3.4
Cpp17Hash
requirements
[hash.requirements]
15.5.3.5
Cpp17Allocator
requirements
[allocator.requirements]
15.5.3.5.1
Allocator completeness requirements
[allocator.requirements.completeness]
15.5.4
Constraints on programs
[constraints]
15.5.4.1
Overview
[constraints.overview]
15.5.4.2
Namespace use
[namespace.constraints]
15.5.4.2.1
Namespace
std
[namespace.std]
15.5.4.2.2
Namespace
posix
[namespace.posix]
15.5.4.2.3
Namespaces for future standardization
[namespace.future]
15.5.4.3
Reserved names
[reserved.names]
15.5.4.3.1
Zombie names
[zombie.names]
15.5.4.3.2
Macro names
[macro.names]
15.5.4.3.3
External linkage
[extern.names]
15.5.4.3.4
Types
[extern.types]
15.5.4.3.5
User-defined literal suffixes
[usrlit.suffix]
15.5.4.4
Headers
[alt.headers]
15.5.4.5
Derived classes
[derived.classes]
15.5.4.6
Replacement functions
[replacement.functions]
15.5.4.7
Handler functions
[handler.functions]
15.5.4.8
Other functions
[res.on.functions]
15.5.4.9
Function arguments
[res.on.arguments]
15.5.4.10
Library object access
[res.on.objects]
15.5.4.11
Requires paragraph
[res.on.required]
15.5.4.12
Semantic requirements
[res.on.requirements]
15.5.5
Conforming implementations
[conforming]
15.5.5.1
Overview
[conforming.overview]
15.5.5.2
Headers
[res.on.headers]
15.5.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
15.5.5.4
Non-member functions
[global.functions]
15.5.5.5
Member functions
[member.functions]
15.5.5.6
Constexpr functions and constructors
[constexpr.functions]
15.5.5.7
Requirements for stable algorithms
[algorithm.stable]
15.5.5.8
Reentrancy
[reentrancy]
15.5.5.9
Data race avoidance
[res.on.data.races]
15.5.5.10
Protection within classes
[protection.within.classes]
15.5.5.11
Derived classes
[derivation]
15.5.5.12
Restrictions on exception handling
[res.on.exception.handling]
15.5.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
15.5.5.14
Value of error codes
[value.error.codes]
15.5.5.15
Moved-from state of library types
[lib.types.movedfrom]
16
Language support library
[language.support]
[language.support]
16.1
General
[support.general]
16.2
Common definitions
[support.types]
16.2.1
Header
<cstddef>
synopsis
[cstddef.syn]
16.2.2
Header
<cstdlib>
synopsis
[cstdlib.syn]
16.2.3
Null pointers
[support.types.nullptr]
16.2.4
Sizes, alignments, and offsets
[support.types.layout]
16.2.5
byte
type operations
[support.types.byteops]
16.3
Implementation properties
[support.limits]
16.3.1
General
[support.limits.general]
16.3.2
Header
<limits>
synopsis
[limits.syn]
16.3.3
Floating-point type properties
[fp.style]
16.3.3.1
Type
float_round_style
[round.style]
16.3.3.2
Type
float_denorm_style
[denorm.style]
16.3.4
Class template
numeric_limits
[numeric.limits]
16.3.4.1
numeric_limits
members
[numeric.limits.members]
16.3.4.2
numeric_limits
specializations
[numeric.special]
16.3.5
Header
<climits>
synopsis
[climits.syn]
16.3.6
Header
<cfloat>
synopsis
[cfloat.syn]
16.4
Integer types
[cstdint]
16.4.1
Header
<cstdint>
synopsis
[cstdint.syn]
16.5
Start and termination
[support.start.term]
16.6
Dynamic memory management
[support.dynamic]
16.6.1
Header
<new>
synopsis
[new.syn]
16.6.2
Storage allocation and deallocation
[new.delete]
16.6.2.1
Single-object forms
[new.delete.single]
16.6.2.2
Array forms
[new.delete.array]
16.6.2.3
Non-allocating forms
[new.delete.placement]
16.6.2.4
Data races
[new.delete.dataraces]
16.6.3
Storage allocation errors
[alloc.errors]
16.6.3.1
Class
bad_alloc
[bad.alloc]
16.6.3.2
Class
bad_array_new_length
[new.badlength]
16.6.3.3
Type
new_handler
[new.handler]
16.6.3.4
set_new_handler
[set.new.handler]
16.6.3.5
get_new_handler
[get.new.handler]
16.6.4
Pointer optimization barrier
[ptr.launder]
16.6.5
Hardware interference size
[hardware.interference]
16.7
Type identification
[support.rtti]
16.7.1
Header
<typeinfo>
synopsis
[typeinfo.syn]
16.7.2
Class
type_info
[type.info]
16.7.3
Class
bad_cast
[bad.cast]
16.7.4
Class
bad_typeid
[bad.typeid]
16.8
Contract violation handling
[support.contract]
16.8.1
Header
<contract>
synopsis
[contract.syn]
16.8.2
Class
contract_violation
[support.contract.cviol]
16.9
Exception handling
[support.exception]
16.9.1
Header
<exception>
synopsis
[exception.syn]
16.9.2
Class
exception
[exception]
16.9.3
Class
bad_exception
[bad.exception]
16.9.4
Abnormal termination
[exception.terminate]
16.9.4.1
Type
terminate_handler
[terminate.handler]
16.9.4.2
set_terminate
[set.terminate]
16.9.4.3
get_terminate
[get.terminate]
16.9.4.4
terminate
[terminate]
16.9.5
uncaught_exceptions
[uncaught.exceptions]
16.9.6
Exception propagation
[propagation]
16.9.7
nested_exception
[except.nested]
16.10
Initializer lists
[support.initlist]
16.10.1
Header
<initializer_list>
synopsis
[initializer_list.syn]
16.10.2
Initializer list constructors
[support.initlist.cons]
16.10.3
Initializer list access
[support.initlist.access]
16.10.4
Initializer list range access
[support.initlist.range]
16.11
Comparisons
[cmp]
16.11.1
Header
<compare>
synopsis
[compare.syn]
16.11.2
Comparison category types
[cmp.categories]
16.11.2.1
Preamble
[cmp.categories.pre]
16.11.2.2
Class
weak_equality
[cmp.weakeq]
16.11.2.3
Class
strong_equality
[cmp.strongeq]
16.11.2.4
Class
partial_ordering
[cmp.partialord]
16.11.2.5
Class
weak_ordering
[cmp.weakord]
16.11.2.6
Class
strong_ordering
[cmp.strongord]
16.11.3
Class template
common_comparison_category
[cmp.common]
16.11.4
Comparison algorithms
[cmp.alg]
16.12
Other runtime support
[support.runtime]
16.12.1
Header
<cstdarg>
synopsis
[cstdarg.syn]
16.12.2
Header
<csetjmp>
synopsis
[csetjmp.syn]
16.12.3
Header
<csignal>
synopsis
[csignal.syn]
16.12.4
Signal handlers
[support.signal]
17
Concepts library
[concepts]
[concepts]
17.1
General
[concepts.general]
17.2
Equality preservation
[concepts.equality]
17.3
Header
<concepts>
synopsis
[concepts.syn]
17.4
Language-related concepts
[concepts.lang]
17.4.1
General
[concepts.lang.general]
17.4.2
Concept
Same
[concept.same]
17.4.3
Concept
DerivedFrom
[concept.derivedfrom]
17.4.4
Concept
ConvertibleTo
[concept.convertibleto]
17.4.5
Concept
CommonReference
[concept.commonref]
17.4.6
Concept
Common
[concept.common]
17.4.7
Integral concepts
[concepts.integral]
17.4.8
Concept
Assignable
[concept.assignable]
17.4.9
Concept
Swappable
[concept.swappable]
17.4.10
Concept
Destructible
[concept.destructible]
17.4.11
Concept
Constructible
[concept.constructible]
17.4.12
Concept
DefaultConstructible
[concept.defaultconstructible]
17.4.13
Concept
MoveConstructible
[concept.moveconstructible]
17.4.14
Concept
CopyConstructible
[concept.copyconstructible]
17.5
Comparison concepts
[concepts.compare]
17.5.1
General
[concepts.compare.general]
17.5.2
Concept
Boolean
[concept.boolean]
17.5.3
Concept
EqualityComparable
[concept.equalitycomparable]
17.5.4
Concept
StrictTotallyOrdered
[concept.stricttotallyordered]
17.6
Object concepts
[concepts.object]
17.7
Callable concepts
[concepts.callable]
17.7.1
General
[concepts.callable.general]
17.7.2
Concept
Invocable
[concept.invocable]
17.7.3
Concept
RegularInvocable
[concept.regularinvocable]
17.7.4
Concept
Predicate
[concept.predicate]
17.7.5
Concept
Relation
[concept.relation]
17.7.6
Concept
StrictWeakOrder
[concept.strictweakorder]
18
Diagnostics library
[diagnostics]
[diagnostics]
18.1
General
[diagnostics.general]
18.2
Exception classes
[std.exceptions]
18.2.1
Header
<stdexcept>
synopsis
[stdexcept.syn]
18.2.2
Class
logic_error
[logic.error]
18.2.3
Class
domain_error
[domain.error]
18.2.4
Class
invalid_argument
[invalid.argument]
18.2.5
Class
length_error
[length.error]
18.2.6
Class
out_of_range
[out.of.range]
18.2.7
Class
runtime_error
[runtime.error]
18.2.8
Class
range_error
[range.error]
18.2.9
Class
overflow_error
[overflow.error]
18.2.10
Class
underflow_error
[underflow.error]
18.3
Assertions
[assertions]
18.3.1
Header
<cassert>
synopsis
[cassert.syn]
18.3.2
The
assert
macro
[assertions.assert]
18.4
Error numbers
[errno]
18.4.1
Header
<cerrno>
synopsis
[cerrno.syn]
18.5
System error support
[syserr]
18.5.1
Header
<system_error>
synopsis
[system_error.syn]
18.5.2
Class
error_category
[syserr.errcat]
18.5.2.1
Overview
[syserr.errcat.overview]
18.5.2.2
Virtual members
[syserr.errcat.virtuals]
18.5.2.3
Non-virtual members
[syserr.errcat.nonvirtuals]
18.5.2.4
Program-defined classes derived from
error_category
[syserr.errcat.derived]
18.5.2.5
Error category objects
[syserr.errcat.objects]
18.5.3
Class
error_code
[syserr.errcode]
18.5.3.1
Overview
[syserr.errcode.overview]
18.5.3.2
Constructors
[syserr.errcode.constructors]
18.5.3.3
Modifiers
[syserr.errcode.modifiers]
18.5.3.4
Observers
[syserr.errcode.observers]
18.5.3.5
Non-member functions
[syserr.errcode.nonmembers]
18.5.4
Class
error_condition
[syserr.errcondition]
18.5.4.1
Overview
[syserr.errcondition.overview]
18.5.4.2
Constructors
[syserr.errcondition.constructors]
18.5.4.3
Modifiers
[syserr.errcondition.modifiers]
18.5.4.4
Observers
[syserr.errcondition.observers]
18.5.4.5
Non-member functions
[syserr.errcondition.nonmembers]
18.5.5
Comparison functions
[syserr.compare]
18.5.6
System error hash support
[syserr.hash]
18.5.7
Class
system_error
[syserr.syserr]
18.5.7.1
Overview
[syserr.syserr.overview]
18.5.7.2
Members
[syserr.syserr.members]
19
General utilities library
[utilities]
[utilities]
19.1
General
[utilities.general]
19.2
Utility components
[utility]
19.2.1
Header
<utility>
synopsis
[utility.syn]
19.2.2
swap
[utility.swap]
19.2.3
exchange
[utility.exchange]
19.2.4
Forward/move helpers
[forward]
19.2.5
Function template
as_const
[utility.as_const]
19.2.6
Function template
declval
[declval]
19.3
Compile-time integer sequences
[intseq]
19.3.1
In general
[intseq.general]
19.3.2
Class template
integer_sequence
[intseq.intseq]
19.3.3
Alias template
make_integer_sequence
[intseq.make]
19.4
Pairs
[pairs]
19.4.1
In general
[pairs.general]
19.4.2
Class template
pair
[pairs.pair]
19.4.3
Specialized algorithms
[pairs.spec]
19.4.4
Tuple-like access to pair
[pair.astuple]
19.4.5
Piecewise construction
[pair.piecewise]
19.5
Tuples
[tuple]
19.5.1
In general
[tuple.general]
19.5.2
Header
<tuple>
synopsis
[tuple.syn]
19.5.3
Class template
tuple
[tuple.tuple]
19.5.3.1
Construction
[tuple.cnstr]
19.5.3.2
Assignment
[tuple.assign]
19.5.3.3
swap
[tuple.swap]
19.5.3.4
Tuple creation functions
[tuple.creation]
19.5.3.5
Calling a function with a
tuple
of arguments
[tuple.apply]
19.5.3.6
Tuple helper classes
[tuple.helper]
19.5.3.7
Element access
[tuple.elem]
19.5.3.8
Relational operators
[tuple.rel]
19.5.3.9
Tuple traits
[tuple.traits]
19.5.3.10
Tuple specialized algorithms
[tuple.special]
19.6
Optional objects
[optional]
19.6.1
In general
[optional.general]
19.6.2
Header
<optional>
synopsis
[optional.syn]
19.6.3
Class template
optional
[optional.optional]
19.6.3.1
Constructors
[optional.ctor]
19.6.3.2
Destructor
[optional.dtor]
19.6.3.3
Assignment
[optional.assign]
19.6.3.4
Swap
[optional.swap]
19.6.3.5
Observers
[optional.observe]
19.6.3.6
Modifiers
[optional.mod]
19.6.4
No-value state indicator
[optional.nullopt]
19.6.5
Class
bad_optional_access
[optional.bad.access]
19.6.6
Relational operators
[optional.relops]
19.6.7
Comparison with
nullopt
[optional.nullops]
19.6.8
Comparison with
T
[optional.comp_with_t]
19.6.9
Specialized algorithms
[optional.specalg]
19.6.10
Hash support
[optional.hash]
19.7
Variants
[variant]
19.7.1
In general
[variant.general]
19.7.2
Header
<variant>
synopsis
[variant.syn]
19.7.3
Class template
variant
[variant.variant]
19.7.3.1
Constructors
[variant.ctor]
19.7.3.2
Destructor
[variant.dtor]
19.7.3.3
Assignment
[variant.assign]
19.7.3.4
Modifiers
[variant.mod]
19.7.3.5
Value status
[variant.status]
19.7.3.6
Swap
[variant.swap]
19.7.4
variant
helper classes
[variant.helper]
19.7.5
Value access
[variant.get]
19.7.6
Relational operators
[variant.relops]
19.7.7
Visitation
[variant.visit]
19.7.8
Class
monostate
[variant.monostate]
19.7.9
monostate
relational operators
[variant.monostate.relops]
19.7.10
Specialized algorithms
[variant.specalg]
19.7.11
Class
bad_variant_access
[variant.bad.access]
19.7.12
Hash support
[variant.hash]
19.8
Storage for any type
[any]
19.8.1
Header
<any>
synopsis
[any.synop]
19.8.2
Class
bad_any_cast
[any.bad_any_cast]
19.8.3
Class
any
[any.class]
19.8.3.1
Construction and destruction
[any.cons]
19.8.3.2
Assignment
[any.assign]
19.8.3.3
Modifiers
[any.modifiers]
19.8.3.4
Observers
[any.observers]
19.8.4
Non-member functions
[any.nonmembers]
19.9
Bitsets
[bitset]
19.9.1
Header
<bitset>
synopsis
[bitset.syn]
19.9.2
Class template
bitset
[template.bitset]
19.9.2.1
Constructors
[bitset.cons]
19.9.2.2
Members
[bitset.members]
19.9.3
bitset
hash support
[bitset.hash]
19.9.4
bitset
operators
[bitset.operators]
19.10
Memory
[memory]
19.10.1
In general
[memory.general]
19.10.2
Header
<memory>
synopsis
[memory.syn]
19.10.3
Pointer traits
[pointer.traits]
19.10.3.1
Member types
[pointer.traits.types]
19.10.3.2
Member functions
[pointer.traits.functions]
19.10.3.3
Optional members
[pointer.traits.optmem]
19.10.4
Pointer conversion
[pointer.conversion]
19.10.5
Pointer safety
[util.dynamic.safety]
19.10.6
Pointer alignment
[ptr.align]
19.10.7
Allocator argument tag
[allocator.tag]
19.10.8
uses_allocator
[allocator.uses]
19.10.8.1
uses_allocator
trait
[allocator.uses.trait]
19.10.8.2
Uses-allocator construction
[allocator.uses.construction]
19.10.9
Allocator traits
[allocator.traits]
19.10.9.1
Member types
[allocator.traits.types]
19.10.9.2
Static member functions
[allocator.traits.members]
19.10.10
The default allocator
[default.allocator]
19.10.10.1
Members
[allocator.members]
19.10.10.2
Operators
[allocator.globals]
19.10.11
Specialized algorithms
[specialized.algorithms]
19.10.11.1
Special memory concepts
[special.mem.concepts]
19.10.11.2
addressof
[specialized.addressof]
19.10.11.3
uninitialized_default_construct
[uninitialized.construct.default]
19.10.11.4
uninitialized_value_construct
[uninitialized.construct.value]
19.10.11.5
uninitialized_copy
[uninitialized.copy]
19.10.11.6
uninitialized_move
[uninitialized.move]
19.10.11.7
uninitialized_fill
[uninitialized.fill]
19.10.11.8
destroy
[specialized.destroy]
19.10.12
C library memory allocation
[c.malloc]
19.11
Smart pointers
[smartptr]
19.11.1
Class template
unique_ptr
[unique.ptr]
19.11.1.1
Default deleters
[unique.ptr.dltr]
19.11.1.1.1
In general
[unique.ptr.dltr.general]
19.11.1.1.2
default_delete
[unique.ptr.dltr.dflt]
19.11.1.1.3
default_delete<T[]>
[unique.ptr.dltr.dflt1]
19.11.1.2
unique_ptr
for single objects
[unique.ptr.single]
19.11.1.2.1
Constructors
[unique.ptr.single.ctor]
19.11.1.2.2
Destructor
[unique.ptr.single.dtor]
19.11.1.2.3
Assignment
[unique.ptr.single.asgn]
19.11.1.2.4
Observers
[unique.ptr.single.observers]
19.11.1.2.5
Modifiers
[unique.ptr.single.modifiers]
19.11.1.3
unique_ptr
for array objects with a runtime length
[unique.ptr.runtime]
19.11.1.3.1
Constructors
[unique.ptr.runtime.ctor]
19.11.1.3.2
Assignment
[unique.ptr.runtime.asgn]
19.11.1.3.3
Observers
[unique.ptr.runtime.observers]
19.11.1.3.4
Modifiers
[unique.ptr.runtime.modifiers]
19.11.1.4
Creation
[unique.ptr.create]
19.11.1.5
Specialized algorithms
[unique.ptr.special]
19.11.1.6
I/O
[unique.ptr.io]
19.11.2
Class
bad_weak_ptr
[util.smartptr.weak.bad]
19.11.3
Class template
shared_ptr
[util.smartptr.shared]
19.11.3.1
Constructors
[util.smartptr.shared.const]
19.11.3.2
Destructor
[util.smartptr.shared.dest]
19.11.3.3
Assignment
[util.smartptr.shared.assign]
19.11.3.4
Modifiers
[util.smartptr.shared.mod]
19.11.3.5
Observers
[util.smartptr.shared.obs]
19.11.3.6
Creation
[util.smartptr.shared.create]
19.11.3.7
Comparison
[util.smartptr.shared.cmp]
19.11.3.8
Specialized algorithms
[util.smartptr.shared.spec]
19.11.3.9
Casts
[util.smartptr.shared.cast]
19.11.3.10
get_deleter
[util.smartptr.getdeleter]
19.11.3.11
I/O
[util.smartptr.shared.io]
19.11.4
Class template
weak_ptr
[util.smartptr.weak]
19.11.4.1
Constructors
[util.smartptr.weak.const]
19.11.4.2
Destructor
[util.smartptr.weak.dest]
19.11.4.3
Assignment
[util.smartptr.weak.assign]
19.11.4.4
Modifiers
[util.smartptr.weak.mod]
19.11.4.5
Observers
[util.smartptr.weak.obs]
19.11.4.6
Specialized algorithms
[util.smartptr.weak.spec]
19.11.5
Class template
owner_less
[util.smartptr.ownerless]
19.11.6
Class template
enable_shared_from_this
[util.smartptr.enab]
19.11.7
Smart pointer hash support
[util.smartptr.hash]
19.11.8
Atomic specializations for smart pointers
[util.smartptr.atomic]
19.11.8.1
Atomic specialization for
shared_ptr
[util.smartptr.atomic.shared]
19.11.8.2
Atomic specialization for
weak_ptr
[util.smartptr.atomic.weak]
19.12
Memory resources
[mem.res]
19.12.1
Header
<memory_resource>
synopsis
[mem.res.syn]
19.12.2
Class
memory_resource
[mem.res.class]
19.12.2.1
Public member functions
[mem.res.public]
19.12.2.2
Private virtual member functions
[mem.res.private]
19.12.2.3
Equality
[mem.res.eq]
19.12.3
Class template
polymorphic_allocator
[mem.poly.allocator.class]
19.12.3.1
Constructors
[mem.poly.allocator.ctor]
19.12.3.2
Member functions
[mem.poly.allocator.mem]
19.12.3.3
Equality
[mem.poly.allocator.eq]
19.12.4
Access to program-wide
memory_resource
objects
[mem.res.global]
19.12.5
Pool resource classes
[mem.res.pool]
19.12.5.1
Classes
synchronized_pool_resource
and
unsynchronized_pool_resource
[mem.res.pool.overview]
19.12.5.2
pool_options
data members
[mem.res.pool.options]
19.12.5.3
Constructors and destructors
[mem.res.pool.ctor]
19.12.5.4
Members
[mem.res.pool.mem]
19.12.6
Class
monotonic_buffer_resource
[mem.res.monotonic.buffer]
19.12.6.1
Constructors and destructor
[mem.res.monotonic.buffer.ctor]
19.12.6.2
Members
[mem.res.monotonic.buffer.mem]
19.13
Class template
scoped_allocator_adaptor
[allocator.adaptor]
19.13.1
Header
<scoped_allocator>
synopsis
[allocator.adaptor.syn]
19.13.2
Member types
[allocator.adaptor.types]
19.13.3
Constructors
[allocator.adaptor.cnstr]
19.13.4
Members
[allocator.adaptor.members]
19.13.5
Operators
[scoped.adaptor.operators]
19.14
Function objects
[function.objects]
19.14.1
Header
<functional>
synopsis
[functional.syn]
19.14.2
Definitions
[func.def]
19.14.3
Requirements
[func.require]
19.14.4
Function template
invoke
[func.invoke]
19.14.5
Class template
reference_wrapper
[refwrap]
19.14.5.1
Constructors and destructor
[refwrap.const]
19.14.5.2
Assignment
[refwrap.assign]
19.14.5.3
Access
[refwrap.access]
19.14.5.4
Invocation
[refwrap.invoke]
19.14.5.5
Helper functions
[refwrap.helpers]
19.14.5.6
Transformation type trait
unwrap_reference
[refwrap.unwrapref]
19.14.6
Arithmetic operations
[arithmetic.operations]
19.14.6.1
Class template
plus
[arithmetic.operations.plus]
19.14.6.2
Class template
minus
[arithmetic.operations.minus]
19.14.6.3
Class template
multiplies
[arithmetic.operations.multiplies]
19.14.6.4
Class template
divides
[arithmetic.operations.divides]
19.14.6.5
Class template
modulus
[arithmetic.operations.modulus]
19.14.6.6
Class template
negate
[arithmetic.operations.negate]
19.14.7
Comparisons
[comparisons]
19.14.7.1
Class template
equal_to
[comparisons.equal_to]
19.14.7.2
Class template
not_equal_to
[comparisons.not_equal_to]
19.14.7.3
Class template
greater
[comparisons.greater]
19.14.7.4
Class template
less
[comparisons.less]
19.14.7.5
Class template
greater_equal
[comparisons.greater_equal]
19.14.7.6
Class template
less_equal
[comparisons.less_equal]
19.14.8
Concept-constrained comparisons
[range.cmp]
19.14.9
Logical operations
[logical.operations]
19.14.9.1
Class template
logical_and
[logical.operations.and]
19.14.9.2
Class template
logical_or
[logical.operations.or]
19.14.9.3
Class template
logical_not
[logical.operations.not]
19.14.10
Bitwise operations
[bitwise.operations]
19.14.10.1
Class template
bit_and
[bitwise.operations.and]
19.14.10.2
Class template
bit_or
[bitwise.operations.or]
19.14.10.3
Class template
bit_xor
[bitwise.operations.xor]
19.14.10.4
Class template
bit_not
[bitwise.operations.not]
19.14.11
Class
identity
[func.identity]
19.14.12
Function template
not_fn
[func.not_fn]
19.14.13
Function template
bind_front
[func.bind_front]
19.14.14
Function object binders
[func.bind]
19.14.14.1
Class template
is_bind_expression
[func.bind.isbind]
19.14.14.2
Class template
is_placeholder
[func.bind.isplace]
19.14.14.3
Function template
bind
[func.bind.bind]
19.14.14.4
Placeholders
[func.bind.place]
19.14.15
Function template
mem_fn
[func.memfn]
19.14.16
Polymorphic function wrappers
[func.wrap]
19.14.16.1
Class
bad_function_call
[func.wrap.badcall]
19.14.16.1.1
Constructor
[func.wrap.badcall.const]
19.14.16.2
Class template
function
[func.wrap.func]
19.14.16.2.1
Constructors and destructor
[func.wrap.func.con]
19.14.16.2.2
Modifiers
[func.wrap.func.mod]
19.14.16.2.3
Capacity
[func.wrap.func.cap]
19.14.16.2.4
Invocation
[func.wrap.func.inv]
19.14.16.2.5
Target access
[func.wrap.func.targ]
19.14.16.2.6
Null pointer comparison functions
[func.wrap.func.nullptr]
19.14.16.2.7
Specialized algorithms
[func.wrap.func.alg]
19.14.17
Searchers
[func.search]
19.14.17.1
Class template
default_searcher
[func.search.default]
19.14.17.2
Class template
boyer_moore_searcher
[func.search.bm]
19.14.17.3
Class template
boyer_moore_horspool_searcher
[func.search.bmh]
19.14.18
Class template
hash
[unord.hash]
19.15
Metaprogramming and type traits
[meta]
19.15.1
Requirements
[meta.rqmts]
19.15.2
Header
<type_traits>
synopsis
[meta.type.synop]
19.15.3
Helper classes
[meta.help]
19.15.4
Unary type traits
[meta.unary]
19.15.4.1
Primary type categories
[meta.unary.cat]
19.15.4.2
Composite type traits
[meta.unary.comp]
19.15.4.3
Type properties
[meta.unary.prop]
19.15.5
Type property queries
[meta.unary.prop.query]
19.15.6
Relationships between types
[meta.rel]
19.15.7
Transformations between types
[meta.trans]
19.15.7.1
Const-volatile modifications
[meta.trans.cv]
19.15.7.2
Reference modifications
[meta.trans.ref]
19.15.7.3
Sign modifications
[meta.trans.sign]
19.15.7.4
Array modifications
[meta.trans.arr]
19.15.7.5
Pointer modifications
[meta.trans.ptr]
19.15.7.6
Other transformations
[meta.trans.other]
19.15.8
Logical operator traits
[meta.logical]
19.15.9
Endian
[meta.endian]
19.15.10
Constant evaluation context
[meta.const.eval]
19.16
Compile-time rational arithmetic
[ratio]
19.16.1
In general
[ratio.general]
19.16.2
Header
<ratio>
synopsis
[ratio.syn]
19.16.3
Class template
ratio
[ratio.ratio]
19.16.4
Arithmetic on
ratio
s
[ratio.arithmetic]
19.16.5
Comparison of
ratio
s
[ratio.comparison]
19.16.6
SI types for
ratio
[ratio.si]
19.17
Class
type_index
[type.index]
19.17.1
Header
<typeindex>
synopsis
[type.index.synopsis]
19.17.2
type_index
overview
[type.index.overview]
19.17.3
type_index
members
[type.index.members]
19.17.4
Hash support
[type.index.hash]
19.18
Execution policies
[execpol]
19.18.1
In general
[execpol.general]
19.18.2
Header
<execution>
synopsis
[execution.syn]
19.18.3
Execution policy type trait
[execpol.type]
19.18.4
Sequenced execution policy
[execpol.seq]
19.18.5
Parallel execution policy
[execpol.par]
19.18.6
Parallel and unsequenced execution policy
[execpol.parunseq]
19.18.7
Execution policy objects
[execpol.objects]
19.19
Primitive numeric conversions
[charconv]
19.19.1
Header
<charconv>
synopsis
[charconv.syn]
19.19.2
Primitive numeric output conversion
[charconv.to.chars]
19.19.3
Primitive numeric input conversion
[charconv.from.chars]
20
Strings library
[strings]
[strings]
20.1
General
[strings.general]
20.2
Character traits
[char.traits]
20.2.1
Character traits requirements
[char.traits.require]
20.2.2
Traits typedefs
[char.traits.typedefs]
20.2.3
char_traits
specializations
[char.traits.specializations]
20.2.3.1
struct char_traits<char>
[char.traits.specializations.char]
20.2.3.2
struct char_traits<char8_t>
[char.traits.specializations.char8_t]
20.2.3.3
struct char_traits<char16_t>
[char.traits.specializations.char16_t]
20.2.3.4
struct char_traits<char32_t>
[char.traits.specializations.char32_t]
20.2.3.5
struct char_traits<wchar_t>
[char.traits.specializations.wchar.t]
20.3
String classes
[string.classes]
20.3.1
Header
<string>
synopsis
[string.syn]
20.3.2
Class template
basic_string
[basic.string]
20.3.2.1
General requirements
[string.require]
20.3.2.2
Constructors and assignment operators
[string.cons]
20.3.2.3
Iterator support
[string.iterators]
20.3.2.4
Capacity
[string.capacity]
20.3.2.5
Element access
[string.access]
20.3.2.6
Modifiers
[string.modifiers]
20.3.2.6.1
basic_string::operator+=
[string.op.append]
20.3.2.6.2
basic_string::append
[string.append]
20.3.2.6.3
basic_string::assign
[string.assign]
20.3.2.6.4
basic_string::insert
[string.insert]
20.3.2.6.5
basic_string::erase
[string.erase]
20.3.2.6.6
basic_string::replace
[string.replace]
20.3.2.6.7
basic_string::copy
[string.copy]
20.3.2.6.8
basic_string::swap
[string.swap]
20.3.2.7
String operations
[string.ops]
20.3.2.7.1
Accessors
[string.accessors]
20.3.2.7.2
Searching
[string.find]
20.3.2.7.3
basic_string::substr
[string.substr]
20.3.2.7.4
basic_string::compare
[string.compare]
20.3.2.7.5
basic_string::starts_with
[string.starts.with]
20.3.2.7.6
basic_string::ends_with
[string.ends.with]
20.3.3
Non-member functions
[string.nonmembers]
20.3.3.1
operator+
[string.op.plus]
20.3.3.2
Non-member comparison functions
[string.cmp]
20.3.3.3
swap
[string.special]
20.3.3.4
Inserters and extractors
[string.io]
20.3.3.5
Erasure
[string.erasure]
20.3.4
Numeric conversions
[string.conversions]
20.3.5
Hash support
[basic.string.hash]
20.3.6
Suffix for
basic_string
literals
[basic.string.literals]
20.4
String view classes
[string.view]
20.4.1
Header
<string_view>
synopsis
[string.view.synop]
20.4.2
Class template
basic_string_view
[string.view.template]
20.4.2.1
Construction and assignment
[string.view.cons]
20.4.2.2
Iterator support
[string.view.iterators]
20.4.2.3
Capacity
[string.view.capacity]
20.4.2.4
Element access
[string.view.access]
20.4.2.5
Modifiers
[string.view.modifiers]
20.4.2.6
String operations
[string.view.ops]
20.4.2.7
Searching
[string.view.find]
20.4.3
Non-member comparison functions
[string.view.comparison]
20.4.4
Inserters and extractors
[string.view.io]
20.4.5
Hash support
[string.view.hash]
20.4.6
Suffix for
basic_string_view
literals
[string.view.literals]
20.5
Null-terminated sequence utilities
[c.strings]
20.5.1
Header
<cctype>
synopsis
[cctype.syn]
20.5.2
Header
<cwctype>
synopsis
[cwctype.syn]
20.5.3
Header
<cstring>
synopsis
[cstring.syn]
20.5.4
Header
<cwchar>
synopsis
[cwchar.syn]
20.5.5
Header
<cuchar>
synopsis
[cuchar.syn]
20.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
21
Containers library
[containers]
[containers]
21.1
General
[containers.general]
21.2
Container requirements
[container.requirements]
21.2.1
General container requirements
[container.requirements.general]
21.2.2
Container data races
[container.requirements.dataraces]
21.2.3
Sequence containers
[sequence.reqmts]
21.2.4
Node handles
[container.node]
21.2.4.1
Overview
[container.node.overview]
21.2.4.2
Constructors, copy, and assignment
[container.node.cons]
21.2.4.3
Destructor
[container.node.dtor]
21.2.4.4
Observers
[container.node.observers]
21.2.4.5
Modifiers
[container.node.modifiers]
21.2.5
Insert return type
[container.insert.return]
21.2.6
Associative containers
[associative.reqmts]
21.2.6.1
Exception safety guarantees
[associative.reqmts.except]
21.2.7
Unordered associative containers
[unord.req]
21.2.7.1
Exception safety guarantees
[unord.req.except]
21.3
Sequence containers
[sequences]
21.3.1
In general
[sequences.general]
21.3.2
Header
<array>
synopsis
[array.syn]
21.3.3
Header
<deque>
synopsis
[deque.syn]
21.3.4
Header
<forward_list>
synopsis
[forward_list.syn]
21.3.5
Header
<list>
synopsis
[list.syn]
21.3.6
Header
<vector>
synopsis
[vector.syn]
21.3.7
Class template
array
[array]
21.3.7.1
Overview
[array.overview]
21.3.7.2
Constructors, copy, and assignment
[array.cons]
21.3.7.3
Member functions
[array.members]
21.3.7.4
Specialized algorithms
[array.special]
21.3.7.5
Zero-sized arrays
[array.zero]
21.3.7.6
Tuple interface
[array.tuple]
21.3.8
Class template
deque
[deque]
21.3.8.1
Overview
[deque.overview]
21.3.8.2
Constructors, copy, and assignment
[deque.cons]
21.3.8.3
Capacity
[deque.capacity]
21.3.8.4
Modifiers
[deque.modifiers]
21.3.8.5
Erasure
[deque.erasure]
21.3.9
Class template
forward_list
[forwardlist]
21.3.9.1
Overview
[forwardlist.overview]
21.3.9.2
Constructors, copy, and assignment
[forwardlist.cons]
21.3.9.3
Iterators
[forwardlist.iter]
21.3.9.4
Element access
[forwardlist.access]
21.3.9.5
Modifiers
[forwardlist.modifiers]
21.3.9.6
Operations
[forwardlist.ops]
21.3.9.7
Erasure
[forward_list.erasure]
21.3.10
Class template
list
[list]
21.3.10.1
Overview
[list.overview]
21.3.10.2
Constructors, copy, and assignment
[list.cons]
21.3.10.3
Capacity
[list.capacity]
21.3.10.4
Modifiers
[list.modifiers]
21.3.10.5
Operations
[list.ops]
21.3.10.6
Erasure
[list.erasure]
21.3.11
Class template
vector
[vector]
21.3.11.1
Overview
[vector.overview]
21.3.11.2
Constructors, copy, and assignment
[vector.cons]
21.3.11.3
Capacity
[vector.capacity]
21.3.11.4
Data
[vector.data]
21.3.11.5
Modifiers
[vector.modifiers]
21.3.11.6
Erasure
[vector.erasure]
21.3.12
Class
vector<bool>
[vector.bool]
21.4
Associative containers
[associative]
21.4.1
In general
[associative.general]
21.4.2
Header
<map>
synopsis
[associative.map.syn]
21.4.3
Header
<set>
synopsis
[associative.set.syn]
21.4.4
Class template
map
[map]
21.4.4.1
Overview
[map.overview]
21.4.4.2
Constructors, copy, and assignment
[map.cons]
21.4.4.3
Element access
[map.access]
21.4.4.4
Modifiers
[map.modifiers]
21.4.4.5
Erasure
[map.erasure]
21.4.5
Class template
multimap
[multimap]
21.4.5.1
Overview
[multimap.overview]
21.4.5.2
Constructors
[multimap.cons]
21.4.5.3
Modifiers
[multimap.modifiers]
21.4.5.4
Erasure
[multimap.erasure]
21.4.6
Class template
set
[set]
21.4.6.1
Overview
[set.overview]
21.4.6.2
Constructors, copy, and assignment
[set.cons]
21.4.6.3
Erasure
[set.erasure]
21.4.7
Class template
multiset
[multiset]
21.4.7.1
Overview
[multiset.overview]
21.4.7.2
Constructors
[multiset.cons]
21.4.7.3
Erasure
[multiset.erasure]
21.5
Unordered associative containers
[unord]
21.5.1
In general
[unord.general]
21.5.2
Header
<unordered_map>
synopsis
[unord.map.syn]
21.5.3
Header
<unordered_set>
synopsis
[unord.set.syn]
21.5.4
Class template
unordered_map
[unord.map]
21.5.4.1
Overview
[unord.map.overview]
21.5.4.2
Constructors
[unord.map.cnstr]
21.5.4.3
Element access
[unord.map.elem]
21.5.4.4
Modifiers
[unord.map.modifiers]
21.5.4.5
Erasure
[unord.map.erasure]
21.5.5
Class template
unordered_multimap
[unord.multimap]
21.5.5.1
Overview
[unord.multimap.overview]
21.5.5.2
Constructors
[unord.multimap.cnstr]
21.5.5.3
Modifiers
[unord.multimap.modifiers]
21.5.5.4
Erasure
[unord.multimap.erasure]
21.5.6
Class template
unordered_set
[unord.set]
21.5.6.1
Overview
[unord.set.overview]
21.5.6.2
Constructors
[unord.set.cnstr]
21.5.6.3
Erasure
[unord.set.erasure]
21.5.7
Class template
unordered_multiset
[unord.multiset]
21.5.7.1
Overview
[unord.multiset.overview]
21.5.7.2
Constructors
[unord.multiset.cnstr]
21.5.7.3
Erasure
[unord.multiset.erasure]
21.6
Container adaptors
[container.adaptors]
21.6.1
In general
[container.adaptors.general]
21.6.2
Header
<queue>
synopsis
[queue.syn]
21.6.3
Header
<stack>
synopsis
[stack.syn]
21.6.4
Class template
queue
[queue]
21.6.4.1
Definition
[queue.defn]
21.6.4.2
Constructors
[queue.cons]
21.6.4.3
Constructors with allocators
[queue.cons.alloc]
21.6.4.4
Operators
[queue.ops]
21.6.4.5
Specialized algorithms
[queue.special]
21.6.5
Class template
priority_queue
[priority.queue]
21.6.5.1
Overview
[priqueue.overview]
21.6.5.2
Constructors
[priqueue.cons]
21.6.5.3
Constructors with allocators
[priqueue.cons.alloc]
21.6.5.4
Members
[priqueue.members]
21.6.5.5
Specialized algorithms
[priqueue.special]
21.6.6
Class template
stack
[stack]
21.6.6.1
Definition
[stack.defn]
21.6.6.2
Constructors
[stack.cons]
21.6.6.3
Constructors with allocators
[stack.cons.alloc]
21.6.6.4
Operators
[stack.ops]
21.6.6.5
Specialized algorithms
[stack.special]
21.7
Views
[views]
21.7.1
General
[views.general]
21.7.2
Header
<span>
synopsis
[span.syn]
21.7.3
Class template
span
[views.span]
21.7.3.1
Overview
[span.overview]
21.7.3.2
Constructors, copy, and assignment
[span.cons]
21.7.3.3
Subviews
[span.sub]
21.7.3.4
Observers
[span.obs]
21.7.3.5
Element access
[span.elem]
21.7.3.6
Iterator support
[span.iterators]
21.7.3.7
Views of object representation
[span.objectrep]
22
Iterators library
[iterators]
[iterators]
22.1
General
[iterators.general]
22.2
Header
<iterator>
synopsis
[iterator.synopsis]
22.3
Iterator requirements
[iterator.requirements]
22.3.1
In general
[iterator.requirements.general]
22.3.2
Associated types
[iterator.assoc.types]
22.3.2.1
Incrementable traits
[incrementable.traits]
22.3.2.2
Readable traits
[readable.traits]
22.3.2.3
Iterator traits
[iterator.traits]
22.3.3
Customization points
[iterator.cust]
22.3.3.1
ranges::iter_move
[iterator.cust.move]
22.3.3.2
ranges::iter_swap
[iterator.cust.swap]
22.3.4
Iterator concepts
[iterator.concepts]
22.3.4.1
General
[iterator.concepts.general]
22.3.4.2
Concept
Readable
[iterator.concept.readable]
22.3.4.3
Concept
Writable
[iterator.concept.writable]
22.3.4.4
Concept
WeaklyIncrementable
[iterator.concept.winc]
22.3.4.5
Concept
Incrementable
[iterator.concept.inc]
22.3.4.6
Concept
Iterator
[iterator.concept.iterator]
22.3.4.7
Concept
Sentinel
[iterator.concept.sentinel]
22.3.4.8
Concept
SizedSentinel
[iterator.concept.sizedsentinel]
22.3.4.9
Concept
InputIterator
[iterator.concept.input]
22.3.4.10
Concept
OutputIterator
[iterator.concept.output]
22.3.4.11
Concept
ForwardIterator
[iterator.concept.forward]
22.3.4.12
Concept
BidirectionalIterator
[iterator.concept.bidir]
22.3.4.13
Concept
RandomAccessIterator
[iterator.concept.random.access]
22.3.4.14
Concept
ContiguousIterator
[iterator.concept.contiguous]
22.3.5
C++17 iterator requirements
[iterator.cpp17]
22.3.5.1
Cpp17Iterator
[iterator.iterators]
22.3.5.2
Input iterators
[input.iterators]
22.3.5.3
Output iterators
[output.iterators]
22.3.5.4
Forward iterators
[forward.iterators]
22.3.5.5
Bidirectional iterators
[bidirectional.iterators]
22.3.5.6
Random access iterators
[random.access.iterators]
22.3.6
Indirect callable requirements
[indirectcallable]
22.3.6.1
General
[indirectcallable.general]
22.3.6.2
Indirect callables
[indirectcallable.indirectinvocable]
22.3.6.3
Class template
projected
[projected]
22.3.7
Common algorithm requirements
[alg.req]
22.3.7.1
General
[alg.req.general]
22.3.7.2
Concept
IndirectlyMovable
[alg.req.ind.move]
22.3.7.3
Concept
IndirectlyCopyable
[alg.req.ind.copy]
22.3.7.4
Concept
IndirectlySwappable
[alg.req.ind.swap]
22.3.7.5
Concept
IndirectlyComparable
[alg.req.ind.cmp]
22.3.7.6
Concept
Permutable
[alg.req.permutable]
22.3.7.7
Concept
Mergeable
[alg.req.mergeable]
22.3.7.8
Concept
Sortable
[alg.req.sortable]
22.4
Iterator primitives
[iterator.primitives]
22.4.1
Standard iterator tags
[std.iterator.tags]
22.4.2
Iterator operations
[iterator.operations]
22.4.3
Range iterator operations
[range.iter.ops]
22.4.3.1
ranges::advance
[range.iter.op.advance]
22.4.3.2
ranges::distance
[range.iter.op.distance]
22.4.3.3
ranges::next
[range.iter.op.next]
22.4.3.4
ranges::prev
[range.iter.op.prev]
22.5
Iterator adaptors
[predef.iterators]
22.5.1
Reverse iterators
[reverse.iterators]
22.5.1.1
Class template
reverse_iterator
[reverse.iterator]
22.5.1.2
Requirements
[reverse.iter.requirements]
22.5.1.3
Construction and assignment
[reverse.iter.cons]
22.5.1.4
Conversion
[reverse.iter.conv]
22.5.1.5
Element access
[reverse.iter.elem]
22.5.1.6
Navigation
[reverse.iter.nav]
22.5.1.7
Comparisons
[reverse.iter.cmp]
22.5.1.8
Non-member functions
[reverse.iter.nonmember]
22.5.2
Insert iterators
[insert.iterators]
22.5.2.1
Class template
back_insert_iterator
[back.insert.iterator]
22.5.2.1.1
Operations
[back.insert.iter.ops]
22.5.2.1.2
back_inserter
[back.inserter]
22.5.2.2
Class template
front_insert_iterator
[front.insert.iterator]
22.5.2.2.1
Operations
[front.insert.iter.ops]
22.5.2.2.2
front_inserter
[front.inserter]
22.5.2.3
Class template
insert_iterator
[insert.iterator]
22.5.2.3.1
Operations
[insert.iter.ops]
22.5.2.3.2
inserter
[inserter]
22.5.3
Move iterators and sentinels
[move.iterators]
22.5.3.1
Class template
move_iterator
[move.iterator]
22.5.3.2
Requirements
[move.iter.requirements]
22.5.3.3
Construction and assignment
[move.iter.cons]
22.5.3.4
Conversion
[move.iter.op.conv]
22.5.3.5
Element access
[move.iter.elem]
22.5.3.6
Navigation
[move.iter.nav]
22.5.3.7
Comparisons
[move.iter.op.comp]
22.5.3.8
Non-member functions
[move.iter.nonmember]
22.5.3.9
Class template
move_sentinel
[move.sentinel]
22.5.3.10
Operations
[move.sent.ops]
22.5.4
Common iterators
[iterators.common]
22.5.4.1
Class template
common_iterator
[common.iterator]
22.5.4.2
Associated types
[common.iter.types]
22.5.4.3
Constructors and conversions
[common.iter.const]
22.5.4.4
Accessors
[common.iter.access]
22.5.4.5
Navigation
[common.iter.nav]
22.5.4.6
Comparisons
[common.iter.cmp]
22.5.4.7
Customization
[common.iter.cust]
22.5.5
Default sentinels
[default.sentinels]
22.5.6
Counted iterators
[iterators.counted]
22.5.6.1
Class template
counted_iterator
[counted.iterator]
22.5.6.2
Constructors and conversions
[counted.iter.const]
22.5.6.3
Accessors
[counted.iter.access]
22.5.6.4
Element access
[counted.iter.elem]
22.5.6.5
Navigation
[counted.iter.nav]
22.5.6.6
Comparisons
[counted.iter.cmp]
22.5.6.7
Customizations
[counted.iter.cust]
22.5.7
Unreachable sentinel
[unreachable.sentinels]
22.5.7.1
Class
unreachable_sentinel_t
[unreachable.sentinel]
22.5.7.2
Comparisons
[unreachable.sentinel.cmp]
22.6
Stream iterators
[stream.iterators]
22.6.1
Class template
istream_iterator
[istream.iterator]
22.6.1.1
Constructors and destructor
[istream.iterator.cons]
22.6.1.2
Operations
[istream.iterator.ops]
22.6.2
Class template
ostream_iterator
[ostream.iterator]
22.6.2.1
Constructors and destructor
[ostream.iterator.cons.des]
22.6.2.2
Operations
[ostream.iterator.ops]
22.6.3
Class template
istreambuf_iterator
[istreambuf.iterator]
22.6.3.1
Class
istreambuf_iterator::
proxy
[istreambuf.iterator.proxy]
22.6.3.2
Constructors
[istreambuf.iterator.cons]
22.6.3.3
Operations
[istreambuf.iterator.ops]
22.6.4
Class template
ostreambuf_iterator
[ostreambuf.iterator]
22.6.4.1
Constructors
[ostreambuf.iter.cons]
22.6.4.2
Operations
[ostreambuf.iter.ops]
22.7
Range access
[iterator.range]
23
Ranges library
[ranges]
[ranges]
23.1
General
[ranges.general]
23.2
Header
<ranges>
synopsis
[ranges.syn]
23.3
Range access
[range.access]
23.3.1
ranges::begin
[range.access.begin]
23.3.2
ranges::end
[range.access.end]
23.3.3
ranges::cbegin
[range.access.cbegin]
23.3.4
ranges::cend
[range.access.cend]
23.3.5
ranges::rbegin
[range.access.rbegin]
23.3.6
ranges::rend
[range.access.rend]
23.3.7
ranges::crbegin
[range.access.crbegin]
23.3.8
ranges::crend
[range.access.crend]
23.3.9
ranges::size
[range.prim.size]
23.3.10
ranges::empty
[range.prim.empty]
23.3.11
ranges::data
[range.prim.data]
23.3.12
ranges::cdata
[range.prim.cdata]
23.4
Range requirements
[range.req]
23.4.1
General
[range.req.general]
23.4.2
Ranges
[range.range]
23.4.3
Sized ranges
[range.sized]
23.4.4
Views
[range.view]
23.4.5
Other range refinements
[range.refinements]
23.5
Range utilities
[range.utility]
23.5.1
Helper concepts
[range.utility.helpers]
23.5.2
View interface
[view.interface]
23.5.2.1
Members
[view.interface.members]
23.5.3
Sub-ranges
[range.subrange]
23.5.3.1
Constructors and conversions
[range.subrange.ctor]
23.5.3.2
Accessors
[range.subrange.access]
23.6
Range factories
[range.factories]
23.6.1
Empty view
[range.empty]
23.6.1.1
Overview
[range.empty.overview]
23.6.1.2
Class template
empty_view
[range.empty.view]
23.6.2
Single view
[range.single]
23.6.2.1
Overview
[range.single.overview]
23.6.2.2
Class template
single_view
[range.single.view]
23.6.2.3
view::single
[range.single.adaptor]
23.6.3
Iota view
[range.iota]
23.6.3.1
Overview
[range.iota.overview]
23.6.3.2
Class template
iota_view
[range.iota.view]
23.6.3.3
Class
iota_view::iterator
[range.iota.iterator]
23.6.3.4
Class
iota_view::sentinel
[range.iota.sentinel]
23.6.3.5
view::iota
[range.iota.adaptor]
23.7
Range adaptors
[range.adaptors]
23.7.1
Range adaptor objects
[range.adaptor.object]
23.7.2
Semiregular wrapper
[range.semi.wrap]
23.7.3
All view
[range.all]
23.7.3.1
ref-view
[range.view.ref]
23.7.4
Filter view
[range.filter]
23.7.4.1
Overview
[range.filter.overview]
23.7.4.2
Class template
filter_view
[range.filter.view]
23.7.4.3
Class
filter_view::iterator
[range.filter.iterator]
23.7.4.4
Class
filter_view::sentinel
[range.filter.sentinel]
23.7.4.5
view::filter
[range.filter.adaptor]
23.7.5
Transform view
[range.transform]
23.7.5.1
Overview
[range.transform.overview]
23.7.5.2
Class template
transform_view
[range.transform.view]
23.7.5.3
Class template
transform_view::iterator
[range.transform.iterator]
23.7.5.4
Class template
transform_view::sentinel
[range.transform.sentinel]
23.7.5.5
view::transform
[range.transform.adaptor]
23.7.6
Take view
[range.take]
23.7.6.1
Overview
[range.take.overview]
23.7.6.2
Class template
take_view
[range.take.view]
23.7.6.3
Class template
take_view::sentinel
[range.take.sentinel]
23.7.6.4
view::take
[range.take.adaptor]
23.7.7
Join view
[range.join]
23.7.7.1
Overview
[range.join.overview]
23.7.7.2
Class template
join_view
[range.join.view]
23.7.7.3
Class template
join_view::iterator
[range.join.iterator]
23.7.7.4
Class template
join_view::sentinel
[range.join.sentinel]
23.7.7.5
view::join
[range.join.adaptor]
23.7.8
Split view
[range.split]
23.7.8.1
Overview
[range.split.overview]
23.7.8.2
Class template
split_view
[range.split.view]
23.7.8.3
Class template
split_view::outer_iterator
[range.split.outer]
23.7.8.4
Class
split_view::outer_iterator::value_type
[range.split.outer.value]
23.7.8.5
Class template
split_view::inner_iterator
[range.split.inner]
23.7.8.6
view::split
[range.split.adaptor]
23.7.9
Counted view
[range.counted]
23.7.10
Common view
[range.common]
23.7.10.1
Overview
[range.common.overview]
23.7.10.2
Class template
common_view
[range.common.view]
23.7.10.3
view::common
[range.common.adaptor]
23.7.11
Reverse view
[range.reverse]
23.7.11.1
Overview
[range.reverse.overview]
23.7.11.2
Class template
reverse_view
[range.reverse.view]
23.7.11.3
view::reverse
[range.reverse.adaptor]
24
Algorithms library
[algorithms]
[algorithms]
24.1
General
[algorithms.general]
24.2
Algorithms requirements
[algorithms.requirements]
24.3
Parallel algorithms
[algorithms.parallel]
24.3.1
Terms and definitions
[algorithms.parallel.defns]
24.3.2
Requirements on user-provided function objects
[algorithms.parallel.user]
24.3.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
24.3.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
24.3.5
ExecutionPolicy
algorithm overloads
[algorithms.parallel.overloads]
24.4
Header
<algorithm>
synopsis
[algorithm.syn]
24.5
Non-modifying sequence operations
[alg.nonmodifying]
24.5.1
All of
[alg.all_of]
24.5.2
Any of
[alg.any_of]
24.5.3
None of
[alg.none_of]
24.5.4
For each
[alg.foreach]
24.5.5
Find
[alg.find]
24.5.6
Find end
[alg.find.end]
24.5.7
Find first
[alg.find.first.of]
24.5.8
Adjacent find
[alg.adjacent.find]
24.5.9
Count
[alg.count]
24.5.10
Mismatch
[mismatch]
24.5.11
Equal
[alg.equal]
24.5.12
Is permutation
[alg.is_permutation]
24.5.13
Search
[alg.search]
24.6
Mutating sequence operations
[alg.modifying.operations]
24.6.1
Copy
[alg.copy]
24.6.2
Move
[alg.move]
24.6.3
Swap
[alg.swap]
24.6.4
Transform
[alg.transform]
24.6.5
Replace
[alg.replace]
24.6.6
Fill
[alg.fill]
24.6.7
Generate
[alg.generate]
24.6.8
Remove
[alg.remove]
24.6.9
Unique
[alg.unique]
24.6.10
Reverse
[alg.reverse]
24.6.11
Rotate
[alg.rotate]
24.6.12
Sample
[alg.random.sample]
24.6.13
Shuffle
[alg.random.shuffle]
24.6.14
Shift
[alg.shift]
24.7
Sorting and related operations
[alg.sorting]
24.7.1
Sorting
[alg.sort]
24.7.1.1
sort
[sort]
24.7.1.2
stable_sort
[stable.sort]
24.7.1.3
partial_sort
[partial.sort]
24.7.1.4
partial_sort_copy
[partial.sort.copy]
24.7.1.5
is_sorted
[is.sorted]
24.7.2
Nth element
[alg.nth.element]
24.7.3
Binary search
[alg.binary.search]
24.7.3.1
lower_bound
[lower.bound]
24.7.3.2
upper_bound
[upper.bound]
24.7.3.3
equal_range
[equal.range]
24.7.3.4
binary_search
[binary.search]
24.7.4
Partitions
[alg.partitions]
24.7.5
Merge
[alg.merge]
24.7.6
Set operations on sorted structures
[alg.set.operations]
24.7.6.1
includes
[includes]
24.7.6.2
set_union
[set.union]
24.7.6.3
set_intersection
[set.intersection]
24.7.6.4
set_difference
[set.difference]
24.7.6.5
set_symmetric_difference
[set.symmetric.difference]
24.7.7
Heap operations
[alg.heap.operations]
24.7.7.1
push_heap
[push.heap]
24.7.7.2
pop_heap
[pop.heap]
24.7.7.3
make_heap
[make.heap]
24.7.7.4
sort_heap
[sort.heap]
24.7.7.5
is_heap
[is.heap]
24.7.8
Minimum and maximum
[alg.min.max]
24.7.9
Bounded value
[alg.clamp]
24.7.10
Lexicographical comparison
[alg.lex.comparison]
24.7.11
Three-way comparison algorithms
[alg.3way]
24.7.12
Permutation generators
[alg.permutation.generators]
24.8
Header
<numeric>
synopsis
[numeric.ops.overview]
24.9
Generalized numeric operations
[numeric.ops]
24.9.1
Definitions
[numerics.defns]
24.9.2
Accumulate
[accumulate]
24.9.3
Reduce
[reduce]
24.9.4
Inner product
[inner.product]
24.9.5
Transform reduce
[transform.reduce]
24.9.6
Partial sum
[partial.sum]
24.9.7
Exclusive scan
[exclusive.scan]
24.9.8
Inclusive scan
[inclusive.scan]
24.9.9
Transform exclusive scan
[transform.exclusive.scan]
24.9.10
Transform inclusive scan
[transform.inclusive.scan]
24.9.11
Adjacent difference
[adjacent.difference]
24.9.12
Iota
[numeric.iota]
24.9.13
Greatest common divisor
[numeric.ops.gcd]
24.9.14
Least common multiple
[numeric.ops.lcm]
24.10
C library algorithms
[alg.c.library]
25
Numerics library
[numerics]
[numerics]
25.1
General
[numerics.general]
25.2
Numeric type requirements
[numeric.requirements]
25.3
The floating-point environment
[cfenv]
25.3.1
Header
<cfenv>
synopsis
[cfenv.syn]
25.4
Complex numbers
[complex.numbers]
25.4.1
Header
<complex>
synopsis
[complex.syn]
25.4.2
Class template
complex
[complex]
25.4.3
Specializations
[complex.special]
25.4.4
Member functions
[complex.members]
25.4.5
Member operators
[complex.member.ops]
25.4.6
Non-member operations
[complex.ops]
25.4.7
Value operations
[complex.value.ops]
25.4.8
Transcendentals
[complex.transcendentals]
25.4.9
Additional overloads
[cmplx.over]
25.4.10
Suffixes for complex number literals
[complex.literals]
25.5
Bit manipulation
[bit]
25.5.1
General
[bit.general]
25.5.2
Header
<bit>
synopsis
[bit.syn]
25.5.3
Function template
bit_cast
[bit.cast]
25.5.4
Integral powers of 2
[bit.pow.two]
25.6
Random number generation
[rand]
25.6.1
Header
<random>
synopsis
[rand.synopsis]
25.6.2
Requirements
[rand.req]
25.6.2.1
General requirements
[rand.req.genl]
25.6.2.2
Seed sequence requirements
[rand.req.seedseq]
25.6.2.3
Uniform random bit generator requirements
[rand.req.urng]
25.6.2.4
Random number engine requirements
[rand.req.eng]
25.6.2.5
Random number engine adaptor requirements
[rand.req.adapt]
25.6.2.6
Random number distribution requirements
[rand.req.dist]
25.6.3
Random number engine class templates
[rand.eng]
25.6.3.1
Class template
linear_congruential_engine
[rand.eng.lcong]
25.6.3.2
Class template
mersenne_twister_engine
[rand.eng.mers]
25.6.3.3
Class template
subtract_with_carry_engine
[rand.eng.sub]
25.6.4
Random number engine adaptor class templates
[rand.adapt]
25.6.4.1
In general
[rand.adapt.general]
25.6.4.2
Class template
discard_block_engine
[rand.adapt.disc]
25.6.4.3
Class template
independent_bits_engine
[rand.adapt.ibits]
25.6.4.4
Class template
shuffle_order_engine
[rand.adapt.shuf]
25.6.5
Engines and engine adaptors with predefined parameters
[rand.predef]
25.6.6
Class
random_device
[rand.device]
25.6.7
Utilities
[rand.util]
25.6.7.1
Class
seed_seq
[rand.util.seedseq]
25.6.7.2
Function template
generate_canonical
[rand.util.canonical]
25.6.8
Random number distribution class templates
[rand.dist]
25.6.8.1
In general
[rand.dist.general]
25.6.8.2
Uniform distributions
[rand.dist.uni]
25.6.8.2.1
Class template
uniform_int_distribution
[rand.dist.uni.int]
25.6.8.2.2
Class template
uniform_real_distribution
[rand.dist.uni.real]
25.6.8.3
Bernoulli distributions
[rand.dist.bern]
25.6.8.3.1
Class
bernoulli_distribution
[rand.dist.bern.bernoulli]
25.6.8.3.2
Class template
binomial_distribution
[rand.dist.bern.bin]
25.6.8.3.3
Class template
geometric_distribution
[rand.dist.bern.geo]
25.6.8.3.4
Class template
negative_binomial_distribution
[rand.dist.bern.negbin]
25.6.8.4
Poisson distributions
[rand.dist.pois]
25.6.8.4.1
Class template
poisson_distribution
[rand.dist.pois.poisson]
25.6.8.4.2
Class template
exponential_distribution
[rand.dist.pois.exp]
25.6.8.4.3
Class template
gamma_distribution
[rand.dist.pois.gamma]
25.6.8.4.4
Class template
weibull_distribution
[rand.dist.pois.weibull]
25.6.8.4.5
Class template
extreme_value_distribution
[rand.dist.pois.extreme]
25.6.8.5
Normal distributions
[rand.dist.norm]
25.6.8.5.1
Class template
normal_distribution
[rand.dist.norm.normal]
25.6.8.5.2
Class template
lognormal_distribution
[rand.dist.norm.lognormal]
25.6.8.5.3
Class template
chi_squared_distribution
[rand.dist.norm.chisq]
25.6.8.5.4
Class template
cauchy_distribution
[rand.dist.norm.cauchy]
25.6.8.5.5
Class template
fisher_f_distribution
[rand.dist.norm.f]
25.6.8.5.6
Class template
student_t_distribution
[rand.dist.norm.t]
25.6.8.6
Sampling distributions
[rand.dist.samp]
25.6.8.6.1
Class template
discrete_distribution
[rand.dist.samp.discrete]
25.6.8.6.2
Class template
piecewise_constant_distribution
[rand.dist.samp.pconst]
25.6.8.6.3
Class template
piecewise_linear_distribution
[rand.dist.samp.plinear]
25.6.9
Low-quality random number generation
[c.math.rand]
25.7
Numeric arrays
[numarray]
25.7.1
Header
<valarray>
synopsis
[valarray.syn]
25.7.2
Class template
valarray
[template.valarray]
25.7.2.1
Overview
[template.valarray.overview]
25.7.2.2
Constructors
[valarray.cons]
25.7.2.3
Assignment
[valarray.assign]
25.7.2.4
Element access
[valarray.access]
25.7.2.5
Subset operations
[valarray.sub]
25.7.2.6
Unary operators
[valarray.unary]
25.7.2.7
Compound assignment
[valarray.cassign]
25.7.2.8
Member functions
[valarray.members]
25.7.3
valarray
non-member operations
[valarray.nonmembers]
25.7.3.1
Binary operators
[valarray.binary]
25.7.3.2
Logical operators
[valarray.comparison]
25.7.3.3
Transcendentals
[valarray.transcend]
25.7.3.4
Specialized algorithms
[valarray.special]
25.7.4
Class
slice
[class.slice]
25.7.4.1
Overview
[class.slice.overview]
25.7.4.2
Constructors
[cons.slice]
25.7.4.3
Access functions
[slice.access]
25.7.5
Class template
slice_array
[template.slice.array]
25.7.5.1
Overview
[template.slice.array.overview]
25.7.5.2
Assignment
[slice.arr.assign]
25.7.5.3
Compound assignment
[slice.arr.comp.assign]
25.7.5.4
Fill function
[slice.arr.fill]
25.7.6
The
gslice
class
[class.gslice]
25.7.6.1
Overview
[class.gslice.overview]
25.7.6.2
Constructors
[gslice.cons]
25.7.6.3
Access functions
[gslice.access]
25.7.7
Class template
gslice_array
[template.gslice.array]
25.7.7.1
Overview
[template.gslice.array.overview]
25.7.7.2
Assignment
[gslice.array.assign]
25.7.7.3
Compound assignment
[gslice.array.comp.assign]
25.7.7.4
Fill function
[gslice.array.fill]
25.7.8
Class template
mask_array
[template.mask.array]
25.7.8.1
Overview
[template.mask.array.overview]
25.7.8.2
Assignment
[mask.array.assign]
25.7.8.3
Compound assignment
[mask.array.comp.assign]
25.7.8.4
Fill function
[mask.array.fill]
25.7.9
Class template
indirect_array
[template.indirect.array]
25.7.9.1
Overview
[template.indirect.array.overview]
25.7.9.2
Assignment
[indirect.array.assign]
25.7.9.3
Compound assignment
[indirect.array.comp.assign]
25.7.9.4
Fill function
[indirect.array.fill]
25.7.10
valarray
range access
[valarray.range]
25.8
Mathematical functions for floating-point types
[c.math]
25.8.1
Header
<cmath>
synopsis
[cmath.syn]
25.8.2
Absolute values
[c.math.abs]
25.8.3
Three-dimensional hypotenuse
[c.math.hypot3]
25.8.4
Classification / comparison functions
[c.math.fpclass]
25.8.5
Mathematical special functions
[sf.cmath]
25.8.5.1
Associated Laguerre polynomials
[sf.cmath.assoc_laguerre]
25.8.5.2
Associated Legendre functions
[sf.cmath.assoc_legendre]
25.8.5.3
Beta function
[sf.cmath.beta]
25.8.5.4
Complete elliptic integral of the first kind
[sf.cmath.comp_ellint_1]
25.8.5.5
Complete elliptic integral of the second kind
[sf.cmath.comp_ellint_2]
25.8.5.6
Complete elliptic integral of the third kind
[sf.cmath.comp_ellint_3]
25.8.5.7
Regular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_i]
25.8.5.8
Cylindrical Bessel functions of the first kind
[sf.cmath.cyl_bessel_j]
25.8.5.9
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_k]
25.8.5.10
Cylindrical Neumann functions
[sf.cmath.cyl_neumann]
25.8.5.11
Incomplete elliptic integral of the first kind
[sf.cmath.ellint_1]
25.8.5.12
Incomplete elliptic integral of the second kind
[sf.cmath.ellint_2]
25.8.5.13
Incomplete elliptic integral of the third kind
[sf.cmath.ellint_3]
25.8.5.14
Exponential integral
[sf.cmath.expint]
25.8.5.15
Hermite polynomials
[sf.cmath.hermite]
25.8.5.16
Laguerre polynomials
[sf.cmath.laguerre]
25.8.5.17
Legendre polynomials
[sf.cmath.legendre]
25.8.5.18
Riemann zeta function
[sf.cmath.riemann_zeta]
25.8.5.19
Spherical Bessel functions of the first kind
[sf.cmath.sph_bessel]
25.8.5.20
Spherical associated Legendre functions
[sf.cmath.sph_legendre]
25.8.5.21
Spherical Neumann functions
[sf.cmath.sph_neumann]
26
Time library
[time]
[time]
26.1
General
[time.general]
26.2
Header
<chrono>
synopsis
[time.syn]
26.3
Cpp17Clock
requirements
[time.clock.req]
26.4
Time-related traits
[time.traits]
26.4.1
treat_as_floating_point
[time.traits.is_fp]
26.4.2
duration_values
[time.traits.duration_values]
26.4.3
Specializations of
common_type
[time.traits.specializations]
26.4.4
Class template
is_clock
[time.traits.is_clock]
26.5
Class template
duration
[time.duration]
26.5.1
Constructors
[time.duration.cons]
26.5.2
Observer
[time.duration.observer]
26.5.3
Arithmetic
[time.duration.arithmetic]
26.5.4
Special values
[time.duration.special]
26.5.5
Non-member arithmetic
[time.duration.nonmember]
26.5.6
Comparisons
[time.duration.comparisons]
26.5.7
duration_cast
[time.duration.cast]
26.5.8
Suffixes for duration literals
[time.duration.literals]
26.5.9
Algorithms
[time.duration.alg]
26.5.10
I/O
[time.duration.io]
26.6
Class template
time_point
[time.point]
26.6.1
Constructors
[time.point.cons]
26.6.2
Observer
[time.point.observer]
26.6.3
Arithmetic
[time.point.arithmetic]
26.6.4
Special values
[time.point.special]
26.6.5
Non-member arithmetic
[time.point.nonmember]
26.6.6
Comparisons
[time.point.comparisons]
26.6.7
time_point_cast
[time.point.cast]
26.7
Clocks
[time.clock]
26.7.1
Class
system_clock
[time.clock.system]
26.7.1.1
Overview
[time.clock.system.overview]
26.7.1.2
Members
[time.clock.system.members]
26.7.1.3
Non-member functions
[time.clock.system.nonmembers]
26.7.2
Class
utc_clock
[time.clock.utc]
26.7.2.1
Overview
[time.clock.utc.overview]
26.7.2.2
Member functions
[time.clock.utc.members]
26.7.2.3
Non-member functions
[time.clock.utc.nonmembers]
26.7.3
Class
tai_clock
[time.clock.tai]
26.7.3.1
Overview
[time.clock.tai.overview]
26.7.3.2
Member functions
[time.clock.tai.members]
26.7.3.3
Non-member functions
[time.clock.tai.nonmembers]
26.7.4
Class
gps_clock
[time.clock.gps]
26.7.4.1
Overview
[time.clock.gps.overview]
26.7.4.2
Member functions
[time.clock.gps.members]
26.7.4.3
Non-member functions
[time.clock.gps.nonmembers]
26.7.5
Type
file_clock
[time.clock.file]
26.7.5.1
Overview
[time.clock.file.overview]
26.7.5.2
Member functions
[time.clock.file.members]
26.7.5.3
Non-member functions
[time.clock.file.nonmembers]
26.7.6
Class
steady_clock
[time.clock.steady]
26.7.7
Class
high_resolution_clock
[time.clock.hires]
26.7.8
Local time
[time.clock.local]
26.7.9
time_point
conversions
[time.clock.cast]
26.7.9.1
Class template
clock_time_conversion
[time.clock.conv]
26.7.9.2
Identity conversions
[time.clock.cast.id]
26.7.9.3
Conversions between
system_clock
and
utc_clock
[time.clock.cast.sys.utc]
26.7.9.4
Conversions between
system_clock
and other clocks
[time.clock.cast.sys]
26.7.9.5
Conversions between
utc_clock
and other clocks
[time.clock.cast.utc]
26.7.9.6
Function template
clock_cast
[time.clock.cast.fn]
26.8
The civil calendar
[time.cal]
26.8.1
In general
[time.cal.general]
26.8.2
Class
last_spec
[time.cal.last]
26.8.3
Class
day
[time.cal.day]
26.8.3.1
Overview
[time.cal.day.overview]
26.8.3.2
Member functions
[time.cal.day.members]
26.8.3.3
Non-member functions
[time.cal.day.nonmembers]
26.8.4
Class
month
[time.cal.month]
26.8.4.1
Overview
[time.cal.month.overview]
26.8.4.2
Member functions
[time.cal.month.members]
26.8.4.3
Non-member functions
[time.cal.month.nonmembers]
26.8.5
Class
year
[time.cal.year]
26.8.5.1
Overview
[time.cal.year.overview]
26.8.5.2
Member functions
[time.cal.year.members]
26.8.5.3
Non-member functions
[time.cal.year.nonmembers]
26.8.6
Class
weekday
[time.cal.wd]
26.8.6.1
Overview
[time.cal.wd.overview]
26.8.6.2
Member functions
[time.cal.wd.members]
26.8.6.3
Non-member functions
[time.cal.wd.nonmembers]
26.8.7
Class
weekday_indexed
[time.cal.wdidx]
26.8.7.1
Overview
[time.cal.wdidx.overview]
26.8.7.2
Member functions
[time.cal.wdidx.members]
26.8.7.3
Non-member functions
[time.cal.wdidx.nonmembers]
26.8.8
Class
weekday_last
[time.cal.wdlast]
26.8.8.1
Overview
[time.cal.wdlast.overview]
26.8.8.2
Member functions
[time.cal.wdlast.members]
26.8.8.3
Non-member functions
[time.cal.wdlast.nonmembers]
26.8.9
Class
month_day
[time.cal.md]
26.8.9.1
Overview
[time.cal.md.overview]
26.8.9.2
Member functions
[time.cal.md.members]
26.8.9.3
Non-member functions
[time.cal.md.nonmembers]
26.8.10
Class
month_day_last
[time.cal.mdlast]
26.8.11
Class
month_weekday
[time.cal.mwd]
26.8.11.1
Overview
[time.cal.mwd.overview]
26.8.11.2
Member functions
[time.cal.mwd.members]
26.8.11.3
Non-member functions
[time.cal.mwd.nonmembers]
26.8.12
Class
month_weekday_last
[time.cal.mwdlast]
26.8.12.1
Overview
[time.cal.mwdlast.overview]
26.8.12.2
Member functions
[time.cal.mwdlast.members]
26.8.12.3
Non-member functions
[time.cal.mwdlast.nonmembers]
26.8.13
Class
year_month
[time.cal.ym]
26.8.13.1
Overview
[time.cal.ym.overview]
26.8.13.2
Member functions
[time.cal.ym.members]
26.8.13.3
Non-member functions
[time.cal.ym.nonmembers]
26.8.14
Class
year_month_day
[time.cal.ymd]
26.8.14.1
Overview
[time.cal.ymd.overview]
26.8.14.2
Member functions
[time.cal.ymd.members]
26.8.14.3
Non-member functions
[time.cal.ymd.nonmembers]
26.8.15
Class
year_month_day_last
[time.cal.ymdlast]
26.8.15.1
Overview
[time.cal.ymdlast.overview]
26.8.15.2
Member functions
[time.cal.ymdlast.members]
26.8.15.3
Non-member functions
[time.cal.ymdlast.nonmembers]
26.8.16
Class
year_month_weekday
[time.cal.ymwd]
26.8.16.1
Overview
[time.cal.ymwd.overview]
26.8.16.2
Member functions
[time.cal.ymwd.members]
26.8.16.3
Non-member functions
[time.cal.ymwd.nonmembers]
26.8.17
Class
year_month_weekday_last
[time.cal.ymwdlast]
26.8.17.1
Overview
[time.cal.ymwdlast.overview]
26.8.17.2
Member functions
[time.cal.ymwdlast.members]
26.8.17.3
Non-member functions
[time.cal.ymwdlast.nonmembers]
26.8.18
Conventional syntax operators
[time.cal.operators]
26.9
Class template
time_of_day
[time.tod]
26.9.1
Overview
[time.tod.overview]
26.9.2
Hours precision
[time.tod.hours]
26.9.3
Minutes precision
[time.tod.minutes]
26.9.4
Seconds precision
[time.tod.seconds]
26.9.5
Sub-second precision
[time.tod.subsecond]
26.9.6
Formatted output
[time.tod.io]
26.10
Time zones
[time.zone]
26.10.1
In general
[time.zone.general]
26.10.2
Time zone database
[time.zone.db]
26.10.2.1
Class
tzdb
[time.zone.db.tzdb]
26.10.2.2
Class
tzdb_list
[time.zone.db.list]
26.10.2.3
Time zone database access
[time.zone.db.access]
26.10.2.4
Remote time zone database support
[time.zone.db.remote]
26.10.3
Exception classes
[time.zone.exception]
26.10.3.1
Class
nonexistent_local_time
[time.zone.exception.nonexist]
26.10.3.2
Class
ambiguous_local_time
[time.zone.exception.ambig]
26.10.4
Information classes
[time.zone.info]
26.10.4.1
Class
sys_info
[time.zone.info.sys]
26.10.4.2
Class
local_info
[time.zone.info.local]
26.10.5
Class
time_zone
[time.zone.timezone]
26.10.5.1
Overview
[time.zone.overview]
26.10.5.2
Member functions
[time.zone.members]
26.10.5.3
Non-member functions
[time.zone.nonmembers]
26.10.6
Class template
zoned_traits
[time.zone.zonedtraits]
26.10.7
Class template
zoned_time
[time.zone.zonedtime]
26.10.7.1
Overview
[time.zone.zonedtime.overview]
26.10.7.2
Constructors
[time.zone.zonedtime.ctor]
26.10.7.3
Member functions
[time.zone.zonedtime.members]
26.10.7.4
Non-member functions
[time.zone.zonedtime.nonmembers]
26.10.8
Class
leap
[time.zone.leap]
26.10.8.1
Overview
[time.zone.leap.overview]
26.10.8.2
Member functions
[time.zone.leap.members]
26.10.8.3
Non-member functions
[time.zone.leap.nonmembers]
26.10.9
Class
link
[time.zone.link]
26.10.9.1
Overview
[time.zone.link.overview]
26.10.9.2
Member functions
[time.zone.link.members]
26.10.9.3
Non-member functions
[time.zone.link.nonmembers]
26.11
Formatting
[time.format]
26.12
Parsing
[time.parse]
26.13
Header
<ctime>
synopsis
[ctime.syn]
27
Localization library
[localization]
[localization]
27.1
General
[localization.general]
27.2
Header
<locale>
synopsis
[locale.syn]
27.3
Locales
[locales]
27.3.1
Class
locale
[locale]
27.3.1.1
Types
[locale.types]
27.3.1.1.1
Type
locale::category
[locale.category]
27.3.1.1.2
Class
locale::facet
[locale.facet]
27.3.1.1.3
Class
locale::id
[locale.id]
27.3.1.2
Constructors and destructor
[locale.cons]
27.3.1.3
Members
[locale.members]
27.3.1.4
Operators
[locale.operators]
27.3.1.5
Static members
[locale.statics]
27.3.2
locale
globals
[locale.global.templates]
27.3.3
Convenience interfaces
[locale.convenience]
27.3.3.1
Character classification
[classification]
27.3.3.2
Conversions
[conversions]
27.3.3.2.1
Character conversions
[conversions.character]
27.4
Standard
locale
categories
[locale.categories]
27.4.1
The
ctype
category
[category.ctype]
27.4.1.1
Class template
ctype
[locale.ctype]
27.4.1.1.1
ctype
members
[locale.ctype.members]
27.4.1.1.2
ctype
virtual functions
[locale.ctype.virtuals]
27.4.1.2
Class template
ctype_byname
[locale.ctype.byname]
27.4.1.3
ctype<char>
specialization
[facet.ctype.special]
27.4.1.3.1
Destructor
[facet.ctype.char.dtor]
27.4.1.3.2
Members
[facet.ctype.char.members]
27.4.1.3.3
Static members
[facet.ctype.char.statics]
27.4.1.3.4
Virtual functions
[facet.ctype.char.virtuals]
27.4.1.4
Class template
codecvt
[locale.codecvt]
27.4.1.4.1
Members
[locale.codecvt.members]
27.4.1.4.2
Virtual functions
[locale.codecvt.virtuals]
27.4.1.5
Class template
codecvt_byname
[locale.codecvt.byname]
27.4.2
The numeric category
[category.numeric]
27.4.2.1
Class template
num_get
[locale.num.get]
27.4.2.1.1
Members
[facet.num.get.members]
27.4.2.1.2
Virtual functions
[facet.num.get.virtuals]
27.4.2.2
Class template
num_put
[locale.nm.put]
27.4.2.2.1
Members
[facet.num.put.members]
27.4.2.2.2
Virtual functions
[facet.num.put.virtuals]
27.4.3
The numeric punctuation facet
[facet.numpunct]
27.4.3.1
Class template
numpunct
[locale.numpunct]
27.4.3.1.1
Members
[facet.numpunct.members]
27.4.3.1.2
Virtual functions
[facet.numpunct.virtuals]
27.4.3.2
Class template
numpunct_byname
[locale.numpunct.byname]
27.4.4
The collate category
[category.collate]
27.4.4.1
Class template
collate
[locale.collate]
27.4.4.1.1
Members
[locale.collate.members]
27.4.4.1.2
Virtual functions
[locale.collate.virtuals]
27.4.4.2
Class template
collate_byname
[locale.collate.byname]
27.4.5
The time category
[category.time]
27.4.5.1
Class template
time_get
[locale.time.get]
27.4.5.1.1
Members
[locale.time.get.members]
27.4.5.1.2
Virtual functions
[locale.time.get.virtuals]
27.4.5.2
Class template
time_get_byname
[locale.time.get.byname]
27.4.5.3
Class template
time_put
[locale.time.put]
27.4.5.3.1
Members
[locale.time.put.members]
27.4.5.3.2
Virtual functions
[locale.time.put.virtuals]
27.4.5.4
Class template
time_put_byname
[locale.time.put.byname]
27.4.6
The monetary category
[category.monetary]
27.4.6.1
Class template
money_get
[locale.money.get]
27.4.6.1.1
Members
[locale.money.get.members]
27.4.6.1.2
Virtual functions
[locale.money.get.virtuals]
27.4.6.2
Class template
money_put
[locale.money.put]
27.4.6.2.1
Members
[locale.money.put.members]
27.4.6.2.2
Virtual functions
[locale.money.put.virtuals]
27.4.6.3
Class template
moneypunct
[locale.moneypunct]
27.4.6.3.1
Members
[locale.moneypunct.members]
27.4.6.3.2
Virtual functions
[locale.moneypunct.virtuals]
27.4.6.4
Class template
moneypunct_byname
[locale.moneypunct.byname]
27.4.7
The message retrieval category
[category.messages]
27.4.7.1
Class template
messages
[locale.messages]
27.4.7.1.1
Members
[locale.messages.members]
27.4.7.1.2
Virtual functions
[locale.messages.virtuals]
27.4.7.2
Class template
messages_byname
[locale.messages.byname]
27.5
C library locales
[c.locales]
27.5.1
Header
<clocale>
synopsis
[clocale.syn]
28
Input/output library
[input.output]
[input.output]
28.1
General
[input.output.general]
28.2
Iostreams requirements
[iostreams.requirements]
28.2.1
Imbue limitations
[iostream.limits.imbue]
28.2.2
Positioning type limitations
[iostreams.limits.pos]
28.2.3
Thread safety
[iostreams.threadsafety]
28.3
Forward declarations
[iostream.forward]
28.3.1
Header
<iosfwd>
synopsis
[iosfwd.syn]
28.3.2
Overview
[iostream.forward.overview]
28.4
Standard iostream objects
[iostream.objects]
28.4.1
Header
<iostream>
synopsis
[iostream.syn]
28.4.2
Overview
[iostream.objects.overview]
28.4.3
Narrow stream objects
[narrow.stream.objects]
28.4.4
Wide stream objects
[wide.stream.objects]
28.5
Iostreams base classes
[iostreams.base]
28.5.1
Header
<ios>
synopsis
[ios.syn]
28.5.2
Types
[stream.types]
28.5.3
Class
ios_base
[ios.base]
28.5.3.1
Types
[ios.types]
28.5.3.1.1
Class
ios_base::failure
[ios.failure]
28.5.3.1.2
Type
ios_base::fmtflags
[ios.fmtflags]
28.5.3.1.3
Type
ios_base::iostate
[ios.iostate]
28.5.3.1.4
Type
ios_base::openmode
[ios.openmode]
28.5.3.1.5
Type
ios_base::seekdir
[ios.seekdir]
28.5.3.1.6
Class
ios_base::Init
[ios.init]
28.5.3.2
State functions
[fmtflags.state]
28.5.3.3
Functions
[ios.base.locales]
28.5.3.4
Static members
[ios.members.static]
28.5.3.5
Storage functions
[ios.base.storage]
28.5.3.6
Callbacks
[ios.base.callback]
28.5.3.7
Constructors and destructor
[ios.base.cons]
28.5.4
Class template
fpos
[fpos]
28.5.4.1
Members
[fpos.members]
28.5.4.2
Requirements
[fpos.operations]
28.5.5
Class template
basic_ios
[ios]
28.5.5.1
Overview
[ios.overview]
28.5.5.2
Constructors
[basic.ios.cons]
28.5.5.3
Member functions
[basic.ios.members]
28.5.5.4
Flags functions
[iostate.flags]
28.5.6
ios_base
manipulators
[std.ios.manip]
28.5.6.1
fmtflags
manipulators
[fmtflags.manip]
28.5.6.2
adjustfield
manipulators
[adjustfield.manip]
28.5.6.3
basefield
manipulators
[basefield.manip]
28.5.6.4
floatfield
manipulators
[floatfield.manip]
28.5.7
Error reporting
[error.reporting]
28.6
Stream buffers
[stream.buffers]
28.6.1
Header
<streambuf>
synopsis
[streambuf.syn]
28.6.2
Stream buffer requirements
[streambuf.reqts]
28.6.3
Class template
basic_streambuf
[streambuf]
28.6.3.1
Constructors
[streambuf.cons]
28.6.3.2
Public member functions
[streambuf.members]
28.6.3.2.1
Locales
[streambuf.locales]
28.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
28.6.3.2.3
Get area
[streambuf.pub.get]
28.6.3.2.4
Putback
[streambuf.pub.pback]
28.6.3.2.5
Put area
[streambuf.pub.put]
28.6.3.3
Protected member functions
[streambuf.protected]
28.6.3.3.1
Assignment
[streambuf.assign]
28.6.3.3.2
Get area access
[streambuf.get.area]
28.6.3.3.3
Put area access
[streambuf.put.area]
28.6.3.4
Virtual functions
[streambuf.virtuals]
28.6.3.4.1
Locales
[streambuf.virt.locales]
28.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
28.6.3.4.3
Get area
[streambuf.virt.get]
28.6.3.4.4
Putback
[streambuf.virt.pback]
28.6.3.4.5
Put area
[streambuf.virt.put]
28.7
Formatting and manipulators
[iostream.format]
28.7.1
Header
<istream>
synopsis
[istream.syn]
28.7.2
Header
<ostream>
synopsis
[ostream.syn]
28.7.3
Header
<iomanip>
synopsis
[iomanip.syn]
28.7.4
Input streams
[input.streams]
28.7.4.1
Class template
basic_istream
[istream]
28.7.4.1.1
Constructors
[istream.cons]
28.7.4.1.2
Assignment and swap
[istream.assign]
28.7.4.1.3
Class
basic_istream::sentry
[istream.sentry]
28.7.4.2
Formatted input functions
[istream.formatted]
28.7.4.2.1
Common requirements
[istream.formatted.reqmts]
28.7.4.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
28.7.4.2.3
basic_istream::operator>>
[istream.extractors]
28.7.4.3
Unformatted input functions
[istream.unformatted]
28.7.4.4
Standard
basic_istream
manipulators
[istream.manip]
28.7.4.5
Rvalue stream extraction
[istream.rvalue]
28.7.4.6
Class template
basic_iostream
[iostreamclass]
28.7.4.6.1
Constructors
[iostream.cons]
28.7.4.6.2
Destructor
[iostream.dest]
28.7.4.6.3
Assignment and swap
[iostream.assign]
28.7.5
Output streams
[output.streams]
28.7.5.1
Class template
basic_ostream
[ostream]
28.7.5.1.1
Constructors
[ostream.cons]
28.7.5.1.2
Assignment and swap
[ostream.assign]
28.7.5.1.3
Class
basic_ostream::sentry
[ostream.sentry]
28.7.5.1.4
Seek members
[ostream.seeks]
28.7.5.2
Formatted output functions
[ostream.formatted]
28.7.5.2.1
Common requirements
[ostream.formatted.reqmts]
28.7.5.2.2
Arithmetic inserters
[ostream.inserters.arithmetic]
28.7.5.2.3
basic_ostream::operator<<
[ostream.inserters]
28.7.5.2.4
Character inserter function templates
[ostream.inserters.character]
28.7.5.3
Unformatted output functions
[ostream.unformatted]
28.7.5.4
Standard manipulators
[ostream.manip]
28.7.5.5
Rvalue stream insertion
[ostream.rvalue]
28.7.6
Standard manipulators
[std.manip]
28.7.7
Extended manipulators
[ext.manip]
28.7.8
Quoted manipulators
[quoted.manip]
28.8
String-based streams
[string.streams]
28.8.1
Header
<sstream>
synopsis
[sstream.syn]
28.8.2
Class template
basic_stringbuf
[stringbuf]
28.8.2.1
Constructors
[stringbuf.cons]
28.8.2.2
Assignment and swap
[stringbuf.assign]
28.8.2.3
Member functions
[stringbuf.members]
28.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
28.8.3
Class template
basic_istringstream
[istringstream]
28.8.3.1
Constructors
[istringstream.cons]
28.8.3.2
Assignment and swap
[istringstream.assign]
28.8.3.3
Member functions
[istringstream.members]
28.8.4
Class template
basic_ostringstream
[ostringstream]
28.8.4.1
Constructors
[ostringstream.cons]
28.8.4.2
Assignment and swap
[ostringstream.assign]
28.8.4.3
Member functions
[ostringstream.members]
28.8.5
Class template
basic_stringstream
[stringstream]
28.8.5.1
Constructors
[stringstream.cons]
28.8.5.2
Assignment and swap
[stringstream.assign]
28.8.5.3
Member functions
[stringstream.members]
28.9
File-based streams
[file.streams]
28.9.1
Header
<fstream>
synopsis
[fstream.syn]
28.9.2
Class template
basic_filebuf
[filebuf]
28.9.2.1
Constructors
[filebuf.cons]
28.9.2.2
Assignment and swap
[filebuf.assign]
28.9.2.3
Member functions
[filebuf.members]
28.9.2.4
Overridden virtual functions
[filebuf.virtuals]
28.9.3
Class template
basic_ifstream
[ifstream]
28.9.3.1
Constructors
[ifstream.cons]
28.9.3.2
Assignment and swap
[ifstream.assign]
28.9.3.3
Member functions
[ifstream.members]
28.9.4
Class template
basic_ofstream
[ofstream]
28.9.4.1
Constructors
[ofstream.cons]
28.9.4.2
Assignment and swap
[ofstream.assign]
28.9.4.3
Member functions
[ofstream.members]
28.9.5
Class template
basic_fstream
[fstream]
28.9.5.1
Constructors
[fstream.cons]
28.9.5.2
Assignment and swap
[fstream.assign]
28.9.5.3
Member functions
[fstream.members]
28.10
Synchronized output streams
[syncstream]
28.10.1
Header
<syncstream>
synopsis
[syncstream.syn]
28.10.2
Class template
basic_syncbuf
[syncstream.syncbuf]
28.10.2.1
Overview
[syncstream.syncbuf.overview]
28.10.2.2
Construction and destruction
[syncstream.syncbuf.cons]
28.10.2.3
Assignment and swap
[syncstream.syncbuf.assign]
28.10.2.4
Member functions
[syncstream.syncbuf.members]
28.10.2.5
Overridden virtual functions
[syncstream.syncbuf.virtuals]
28.10.2.6
Specialized algorithms
[syncstream.syncbuf.special]
28.10.3
Class template
basic_osyncstream
[syncstream.osyncstream]
28.10.3.1
Overview
[syncstream.osyncstream.overview]
28.10.3.2
Construction and destruction
[syncstream.osyncstream.cons]
28.10.3.3
Assignment
[syncstream.osyncstream.assign]
28.10.3.4
Member functions
[syncstream.osyncstream.members]
28.11
File systems
[filesystems]
28.11.1
General
[fs.general]
28.11.2
Conformance
[fs.conformance]
28.11.2.1
POSIX conformance
[fs.conform.9945]
28.11.2.2
Operating system dependent behavior conformance
[fs.conform.os]
28.11.2.3
File system race behavior
[fs.race.behavior]
28.11.3
Normative references
[fs.norm.ref]
28.11.4
Requirements
[fs.req]
28.11.4.1
Namespaces and headers
[fs.req.namespace]
28.11.5
Header
<filesystem>
synopsis
[fs.filesystem.syn]
28.11.6
Error reporting
[fs.err.report]
28.11.7
Class
path
[fs.class.path]
28.11.7.1
Generic pathname format
[fs.path.generic]
28.11.7.2
Conversions
[fs.path.cvt]
28.11.7.2.1
Argument format conversions
[fs.path.fmt.cvt]
28.11.7.2.2
Type and encoding conversions
[fs.path.type.cvt]
28.11.7.3
Requirements
[fs.path.req]
28.11.7.4
Members
[fs.path.member]
28.11.7.4.1
Constructors
[fs.path.construct]
28.11.7.4.2
Assignments
[fs.path.assign]
28.11.7.4.3
Appends
[fs.path.append]
28.11.7.4.4
Concatenation
[fs.path.concat]
28.11.7.4.5
Modifiers
[fs.path.modifiers]
28.11.7.4.6
Native format observers
[fs.path.native.obs]
28.11.7.4.7
Generic format observers
[fs.path.generic.obs]
28.11.7.4.8
Compare
[fs.path.compare]
28.11.7.4.9
Decomposition
[fs.path.decompose]
28.11.7.4.10
Query
[fs.path.query]
28.11.7.4.11
Generation
[fs.path.gen]
28.11.7.5
Iterators
[fs.path.itr]
28.11.7.6
Inserter and extractor
[fs.path.io]
28.11.7.7
Non-member functions
[fs.path.nonmember]
28.11.8
Class
filesystem_error
[fs.class.filesystem_error]
28.11.8.1
Members
[fs.filesystem_error.members]
28.11.9
Enumerations
[fs.enum]
28.11.9.1
Enum
path::format
[fs.enum.path.format]
28.11.9.2
Enum class
file_type
[fs.enum.file_type]
28.11.9.3
Enum class
copy_options
[fs.enum.copy.opts]
28.11.9.4
Enum class
perms
[fs.enum.perms]
28.11.9.5
Enum class
perm_options
[fs.enum.perm.opts]
28.11.9.6
Enum class
directory_options
[fs.enum.dir.opts]
28.11.10
Class
file_status
[fs.class.file_status]
28.11.10.1
Constructors
[fs.file_status.cons]
28.11.10.2
Observers
[fs.file_status.obs]
28.11.10.3
Modifiers
[fs.file_status.mods]
28.11.11
Class
directory_entry
[fs.class.directory_entry]
28.11.11.1
Constructors
[fs.dir.entry.cons]
28.11.11.2
Modifiers
[fs.dir.entry.mods]
28.11.11.3
Observers
[fs.dir.entry.obs]
28.11.12
Class
directory_iterator
[fs.class.directory_iterator]
28.11.12.1
Members
[fs.dir.itr.members]
28.11.12.2
Non-member functions
[fs.dir.itr.nonmembers]
28.11.13
Class
recursive_directory_iterator
[fs.class.rec.dir.itr]
28.11.13.1
Members
[fs.rec.dir.itr.members]
28.11.13.2
Non-member functions
[fs.rec.dir.itr.nonmembers]
28.11.14
Filesystem operation functions
[fs.op.funcs]
28.11.14.1
Absolute
[fs.op.absolute]
28.11.14.2
Canonical
[fs.op.canonical]
28.11.14.3
Copy
[fs.op.copy]
28.11.14.4
Copy file
[fs.op.copy_file]
28.11.14.5
Copy symlink
[fs.op.copy_symlink]
28.11.14.6
Create directories
[fs.op.create_directories]
28.11.14.7
Create directory
[fs.op.create_directory]
28.11.14.8
Create directory symlink
[fs.op.create_dir_symlk]
28.11.14.9
Create hard link
[fs.op.create_hard_lk]
28.11.14.10
Create symlink
[fs.op.create_symlink]
28.11.14.11
Current path
[fs.op.current_path]
28.11.14.12
Equivalent
[fs.op.equivalent]
28.11.14.13
Exists
[fs.op.exists]
28.11.14.14
File size
[fs.op.file_size]
28.11.14.15
Hard link count
[fs.op.hard_lk_ct]
28.11.14.16
Is block file
[fs.op.is_block_file]
28.11.14.17
Is character file
[fs.op.is_char_file]
28.11.14.18
Is directory
[fs.op.is_directory]
28.11.14.19
Is empty
[fs.op.is_empty]
28.11.14.20
Is fifo
[fs.op.is_fifo]
28.11.14.21
Is other
[fs.op.is_other]
28.11.14.22
Is regular file
[fs.op.is_regular_file]
28.11.14.23
Is socket
[fs.op.is_socket]
28.11.14.24
Is symlink
[fs.op.is_symlink]
28.11.14.25
Last write time
[fs.op.last_write_time]
28.11.14.26
Permissions
[fs.op.permissions]
28.11.14.27
Proximate
[fs.op.proximate]
28.11.14.28
Read symlink
[fs.op.read_symlink]
28.11.14.29
Relative
[fs.op.relative]
28.11.14.30
Remove
[fs.op.remove]
28.11.14.31
Remove all
[fs.op.remove_all]
28.11.14.32
Rename
[fs.op.rename]
28.11.14.33
Resize file
[fs.op.resize_file]
28.11.14.34
Space
[fs.op.space]
28.11.14.35
Status
[fs.op.status]
28.11.14.36
Status known
[fs.op.status_known]
28.11.14.37
Symlink status
[fs.op.symlink_status]
28.11.14.38
Temporary directory path
[fs.op.temp_dir_path]
28.11.14.39
Weakly canonical
[fs.op.weakly_canonical]
28.12
C library files
[c.files]
28.12.1
Header
<cstdio>
synopsis
[cstdio.syn]
28.12.2
Header
<cinttypes>
synopsis
[cinttypes.syn]
29
Regular expressions library
[re]
[re]
29.1
General
[re.general]
29.2
Definitions
[re.def]
29.3
Requirements
[re.req]
29.4
Header
<regex>
synopsis
[re.syn]
29.5
Namespace
std::regex_constants
[re.const]
29.5.1
Bitmask type
syntax_option_type
[re.synopt]
29.5.2
Bitmask type
match_flag_type
[re.matchflag]
29.5.3
Implementation-defined
error_type
[re.err]
29.6
Class
regex_error
[re.badexp]
29.7
Class template
regex_traits
[re.traits]
29.8
Class template
basic_regex
[re.regex]
29.8.1
Constructors
[re.regex.construct]
29.8.2
Assignment
[re.regex.assign]
29.8.3
Constant operations
[re.regex.operations]
29.8.4
Locale
[re.regex.locale]
29.8.5
Swap
[re.regex.swap]
29.8.6
Non-member functions
[re.regex.nonmemb]
29.9
Class template
sub_match
[re.submatch]
29.9.1
Members
[re.submatch.members]
29.9.2
Non-member operators
[re.submatch.op]
29.10
Class template
match_results
[re.results]
29.10.1
Constructors
[re.results.const]
29.10.2
State
[re.results.state]
29.10.3
Size
[re.results.size]
29.10.4
Element access
[re.results.acc]
29.10.5
Formatting
[re.results.form]
29.10.6
Allocator
[re.results.all]
29.10.7
Swap
[re.results.swap]
29.10.8
Non-member functions
[re.results.nonmember]
29.11
Regular expression algorithms
[re.alg]
29.11.1
Exceptions
[re.except]
29.11.2
regex_match
[re.alg.match]
29.11.3
regex_search
[re.alg.search]
29.11.4
regex_replace
[re.alg.replace]
29.12
Regular expression iterators
[re.iter]
29.12.1
Class template
regex_iterator
[re.regiter]
29.12.1.1
Constructors
[re.regiter.cnstr]
29.12.1.2
Comparisons
[re.regiter.comp]
29.12.1.3
Indirection
[re.regiter.deref]
29.12.1.4
Increment
[re.regiter.incr]
29.12.2
Class template
regex_token_iterator
[re.tokiter]
29.12.2.1
Constructors
[re.tokiter.cnstr]
29.12.2.2
Comparisons
[re.tokiter.comp]
29.12.2.3
Indirection
[re.tokiter.deref]
29.12.2.4
Increment
[re.tokiter.incr]
29.13
Modified ECMAScript regular expression grammar
[re.grammar]
30
Atomic operations library
[atomics]
[atomics]
30.1
General
[atomics.general]
30.2
Header
<atomic>
synopsis
[atomics.syn]
30.3
Type aliases
[atomics.alias]
30.4
Order and consistency
[atomics.order]
30.5
Lock-free property
[atomics.lockfree]
30.6
Class template
atomic_ref
[atomics.ref.generic]
30.6.1
Operations
[atomics.ref.operations]
30.6.2
Specializations for integral types
[atomics.ref.int]
30.6.3
Specializations for floating-point types
[atomics.ref.float]
30.6.4
Partial specialization for pointers
[atomics.ref.pointer]
30.6.5
Member operators common to integers and pointers to objects
[atomics.ref.memop]
30.7
Class template
atomic
[atomics.types.generic]
30.7.1
Operations on atomic types
[atomics.types.operations]
30.7.2
Specializations for integers
[atomics.types.int]
30.7.3
Specializations for floating-point types
[atomics.types.float]
30.7.4
Partial specialization for pointers
[atomics.types.pointer]
30.7.5
Member operators common to integers and pointers to objects
[atomics.types.memop]
30.8
Non-member functions
[atomics.nonmembers]
30.9
Flag type and operations
[atomics.flag]
30.10
Fences
[atomics.fences]
31
Thread support library
[thread]
[thread]
31.1
General
[thread.general]
31.2
Requirements
[thread.req]
31.2.1
Template parameter names
[thread.req.paramname]
31.2.2
Exceptions
[thread.req.exception]
31.2.3
Native handles
[thread.req.native]
31.2.4
Timing specifications
[thread.req.timing]
31.2.5
Requirements for
Cpp17Lockable
types
[thread.req.lockable]
31.2.5.1
In general
[thread.req.lockable.general]
31.2.5.2
Cpp17BasicLockable
requirements
[thread.req.lockable.basic]
31.2.5.3
Cpp17Lockable
requirements
[thread.req.lockable.req]
31.2.5.4
Cpp17TimedLockable
requirements
[thread.req.lockable.timed]
31.3
Threads
[thread.threads]
31.3.1
Header
<thread>
synopsis
[thread.syn]
31.3.2
Class
thread
[thread.thread.class]
31.3.2.1
Class
thread::id
[thread.thread.id]
31.3.2.2
Constructors
[thread.thread.constr]
31.3.2.3
Destructor
[thread.thread.destr]
31.3.2.4
Assignment
[thread.thread.assign]
31.3.2.5
Members
[thread.thread.member]
31.3.2.6
Static members
[thread.thread.static]
31.3.2.7
Specialized algorithms
[thread.thread.algorithm]
31.3.3
Namespace
this_thread
[thread.thread.this]
31.4
Mutual exclusion
[thread.mutex]
31.4.1
Header
<mutex>
synopsis
[mutex.syn]
31.4.2
Header
<shared_mutex>
synopsis
[shared_mutex.syn]
31.4.3
Mutex requirements
[thread.mutex.requirements]
31.4.3.1
In general
[thread.mutex.requirements.general]
31.4.3.2
Mutex types
[thread.mutex.requirements.mutex]
31.4.3.2.1
Class
mutex
[thread.mutex.class]
31.4.3.2.2
Class
recursive_mutex
[thread.mutex.recursive]
31.4.3.3
Timed mutex types
[thread.timedmutex.requirements]
31.4.3.3.1
Class
timed_mutex
[thread.timedmutex.class]
31.4.3.3.2
Class
recursive_timed_mutex
[thread.timedmutex.recursive]
31.4.3.4
Shared mutex types
[thread.sharedmutex.requirements]
31.4.3.4.1
Class
shared_mutex
[thread.sharedmutex.class]
31.4.3.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
31.4.3.5.1
Class
shared_timed_mutex
[thread.sharedtimedmutex.class]
31.4.4
Locks
[thread.lock]
31.4.4.1
Class template
lock_guard
[thread.lock.guard]
31.4.4.2
Class template
scoped_lock
[thread.lock.scoped]
31.4.4.3
Class template
unique_lock
[thread.lock.unique]
31.4.4.3.1
Constructors, destructor, and assignment
[thread.lock.unique.cons]
31.4.4.3.2
Locking
[thread.lock.unique.locking]
31.4.4.3.3
Modifiers
[thread.lock.unique.mod]
31.4.4.3.4
Observers
[thread.lock.unique.obs]
31.4.4.4
Class template
shared_lock
[thread.lock.shared]
31.4.4.4.1
Constructors, destructor, and assignment
[thread.lock.shared.cons]
31.4.4.4.2
Locking
[thread.lock.shared.locking]
31.4.4.4.3
Modifiers
[thread.lock.shared.mod]
31.4.4.4.4
Observers
[thread.lock.shared.obs]
31.4.5
Generic locking algorithms
[thread.lock.algorithm]
31.4.6
Call once
[thread.once]
31.4.6.1
Struct
once_flag
[thread.once.onceflag]
31.4.6.2
Function
call_once
[thread.once.callonce]
31.5
Condition variables
[thread.condition]
31.5.1
Header
<condition_variable>
synopsis
[condition_variable.syn]
31.5.2
Non-member functions
[thread.condition.nonmember]
31.5.3
Class
condition_variable
[thread.condition.condvar]
31.5.4
Class
condition_variable_any
[thread.condition.condvarany]
31.6
Futures
[futures]
31.6.1
Overview
[futures.overview]
31.6.2
Header
<future>
synopsis
[future.syn]
31.6.3
Error handling
[futures.errors]
31.6.4
Class
future_error
[futures.future_error]
31.6.5
Shared state
[futures.state]
31.6.6
Class template
promise
[futures.promise]
31.6.7
Class template
future
[futures.unique_future]
31.6.8
Class template
shared_future
[futures.shared_future]
31.6.9
Function template
async
[futures.async]
31.6.10
Class template
packaged_task
[futures.task]
31.6.10.1
Member functions
[futures.task.members]
31.6.10.2
Globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basics
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Classes
[gram.class]
A.8
Overloading
[gram.over]
A.9
Templates
[gram.temp]
A.10
Exception handling
[gram.except]
A.11
Preprocessing directives
[gram.cpp]
Annex B (informative)
Implementation quantities
[implimits]
[implimits]
Annex C (informative)
Compatibility
[diff]
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
[lex]
: lexical conventions
[diff.lex]
C.1.2
[basic]
: basics
[diff.basic]
C.1.3
[expr]
: expressions
[diff.expr]
C.1.4
[stmt.stmt]
: statements
[diff.stat]
C.1.5
[dcl.dcl]
: declarations
[diff.dcl]
C.1.6
[class]
: classes
[diff.class]
C.1.7
[cpp]
: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
[lex]
: lexical conventions
[diff.cpp03.lex]
C.2.2
[expr]
: expressions
[diff.cpp03.expr]
C.2.3
[dcl.dcl]
: declarations
[diff.cpp03.dcl.dcl]
C.2.4
[class]
: classes
[diff.cpp03.class]
C.2.5
[temp]
: templates
[diff.cpp03.temp]
C.2.6
[library]
: library introduction
[diff.cpp03.library]
C.2.7
[language.support]
: language support library
[diff.cpp03.language.support]
C.2.8
[diagnostics]
: diagnostics library
[diff.cpp03.diagnostics]
C.2.9
[utilities]
: general utilities library
[diff.cpp03.utilities]
C.2.10
[strings]
: strings library
[diff.cpp03.strings]
C.2.11
[containers]
: containers library
[diff.cpp03.containers]
C.2.12
[algorithms]
: algorithms library
[diff.cpp03.algorithms]
C.2.13
[numerics]
: numerics library
[diff.cpp03.numerics]
C.2.14
[input.output]
: input/output library
[diff.cpp03.input.output]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
[lex]
: lexical conventions
[diff.cpp11.lex]
C.3.2
[basic]
: basics
[diff.cpp11.basic]
C.3.3
[expr]
: expressions
[diff.cpp11.expr]
C.3.4
[dcl.dcl]
: declarations
[diff.cpp11.dcl.dcl]
C.3.5
[library]
: library introduction
[diff.cpp11.library]
C.3.6
[input.output]
: input/output library
[diff.cpp11.input.output]
C.4
C++ and ISO C++ 2014
[diff.cpp14]
C.4.1
[lex]
: lexical conventions
[diff.cpp14.lex]
C.4.2
[expr]
: expressions
[diff.cpp14.expr]
C.4.3
[dcl.dcl]
: declarations
[diff.cpp14.dcl.dcl]
C.4.4
[class]
: classes
[diff.cpp14.class]
C.4.5
[temp]
: templates
[diff.cpp14.temp]
C.4.6
[except]
: exception handling
[diff.cpp14.except]
C.4.7
[library]
: library introduction
[diff.cpp14.library]
C.4.8
[utilities]
: general utilities library
[diff.cpp14.utilities]
C.4.9
[strings]
: strings library
[diff.cpp14.string]
C.4.10
[containers]
: containers library
[diff.cpp14.containers]
C.4.11
[depr]
: compatibility features
[diff.cpp14.depr]
C.5
C++ and ISO C++ 2017
[diff.cpp17]
C.5.1
[lex]
: lexical conventions
[diff.cpp17.lex]
C.5.2
[basic]
: basics
[diff.cpp17.basic]
C.5.3
[expr]
: expressions
[diff.cpp17.expr]
C.5.4
[dcl.dcl]
: declarations
[diff.cpp17.dcl.dcl]
C.5.5
[class]
: classes
[diff.cpp17.class]
C.5.6
[temp]
: templates
[diff.cpp17.temp]
C.5.7
[except]
: exception handling
[diff.cpp17.except]
C.5.8
[library]
: library introduction
[diff.cpp17.library]
C.5.9
[containers]
: containers library
[diff.cpp17.containers]
C.5.10
[algorithms]
: algorithms library
[diff.cpp17.alg.reqs]
C.5.11
[input.output]
: input/output library
[diff.cpp17.input.output]
C.5.12
[depr]
: compatibility features
[diff.cpp17.depr]
C.6
C standard library
[diff.library]
C.6.1
Modifications to headers
[diff.mods.to.headers]
C.6.2
Modifications to definitions
[diff.mods.to.definitions]
C.6.2.1
Types
char16_t
and
char32_t
[diff.char16]
C.6.2.2
Type
wchar_t
[diff.wchar.t]
C.6.2.3
Header
<assert.h>
[diff.header.assert.h]
C.6.2.4
Header
<iso646.h>
[diff.header.iso646.h]
C.6.2.5
Header
<stdalign.h>
[diff.header.stdalign.h]
C.6.2.6
Header
<stdbool.h>
[diff.header.stdbool.h]
C.6.2.7
Macro
NULL
[diff.null]
C.6.3
Modifications to declarations
[diff.mods.to.declarations]
C.6.4
Modifications to behavior
[diff.mods.to.behavior]
C.6.4.1
Macro
offsetof(
type
,
member-designator
)
[diff.offsetof]
C.6.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
[depr]
D.1
Arithmetic conversion on enumerations
[depr.arith.conv.enum]
D.2
Implicit capture of
*this
by reference
[depr.capture.this]
D.3
Array comparisons
[depr.array.comp]
D.4
Redeclaration of
static constexpr
data members
[depr.static_constexpr]
D.5
Implicit declaration of copy functions
[depr.impldec]
D.6
C standard library headers
[depr.c.headers]
D.6.1
Header
<complex.h>
synopsis
[depr.complex.h.syn]
D.6.2
Header
<iso646.h>
synopsis
[depr.iso646.h.syn]
D.6.3
Header
<stdalign.h>
synopsis
[depr.stdalign.h.syn]
D.6.4
Header
<stdbool.h>
synopsis
[depr.stdbool.h.syn]
D.6.5
Header
<tgmath.h>
synopsis
[depr.tgmath.h.syn]
D.6.6
Other C headers
[depr.c.headers.other]
D.7
Relational operators
[depr.relops]
D.8
char*
streams
[depr.str.strstreams]
D.8.1
Header
<strstream>
synopsis
[depr.strstream.syn]
D.8.2
Class
strstreambuf
[depr.strstreambuf]
D.8.2.1
strstreambuf
constructors
[depr.strstreambuf.cons]
D.8.2.2
Member functions
[depr.strstreambuf.members]
D.8.2.3
strstreambuf
overridden virtual functions
[depr.strstreambuf.virtuals]
D.8.3
Class
istrstream
[depr.istrstream]
D.8.3.1
istrstream
constructors
[depr.istrstream.cons]
D.8.3.2
Member functions
[depr.istrstream.members]
D.8.4
Class
ostrstream
[depr.ostrstream]
D.8.4.1
ostrstream
constructors
[depr.ostrstream.cons]
D.8.4.2
Member functions
[depr.ostrstream.members]
D.8.5
Class
strstream
[depr.strstream]
D.8.5.1
strstream
constructors
[depr.strstream.cons]
D.8.5.2
strstream
destructor
[depr.strstream.dest]
D.8.5.3
strstream
operations
[depr.strstream.oper]
D.9
Deprecated type traits
[depr.meta.types]
D.10
Deprecated iterator primitives
[depr.iterator.primitives]
D.10.1
Basic iterator
[depr.iterator.basic]
D.11
Deprecated
shared_ptr
atomic access
[depr.util.smartptr.shared.atomic]
D.12
Deprecated
basic_string
capacity
[depr.string.capacity]
D.13
Deprecated standard code conversion facets
[depr.locale.stdcvt]
D.13.1
Header
<codecvt>
synopsis
[depr.codecvt.syn]
D.13.2
Requirements
[depr.locale.stdcvt.req]
D.14
Deprecated convenience conversion interfaces
[depr.conversions]
D.14.1
Class template
wstring_convert
[depr.conversions.string]
D.14.2
Class template
wbuffer_convert
[depr.conversions.buffer]
D.15
Deprecated locale category facets
[depr.locale.category]
D.16
Deprecated filesystem path factory functions
[depr.fs.path.factory]
Index
Index of library headers
Index of library names
Index of implementation-defined behavior