Working Draft
Programming Languages — C++
(Generated on 2024-02-11 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
General
[intro.
compliance.
general]
4.1.2
Abstract machine
[intro.
abstract]
4.2
Structure of this document
[intro.
structure]
4.3
Syntax notation
[syntax]
5
Lexical conventions
[lex]
[lex]
5.1
Separate translation
[lex.
separate]
5.2
Phases of translation
[lex.
phases]
5.3
Character sets
[lex.
charset]
5.4
Preprocessing tokens
[lex.
pptoken]
5.5
Alternative tokens
[lex.
digraph]
5.6
Tokens
[lex.
token]
5.7
Comments
[lex.
comment]
5.8
Header names
[lex.
header]
5.9
Preprocessing numbers
[lex.
ppnumber]
5.10
Identifiers
[lex.
name]
5.11
Keywords
[lex.
key]
5.12
Operators and punctuators
[lex.
operators]
5.13
Literals
[lex.
literal]
5.13.1
Kinds of literals
[lex.
literal.
kinds]
5.13.2
Integer literals
[lex.
icon]
5.13.3
Character literals
[lex.
ccon]
5.13.4
Floating-point literals
[lex.
fcon]
5.13.5
String literals
[lex.
string]
5.13.6
Boolean literals
[lex.
bool]
5.13.7
Pointer literals
[lex.
nullptr]
5.13.8
User-defined literals
[lex.
ext]
6
Basics
[basic]
[basic]
6.1
Preamble
[basic.
pre]
6.2
Declarations and definitions
[basic.
def]
6.3
One-definition rule
[basic.
def.
odr]
6.4
Scope
[basic.
scope]
6.4.1
General
[basic.
scope.
scope]
6.4.2
Point of declaration
[basic.
scope.
pdecl]
6.4.3
Block scope
[basic.
scope.
block]
6.4.4
Function parameter scope
[basic.
scope.
param]
6.4.5
Lambda scope
[basic.
scope.
lambda]
6.4.6
Namespace scope
[basic.
scope.
namespace]
6.4.7
Class scope
[basic.
scope.
class]
6.4.8
Enumeration scope
[basic.
scope.
enum]
6.4.9
Template parameter scope
[basic.
scope.
temp]
6.5
Name lookup
[basic.
lookup]
6.5.1
General
[basic.
lookup.
general]
6.5.2
Member name lookup
[class.
member.
lookup]
6.5.3
Unqualified name lookup
[basic.
lookup.
unqual]
6.5.4
Argument-dependent name lookup
[basic.
lookup.
argdep]
6.5.5
Qualified name lookup
[basic.
lookup.
qual]
6.5.5.1
General
[basic.
lookup.
qual.
general]
6.5.5.2
Class members
[class.
qual]
6.5.5.3
Namespace members
[namespace.
qual]
6.5.6
Elaborated type specifiers
[basic.
lookup.
elab]
6.5.7
Using-directives and namespace aliases
[basic.
lookup.
udir]
6.6
Program and linkage
[basic.
link]
6.7
Memory and objects
[basic.
memobj]
6.7.1
Memory model
[intro.
memory]
6.7.2
Object model
[intro.
object]
6.7.3
Lifetime
[basic.
life]
6.7.4
Indeterminate values
[basic.
indet]
6.7.5
Storage duration
[basic.
stc]
6.7.5.1
General
[basic.
stc.
general]
6.7.5.2
Static storage duration
[basic.
stc.
static]
6.7.5.3
Thread storage duration
[basic.
stc.
thread]
6.7.5.4
Automatic storage duration
[basic.
stc.
auto]
6.7.5.5
Dynamic storage duration
[basic.
stc.
dynamic]
6.7.5.5.1
General
[basic.
stc.
dynamic.
general]
6.7.5.5.2
Allocation functions
[basic.
stc.
dynamic.
allocation]
6.7.5.5.3
Deallocation functions
[basic.
stc.
dynamic.
deallocation]
6.7.5.6
Duration of subobjects
[basic.
stc.
inherit]
6.7.6
Alignment
[basic.
align]
6.7.7
Temporary objects
[class.
temporary]
6.8
Types
[basic.
types]
6.8.1
General
[basic.
types.
general]
6.8.2
Fundamental types
[basic.
fundamental]
6.8.3
Optional extended floating-point types
[basic.
extended.
fp]
6.8.4
Compound types
[basic.
compound]
6.8.5
CV-qualifiers
[basic.
type.
qualifier]
6.8.6
Conversion ranks
[conv.
rank]
6.9
Program execution
[basic.
exec]
6.9.1
Sequential execution
[intro.
execution]
6.9.2
Multi-threaded executions and data races
[intro.
multithread]
6.9.2.1
General
[intro.
multithread.
general]
6.9.2.2
Data races
[intro.
races]
6.9.2.3
Forward progress
[intro.
progress]
6.9.3
Start and termination
[basic.
start]
6.9.3.1
main
function
[basic.
start.
main]
6.9.3.2
Static initialization
[basic.
start.
static]
6.9.3.3
Dynamic initialization of non-block variables
[basic.
start.
dynamic]
6.9.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
General
[conv.
general]
7.3.2
Lvalue-to-rvalue conversion
[conv.
lval]
7.3.3
Array-to-pointer conversion
[conv.
array]
7.3.4
Function-to-pointer conversion
[conv.
func]
7.3.5
Temporary materialization conversion
[conv.
rval]
7.3.6
Qualification conversions
[conv.
qual]
7.3.7
Integral promotions
[conv.
prom]
7.3.8
Floating-point promotion
[conv.
fpprom]
7.3.9
Integral conversions
[conv.
integral]
7.3.10
Floating-point conversions
[conv.
double]
7.3.11
Floating-integral conversions
[conv.
fpint]
7.3.12
Pointer conversions
[conv.
ptr]
7.3.13
Pointer-to-member conversions
[conv.
mem]
7.3.14
Function pointer conversions
[conv.
fctptr]
7.3.15
Boolean conversions
[conv.
bool]
7.4
Usual arithmetic conversions
[expr.
arith.
conv]
7.5
Primary expressions
[expr.
prim]
7.5.1
Literals
[expr.
prim.
literal]
7.5.2
This
[expr.
prim.
this]
7.5.3
Parentheses
[expr.
prim.
paren]
7.5.4
Names
[expr.
prim.
id]
7.5.4.1
General
[expr.
prim.
id.
general]
7.5.4.2
Unqualified names
[expr.
prim.
id.
unqual]
7.5.4.3
Qualified names
[expr.
prim.
id.
qual]
7.5.4.4
Destruction
[expr.
prim.
id.
dtor]
7.5.5
Lambda expressions
[expr.
prim.
lambda]
7.5.5.1
General
[expr.
prim.
lambda.
general]
7.5.5.2
Closure types
[expr.
prim.
lambda.
closure]
7.5.5.3
Captures
[expr.
prim.
lambda.
capture]
7.5.6
Fold expressions
[expr.
prim.
fold]
7.5.7
Requires expressions
[expr.
prim.
req]
7.5.7.1
General
[expr.
prim.
req.
general]
7.5.7.2
Simple requirements
[expr.
prim.
req.
simple]
7.5.7.3
Type requirements
[expr.
prim.
req.
type]
7.5.7.4
Compound requirements
[expr.
prim.
req.
compound]
7.5.7.5
Nested requirements
[expr.
prim.
req.
nested]
7.6
Compound expressions
[expr.
compound]
7.6.1
Postfix expressions
[expr.
post]
7.6.1.1
General
[expr.
post.
general]
7.6.1.2
Subscripting
[expr.
sub]
7.6.1.3
Function call
[expr.
call]
7.6.1.4
Explicit type conversion (functional notation)
[expr.
type.
conv]
7.6.1.5
Class member access
[expr.
ref]
7.6.1.6
Increment and decrement
[expr.
post.
incr]
7.6.1.7
Dynamic cast
[expr.
dynamic.
cast]
7.6.1.8
Type identification
[expr.
typeid]
7.6.1.9
Static cast
[expr.
static.
cast]
7.6.1.10
Reinterpret cast
[expr.
reinterpret.
cast]
7.6.1.11
Const cast
[expr.
const.
cast]
7.6.2
Unary expressions
[expr.
unary]
7.6.2.1
General
[expr.
unary.
general]
7.6.2.2
Unary operators
[expr.
unary.
op]
7.6.2.3
Increment and decrement
[expr.
pre.
incr]
7.6.2.4
Await
[expr.
await]
7.6.2.5
Sizeof
[expr.
sizeof]
7.6.2.6
Alignof
[expr.
alignof]
7.6.2.7
noexcept
operator
[expr.
unary.
noexcept]
7.6.2.8
New
[expr.
new]
7.6.2.9
Delete
[expr.
delete]
7.6.3
Explicit type conversion (cast notation)
[expr.
cast]
7.6.4
Pointer-to-member operators
[expr.
mptr.
oper]
7.6.5
Multiplicative operators
[expr.
mul]
7.6.6
Additive operators
[expr.
add]
7.6.7
Shift operators
[expr.
shift]
7.6.8
Three-way comparison operator
[expr.
spaceship]
7.6.9
Relational operators
[expr.
rel]
7.6.10
Equality operators
[expr.
eq]
7.6.11
Bitwise AND operator
[expr.
bit.
and]
7.6.12
Bitwise exclusive OR operator
[expr.
xor]
7.6.13
Bitwise inclusive OR operator
[expr.
or]
7.6.14
Logical AND operator
[expr.
log.
and]
7.6.15
Logical OR operator
[expr.
log.
or]
7.6.16
Conditional operator
[expr.
cond]
7.6.17
Yielding a value
[expr.
yield]
7.6.18
Throwing an exception
[expr.
throw]
7.6.19
Assignment and compound assignment operators
[expr.
ass]
7.6.20
Comma operator
[expr.
comma]
7.7
Constant expressions
[expr.
const]
8
Statements
[stmt.stmt]
[stmt.
stmt]
8.1
Preamble
[stmt.
pre]
8.2
Label
[stmt.
label]
8.3
Expression statement
[stmt.
expr]
8.4
Compound statement or block
[stmt.
block]
8.5
Selection statements
[stmt.
select]
8.5.1
General
[stmt.
select.
general]
8.5.2
The
if
statement
[stmt.
if]
8.5.3
The
switch
statement
[stmt.
switch]
8.6
Iteration statements
[stmt.
iter]
8.6.1
General
[stmt.
iter.
general]
8.6.2
The
while
statement
[stmt.
while]
8.6.3
The
do
statement
[stmt.
do]
8.6.4
The
for
statement
[stmt.
for]
8.6.5
The range-based
for
statement
[stmt.
ranged]
8.7
Jump statements
[stmt.
jump]
8.7.1
General
[stmt.
jump.
general]
8.7.2
The
break
statement
[stmt.
break]
8.7.3
The
continue
statement
[stmt.
cont]
8.7.4
The
return
statement
[stmt.
return]
8.7.5
The
co_
return
statement
[stmt.
return.
coroutine]
8.7.6
The
goto
statement
[stmt.
goto]
8.8
Declaration statement
[stmt.
dcl]
8.9
Ambiguity resolution
[stmt.
ambig]
9
Declarations
[dcl.dcl]
[dcl.
dcl]
9.1
Preamble
[dcl.
pre]
9.2
Specifiers
[dcl.
spec]
9.2.1
General
[dcl.
spec.
general]
9.2.2
Storage class specifiers
[dcl.
stc]
9.2.3
Function specifiers
[dcl.
fct.
spec]
9.2.4
The
typedef
specifier
[dcl.
typedef]
9.2.5
The
friend
specifier
[dcl.
friend]
9.2.6
The
constexpr
and
consteval
specifiers
[dcl.
constexpr]
9.2.7
The
constinit
specifier
[dcl.
constinit]
9.2.8
The
inline
specifier
[dcl.
inline]
9.2.9
Type specifiers
[dcl.
type]
9.2.9.1
General
[dcl.
type.
general]
9.2.9.2
The
cv-qualifier
s
[dcl.
type.
cv]
9.2.9.3
Simple type specifiers
[dcl.
type.
simple]
9.2.9.4
Elaborated type specifiers
[dcl.
type.
elab]
9.2.9.5
Decltype specifiers
[dcl.
type.
decltype]
9.2.9.6
Placeholder type specifiers
[dcl.
spec.
auto]
9.2.9.6.1
General
[dcl.
spec.
auto.
general]
9.2.9.6.2
Placeholder type deduction
[dcl.
type.
auto.
deduct]
9.2.9.7
Deduced class template specialization types
[dcl.
type.
class.
deduct]
9.3
Declarators
[dcl.
decl]
9.3.1
General
[dcl.
decl.
general]
9.3.2
Type names
[dcl.
name]
9.3.3
Ambiguity resolution
[dcl.
ambig.
res]
9.3.4
Meaning of declarators
[dcl.
meaning]
9.3.4.1
General
[dcl.
meaning.
general]
9.3.4.2
Pointers
[dcl.
ptr]
9.3.4.3
References
[dcl.
ref]
9.3.4.4
Pointers to members
[dcl.
mptr]
9.3.4.5
Arrays
[dcl.
array]
9.3.4.6
Functions
[dcl.
fct]
9.3.4.7
Default arguments
[dcl.
fct.
default]
9.4
Initializers
[dcl.
init]
9.4.1
General
[dcl.
init.
general]
9.4.2
Aggregates
[dcl.
init.
aggr]
9.4.3
Character arrays
[dcl.
init.
string]
9.4.4
References
[dcl.
init.
ref]
9.4.5
List-initialization
[dcl.
init.
list]
9.5
Function definitions
[dcl.
fct.
def]
9.5.1
In general
[dcl.
fct.
def.
general]
9.5.2
Explicitly-defaulted functions
[dcl.
fct.
def.
default]
9.5.3
Deleted definitions
[dcl.
fct.
def.
delete]
9.5.4
Coroutine definitions
[dcl.
fct.
def.
coroutine]
9.6
Structured binding declarations
[dcl.
struct.
bind]
9.7
Enumerations
[enum]
9.7.1
Enumeration declarations
[dcl.
enum]
9.7.2
The
using enum
declaration
[enum.
udecl]
9.8
Namespaces
[basic.
namespace]
9.8.1
General
[basic.
namespace.
general]
9.8.2
Namespace definition
[namespace.
def]
9.8.2.1
General
[namespace.
def.
general]
9.8.2.2
Unnamed namespaces
[namespace.
unnamed]
9.8.3
Namespace alias
[namespace.
alias]
9.8.4
Using namespace directive
[namespace.
udir]
9.9
The
using
declaration
[namespace.
udecl]
9.10
The
asm
declaration
[dcl.
asm]
9.11
Linkage specifications
[dcl.
link]
9.12
Attributes
[dcl.
attr]
9.12.1
Attribute syntax and semantics
[dcl.
attr.
grammar]
9.12.2
Alignment specifier
[dcl.
align]
9.12.3
Assumption attribute
[dcl.
attr.
assume]
9.12.4
Carries dependency attribute
[dcl.
attr.
depend]
9.12.5
Deprecated attribute
[dcl.
attr.
deprecated]
9.12.6
Fallthrough attribute
[dcl.
attr.
fallthrough]
9.12.7
Likelihood attributes
[dcl.
attr.
likelihood]
9.12.8
Maybe unused attribute
[dcl.
attr.
unused]
9.12.9
Nodiscard attribute
[dcl.
attr.
nodiscard]
9.12.10
Noreturn attribute
[dcl.
attr.
noreturn]
9.12.11
No unique address attribute
[dcl.
attr.
nouniqueaddr]
10
Modules
[module]
[module]
10.1
Module units and purviews
[module.
unit]
10.2
Export declaration
[module.
interface]
10.3
Import declaration
[module.
import]
10.4
Global module fragment
[module.
global.
frag]
10.5
Private module fragment
[module.
private.
frag]
10.6
Instantiation context
[module.
context]
10.7
Reachability
[module.
reach]
11
Classes
[class]
[class]
11.1
Preamble
[class.
pre]
11.2
Properties of classes
[class.
prop]
11.3
Class names
[class.
name]
11.4
Class members
[class.
mem]
11.4.1
General
[class.
mem.
general]
11.4.2
Member functions
[class.
mfct]
11.4.3
Non-static member functions
[class.
mfct.
non.
static]
11.4.4
Special member functions
[special]
11.4.5
Constructors
[class.
ctor]
11.4.5.1
General
[class.
ctor.
general]
11.4.5.2
Default constructors
[class.
default.
ctor]
11.4.5.3
Copy/move constructors
[class.
copy.
ctor]
11.4.6
Copy/move assignment operator
[class.
copy.
assign]
11.4.7
Destructors
[class.
dtor]
11.4.8
Conversions
[class.
conv]
11.4.8.1
General
[class.
conv.
general]
11.4.8.2
Conversion by constructor
[class.
conv.
ctor]
11.4.8.3
Conversion functions
[class.
conv.
fct]
11.4.9
Static members
[class.
static]
11.4.9.1
General
[class.
static.
general]
11.4.9.2
Static member functions
[class.
static.
mfct]
11.4.9.3
Static data members
[class.
static.
data]
11.4.10
Bit-fields
[class.
bit]
11.4.11
Allocation and deallocation functions
[class.
free]
11.4.12
Nested class declarations
[class.
nest]
11.5
Unions
[class.
union]
11.5.1
General
[class.
union.
general]
11.5.2
Anonymous unions
[class.
union.
anon]
11.6
Local class declarations
[class.
local]
11.7
Derived classes
[class.
derived]
11.7.1
General
[class.
derived.
general]
11.7.2
Multiple base classes
[class.
mi]
11.7.3
Virtual functions
[class.
virtual]
11.7.4
Abstract classes
[class.
abstract]
11.8
Member access control
[class.
access]
11.8.1
General
[class.
access.
general]
11.8.2
Access specifiers
[class.
access.
spec]
11.8.3
Accessibility of base classes and base class members
[class.
access.
base]
11.8.4
Friends
[class.
friend]
11.8.5
Protected member access
[class.
protected]
11.8.6
Access to virtual functions
[class.
access.
virt]
11.8.7
Multiple access
[class.
paths]
11.8.8
Nested classes
[class.
access.
nest]
11.9
Initialization
[class.
init]
11.9.1
General
[class.
init.
general]
11.9.2
Explicit initialization
[class.
expl.
init]
11.9.3
Initializing bases and members
[class.
base.
init]
11.9.4
Initialization by inherited constructor
[class.
inhctor.
init]
11.9.5
Construction and destruction
[class.
cdtor]
11.9.6
Copy/move elision
[class.
copy.
elision]
11.10
Comparisons
[class.
compare]
11.10.1
Defaulted comparison operator functions
[class.
compare.
default]
11.10.2
Equality operator
[class.
eq]
11.10.3
Three-way comparison
[class.
spaceship]
11.10.4
Secondary comparison operators
[class.
compare.
secondary]
12
Overloading
[over]
[over]
12.1
Preamble
[over.
pre]
12.2
Overload resolution
[over.
match]
12.2.1
General
[over.
match.
general]
12.2.2
Candidate functions and argument lists
[over.
match.
funcs]
12.2.2.1
General
[over.
match.
funcs.
general]
12.2.2.2
Function call syntax
[over.
match.
call]
12.2.2.2.1
General
[over.
match.
call.
general]
12.2.2.2.2
Call to named function
[over.
call.
func]
12.2.2.2.3
Call to object of class type
[over.
call.
object]
12.2.2.3
Operators in expressions
[over.
match.
oper]
12.2.2.4
Initialization by constructor
[over.
match.
ctor]
12.2.2.5
Copy-initialization of class by user-defined conversion
[over.
match.
copy]
12.2.2.6
Initialization by conversion function
[over.
match.
conv]
12.2.2.7
Initialization by conversion function for direct reference binding
[over.
match.
ref]
12.2.2.8
Initialization by list-initialization
[over.
match.
list]
12.2.2.9
Class template argument deduction
[over.
match.
class.
deduct]
12.2.3
Viable functions
[over.
match.
viable]
12.2.4
Best viable function
[over.
match.
best]
12.2.4.1
General
[over.
match.
best.
general]
12.2.4.2
Implicit conversion sequences
[over.
best.
ics]
12.2.4.2.1
General
[over.
best.
ics.
general]
12.2.4.2.2
Standard conversion sequences
[over.
ics.
scs]
12.2.4.2.3
User-defined conversion sequences
[over.
ics.
user]
12.2.4.2.4
Ellipsis conversion sequences
[over.
ics.
ellipsis]
12.2.4.2.5
Reference binding
[over.
ics.
ref]
12.2.4.2.6
List-initialization sequence
[over.
ics.
list]
12.2.4.3
Ranking implicit conversion sequences
[over.
ics.
rank]
12.3
Address of an overload set
[over.
over]
12.4
Overloaded operators
[over.
oper]
12.4.1
General
[over.
oper.
general]
12.4.2
Unary operators
[over.
unary]
12.4.3
Binary operators
[over.
binary]
12.4.3.1
General
[over.
binary.
general]
12.4.3.2
Simple assignment
[over.
ass]
12.4.4
Function call
[over.
call]
12.4.5
Subscripting
[over.
sub]
12.4.6
Class member access
[over.
ref]
12.4.7
Increment and decrement
[over.
inc]
12.5
Built-in operators
[over.
built]
12.6
User-defined literals
[over.
literal]
13
Templates
[temp]
[temp]
13.1
Preamble
[temp.
pre]
13.2
Template parameters
[temp.
param]
13.3
Names of template specializations
[temp.
names]
13.4
Template arguments
[temp.
arg]
13.4.1
General
[temp.
arg.
general]
13.4.2
Template type arguments
[temp.
arg.
type]
13.4.3
Template non-type arguments
[temp.
arg.
nontype]
13.4.4
Template template arguments
[temp.
arg.
template]
13.5
Template constraints
[temp.
constr]
13.5.1
General
[temp.
constr.
general]
13.5.2
Constraints
[temp.
constr.
constr]
13.5.2.1
General
[temp.
constr.
constr.
general]
13.5.2.2
Logical operations
[temp.
constr.
op]
13.5.2.3
Atomic constraints
[temp.
constr.
atomic]
13.5.3
Constrained declarations
[temp.
constr.
decl]
13.5.4
Constraint normalization
[temp.
constr.
normal]
13.5.5
Partial ordering by constraints
[temp.
constr.
order]
13.6
Type equivalence
[temp.
type]
13.7
Template declarations
[temp.
decls]
13.7.1
General
[temp.
decls.
general]
13.7.2
Class templates
[temp.
class]
13.7.2.1
General
[temp.
class.
general]
13.7.2.2
Member functions of class templates
[temp.
mem.
func]
13.7.2.3
Deduction guides
[temp.
deduct.
guide]
13.7.2.4
Member classes of class templates
[temp.
mem.
class]
13.7.2.5
Static data members of class templates
[temp.
static]
13.7.2.6
Enumeration members of class templates
[temp.
mem.
enum]
13.7.3
Member templates
[temp.
mem]
13.7.4
Variadic templates
[temp.
variadic]
13.7.5
Friends
[temp.
friend]
13.7.6
Partial specialization
[temp.
spec.
partial]
13.7.6.1
General
[temp.
spec.
partial.
general]
13.7.6.2
Matching of partial specializations
[temp.
spec.
partial.
match]
13.7.6.3
Partial ordering of partial specializations
[temp.
spec.
partial.
order]
13.7.6.4
Members of class template partial specializations
[temp.
spec.
partial.
member]
13.7.7
Function templates
[temp.
fct]
13.7.7.1
General
[temp.
fct.
general]
13.7.7.2
Function template overloading
[temp.
over.
link]
13.7.7.3
Partial ordering of function templates
[temp.
func.
order]
13.7.8
Alias templates
[temp.
alias]
13.7.9
Concept definitions
[temp.
concept]
13.8
Name resolution
[temp.
res]
13.8.1
General
[temp.
res.
general]
13.8.2
Locally declared names
[temp.
local]
13.8.3
Dependent names
[temp.
dep]
13.8.3.1
General
[temp.
dep.
general]
13.8.3.2
Dependent types
[temp.
dep.
type]
13.8.3.3
Type-dependent expressions
[temp.
dep.
expr]
13.8.3.4
Value-dependent expressions
[temp.
dep.
constexpr]
13.8.3.5
Dependent template arguments
[temp.
dep.
temp]
13.8.4
Dependent name resolution
[temp.
dep.
res]
13.8.4.1
Point of instantiation
[temp.
point]
13.8.4.2
Candidate functions
[temp.
dep.
candidate]
13.9
Template instantiation and specialization
[temp.
spec]
13.9.1
General
[temp.
spec.
general]
13.9.2
Implicit instantiation
[temp.
inst]
13.9.3
Explicit instantiation
[temp.
explicit]
13.9.4
Explicit specialization
[temp.
expl.
spec]
13.10
Function template specializations
[temp.
fct.
spec]
13.10.1
General
[temp.
fct.
spec.
general]
13.10.2
Explicit template argument specification
[temp.
arg.
explicit]
13.10.3
Template argument deduction
[temp.
deduct]
13.10.3.1
General
[temp.
deduct.
general]
13.10.3.2
Deducing template arguments from a function call
[temp.
deduct.
call]
13.10.3.3
Deducing template arguments taking the address of a function template
[temp.
deduct.
funcaddr]
13.10.3.4
Deducing conversion function template arguments
[temp.
deduct.
conv]
13.10.3.5
Deducing template arguments during partial ordering
[temp.
deduct.
partial]
13.10.3.6
Deducing template arguments from a type
[temp.
deduct.
type]
13.10.3.7
Deducing template arguments from a function declaration
[temp.
deduct.
decl]
13.10.4
Overload resolution
[temp.
over]
14
Exception handling
[except]
[except]
14.1
Preamble
[except.
pre]
14.2
Throwing an exception
[except.
throw]
14.3
Constructors and destructors
[except.
ctor]
14.4
Handling an exception
[except.
handle]
14.5
Exception specifications
[except.
spec]
14.6
Special functions
[except.
special]
14.6.1
General
[except.
special.
general]
14.6.2
The
std::terminate
function
[except.
terminate]
14.6.3
The
std::uncaught_
exceptions
function
[except.
uncaught]
15
Preprocessing directives
[cpp]
[cpp]
15.1
Preamble
[cpp.
pre]
15.2
Conditional inclusion
[cpp.
cond]
15.3
Source file inclusion
[cpp.
include]
15.4
Module directive
[cpp.
module]
15.5
Header unit importation
[cpp.
import]
15.6
Macro replacement
[cpp.
replace]
15.6.1
General
[cpp.
replace.
general]
15.6.2
Argument substitution
[cpp.
subst]
15.6.3
The
#
operator
[cpp.
stringize]
15.6.4
The
##
operator
[cpp.
concat]
15.6.5
Rescanning and further replacement
[cpp.
rescan]
15.6.6
Scope of macro definitions
[cpp.
scope]
15.7
Line control
[cpp.
line]
15.8
Diagnostic directives
[cpp.
error]
15.9
Pragma directive
[cpp.
pragma]
15.10
Null directive
[cpp.
null]
15.11
Predefined macro names
[cpp.
predefined]
15.12
Pragma operator
[cpp.
pragma.
op]
16
Library introduction
[library]
[library]
16.1
General
[library.
general]
16.2
The C standard library
[library.
c]
16.3
Method of description
[description]
16.3.1
General
[description.
general]
16.3.2
Structure of each clause
[structure]
16.3.2.1
Elements
[structure.
elements]
16.3.2.2
Summary
[structure.
summary]
16.3.2.3
Requirements
[structure.
requirements]
16.3.2.4
Detailed specifications
[structure.
specifications]
16.3.2.5
C library
[structure.
see.
also]
16.3.3
Other conventions
[conventions]
16.3.3.1
General
[conventions.
general]
16.3.3.2
Exposition-only entities, etc.
[expos.
only.
entity]
16.3.3.3
Type descriptions
[type.
descriptions]
16.3.3.3.1
General
[type.
descriptions.
general]
16.3.3.3.2
Enumerated types
[enumerated.
types]
16.3.3.3.3
Bitmask types
[bitmask.
types]
16.3.3.3.4
Character sequences
[character.
seq]
16.3.3.3.4.1
General
[character.
seq.
general]
16.3.3.3.4.2
Byte strings
[byte.
strings]
16.3.3.3.4.3
Multibyte strings
[multibyte.
strings]
16.3.3.3.5
Customization Point Object types
[customization.
point.
object]
16.3.3.4
Functions within classes
[functions.
within.
classes]
16.3.3.5
Private members
[objects.
within.
classes]
16.3.3.6
Freestanding items
[freestanding.
item]
16.4
Library-wide requirements
[requirements]
16.4.1
General
[requirements.
general]
16.4.2
Library contents and organization
[organization]
16.4.2.1
General
[organization.
general]
16.4.2.2
Library contents
[contents]
16.4.2.3
Headers
[headers]
16.4.2.4
Modules
[std.
modules]
16.4.2.5
Freestanding implementations
[compliance]
16.4.3
Using the library
[using]
16.4.3.1
Overview
[using.
overview]
16.4.3.2
Headers
[using.
headers]
16.4.3.3
Linkage
[using.
linkage]
16.4.4
Requirements on types and expressions
[utility.
requirements]
16.4.4.1
General
[utility.
requirements.
general]
16.4.4.2
Template argument requirements
[utility.
arg.
requirements]
16.4.4.3
Swappable requirements
[swappable.
requirements]
16.4.4.4
Cpp17NullablePointer
requirements
[nullablepointer.
requirements]
16.4.4.5
Cpp17Hash
requirements
[hash.
requirements]
16.4.4.6
Cpp17Allocator
requirements
[allocator.
requirements]
16.4.4.6.1
General
[allocator.
requirements.
general]
16.4.4.6.2
Allocator completeness requirements
[allocator.
requirements.
completeness]
16.4.5
Constraints on programs
[constraints]
16.4.5.1
Overview
[constraints.
overview]
16.4.5.2
Namespace use
[namespace.
constraints]
16.4.5.2.1
Namespace
std
[namespace.
std]
16.4.5.2.2
Namespace
posix
[namespace.
posix]
16.4.5.2.3
Namespaces for future standardization
[namespace.
future]
16.4.5.3
Reserved names
[reserved.
names]
16.4.5.3.1
General
[reserved.
names.
general]
16.4.5.3.2
Zombie names
[zombie.
names]
16.4.5.3.3
Macro names
[macro.
names]
16.4.5.3.4
External linkage
[extern.
names]
16.4.5.3.5
Types
[extern.
types]
16.4.5.3.6
User-defined literal suffixes
[usrlit.
suffix]
16.4.5.4
Headers
[alt.
headers]
16.4.5.5
Derived classes
[derived.
classes]
16.4.5.6
Replacement functions
[replacement.
functions]
16.4.5.7
Handler functions
[handler.
functions]
16.4.5.8
Other functions
[res.
on.
functions]
16.4.5.9
Function arguments
[res.
on.
arguments]
16.4.5.10
Library object access
[res.
on.
objects]
16.4.5.11
Semantic requirements
[res.
on.
requirements]
16.4.6
Conforming implementations
[conforming]
16.4.6.1
Overview
[conforming.
overview]
16.4.6.2
Headers
[res.
on.
headers]
16.4.6.3
Restrictions on macro definitions
[res.
on.
macro.
definitions]
16.4.6.4
Non-member functions
[global.
functions]
16.4.6.5
Member functions
[member.
functions]
16.4.6.6
Friend functions
[hidden.
friends]
16.4.6.7
Constexpr functions and constructors
[constexpr.
functions]
16.4.6.8
Requirements for stable algorithms
[algorithm.
stable]
16.4.6.9
Reentrancy
[reentrancy]
16.4.6.10
Data race avoidance
[res.
on.
data.
races]
16.4.6.11
Protection within classes
[protection.
within.
classes]
16.4.6.12
Derived classes
[derivation]
16.4.6.13
Restrictions on exception handling
[res.
on.
exception.
handling]
16.4.6.14
Value of error codes
[value.
error.
codes]
16.4.6.15
Moved-from state of library types
[lib.
types.
movedfrom]
17
Language support library
[support]
[support]
17.1
General
[support.
general]
17.2
Common definitions
[support.
types]
17.2.1
Header
<cstddef>
synopsis
[cstddef.
syn]
17.2.2
Header
<cstdlib>
synopsis
[cstdlib.
syn]
17.2.3
Null pointers
[support.
types.
nullptr]
17.2.4
Sizes, alignments, and offsets
[support.
types.
layout]
17.2.5
byte
type operations
[support.
types.
byteops]
17.3
Implementation properties
[support.
limits]
17.3.1
General
[support.
limits.
general]
17.3.2
Header
<version>
synopsis
[version.
syn]
17.3.3
Header
<limits>
synopsis
[limits.
syn]
17.3.4
Enum
float_
round_
style
[round.
style]
17.3.5
Class template
numeric_
limits
[numeric.
limits]
17.3.5.1
General
[numeric.
limits.
general]
17.3.5.2
numeric_
limits
members
[numeric.
limits.
members]
17.3.5.3
numeric_
limits
specializations
[numeric.
special]
17.3.6
Header
<climits>
synopsis
[climits.
syn]
17.3.7
Header
<cfloat>
synopsis
[cfloat.
syn]
17.4
Arithmetic types
[support.
arith.
types]
17.4.1
Header
<cstdint>
synopsis
[cstdint.
syn]
17.4.2
Header
<stdfloat>
synopsis
[stdfloat.
syn]
17.5
Startup and termination
[support.
start.
term]
17.6
Dynamic memory management
[support.
dynamic]
17.6.1
General
[support.
dynamic.
general]
17.6.2
Header
<new>
synopsis
[new.
syn]
17.6.3
Storage allocation and deallocation
[new.
delete]
17.6.3.1
General
[new.
delete.
general]
17.6.3.2
Single-object forms
[new.
delete.
single]
17.6.3.3
Array forms
[new.
delete.
array]
17.6.3.4
Non-allocating forms
[new.
delete.
placement]
17.6.3.5
Data races
[new.
delete.
dataraces]
17.6.4
Storage allocation errors
[alloc.
errors]
17.6.4.1
Class
bad_
alloc
[bad.
alloc]
17.6.4.2
Class
bad_
array_
new_
length
[new.
badlength]
17.6.4.3
Type
new_
handler
[new.
handler]
17.6.4.4
set_
new_
handler
[set.
new.
handler]
17.6.4.5
get_
new_
handler
[get.
new.
handler]
17.6.5
Pointer optimization barrier
[ptr.
launder]
17.6.6
Hardware interference size
[hardware.
interference]
17.7
Type identification
[support.
rtti]
17.7.1
General
[support.
rtti.
general]
17.7.2
Header
<typeinfo>
synopsis
[typeinfo.
syn]
17.7.3
Class
type_
info
[type.
info]
17.7.4
Class
bad_
cast
[bad.
cast]
17.7.5
Class
bad_
typeid
[bad.
typeid]
17.8
Source location
[support.
srcloc]
17.8.1
Header
<source_
location>
synopsis
[source.
location.
syn]
17.8.2
Class
source_
location
[support.
srcloc.
class]
17.8.2.1
General
[support.
srcloc.
class.
general]
17.8.2.2
Creation
[support.
srcloc.
cons]
17.8.2.3
Observers
[support.
srcloc.
obs]
17.9
Exception handling
[support.
exception]
17.9.1
General
[support.
exception.
general]
17.9.2
Header
<exception>
synopsis
[exception.
syn]
17.9.3
Class
exception
[exception]
17.9.4
Class
bad_
exception
[bad.
exception]
17.9.5
Abnormal termination
[exception.
terminate]
17.9.5.1
Type
terminate_
handler
[terminate.
handler]
17.9.5.2
set_
terminate
[set.
terminate]
17.9.5.3
get_
terminate
[get.
terminate]
17.9.5.4
terminate
[terminate]
17.9.6
uncaught_
exceptions
[uncaught.
exceptions]
17.9.7
Exception propagation
[propagation]
17.9.8
nested_
exception
[except.
nested]
17.10
Initializer lists
[support.
initlist]
17.10.1
General
[support.
initlist.
general]
17.10.2
Header
<initializer_
list>
synopsis
[initializer.
list.
syn]
17.10.3
Initializer list constructors
[support.
initlist.
cons]
17.10.4
Initializer list access
[support.
initlist.
access]
17.10.5
Initializer list range access
[support.
initlist.
range]
17.11
Comparisons
[cmp]
17.11.1
Header
<compare>
synopsis
[compare.
syn]
17.11.2
Comparison category types
[cmp.
categories]
17.11.2.1
Preamble
[cmp.
categories.
pre]
17.11.2.2
Class
partial_
ordering
[cmp.
partialord]
17.11.2.3
Class
weak_
ordering
[cmp.
weakord]
17.11.2.4
Class
strong_
ordering
[cmp.
strongord]
17.11.3
Class template
common_
comparison_
category
[cmp.
common]
17.11.4
Concept
three_
way_
comparable
[cmp.
concept]
17.11.5
Result of three-way comparison
[cmp.
result]
17.11.6
Comparison algorithms
[cmp.
alg]
17.12
Coroutines
[support.
coroutine]
17.12.1
General
[support.
coroutine.
general]
17.12.2
Header
<coroutine>
synopsis
[coroutine.
syn]
17.12.3
Coroutine traits
[coroutine.
traits]
17.12.3.1
General
[coroutine.
traits.
general]
17.12.3.2
Class template
coroutine_
traits
[coroutine.
traits.
primary]
17.12.4
Class template
coroutine_
handle
[coroutine.
handle]
17.12.4.1
General
[coroutine.
handle.
general]
17.12.4.2
Construct/reset
[coroutine.
handle.
con]
17.12.4.3
Conversion
[coroutine.
handle.
conv]
17.12.4.4
Export/import
[coroutine.
handle.
export.
import]
17.12.4.5
Observers
[coroutine.
handle.
observers]
17.12.4.6
Resumption
[coroutine.
handle.
resumption]
17.12.4.7
Promise access
[coroutine.
handle.
promise]
17.12.4.8
Comparison operators
[coroutine.
handle.
compare]
17.12.4.9
Hash support
[coroutine.
handle.
hash]
17.12.5
No-op coroutines
[coroutine.
noop]
17.12.5.1
Class
noop_
coroutine_
promise
[coroutine.
promise.
noop]
17.12.5.2
Class
coroutine_
handle<noop_
coroutine_
promise>
[coroutine.
handle.
noop]
17.12.5.2.1
Conversion
[coroutine.
handle.
noop.
conv]
17.12.5.2.2
Observers
[coroutine.
handle.
noop.
observers]
17.12.5.2.3
Resumption
[coroutine.
handle.
noop.
resumption]
17.12.5.2.4
Promise access
[coroutine.
handle.
noop.
promise]
17.12.5.2.5
Address
[coroutine.
handle.
noop.
address]
17.12.5.3
Function
noop_
coroutine
[coroutine.
noop.
coroutine]
17.12.6
Trivial awaitables
[coroutine.
trivial.
awaitables]
17.13
Other runtime support
[support.
runtime]
17.13.1
General
[support.
runtime.
general]
17.13.2
Header
<cstdarg>
synopsis
[cstdarg.
syn]
17.13.3
Header
<csetjmp>
synopsis
[csetjmp.
syn]
17.13.4
Header
<csignal>
synopsis
[csignal.
syn]
17.13.5
Signal handlers
[support.
signal]
17.14
C headers
[support.
c.
headers]
17.14.1
General
[support.
c.
headers.
general]
17.14.2
Header
<complex.h>
synopsis
[complex.
h.
syn]
17.14.3
Header
<iso646.h>
synopsis
[iso646.
h.
syn]
17.14.4
Header
<stdalign.h>
synopsis
[stdalign.
h.
syn]
17.14.5
Header
<stdbool.h>
synopsis
[stdbool.
h.
syn]
17.14.6
Header
<tgmath.h>
synopsis
[tgmath.
h.
syn]
17.14.7
Other C headers
[support.
c.
headers.
other]
18
Concepts library
[concepts]
[concepts]
18.1
General
[concepts.
general]
18.2
Equality preservation
[concepts.
equality]
18.3
Header
<concepts>
synopsis
[concepts.
syn]
18.4
Language-related concepts
[concepts.
lang]
18.4.1
General
[concepts.
lang.
general]
18.4.2
Concept
same_
as
[concept.
same]
18.4.3
Concept
derived_
from
[concept.
derived]
18.4.4
Concept
convertible_
to
[concept.
convertible]
18.4.5
Concept
common_
reference_
with
[concept.
commonref]
18.4.6
Concept
common_
with
[concept.
common]
18.4.7
Arithmetic concepts
[concepts.
arithmetic]
18.4.8
Concept
assignable_
from
[concept.
assignable]
18.4.9
Concept
swappable
[concept.
swappable]
18.4.10
Concept
destructible
[concept.
destructible]
18.4.11
Concept
constructible_
from
[concept.
constructible]
18.4.12
Concept
default_
initializable
[concept.
default.
init]
18.4.13
Concept
move_
constructible
[concept.
moveconstructible]
18.4.14
Concept
copy_
constructible
[concept.
copyconstructible]
18.5
Comparison concepts
[concepts.
compare]
18.5.1
General
[concepts.
compare.
general]
18.5.2
Boolean testability
[concept.
booleantestable]
18.5.3
Comparison common types
[concept.
comparisoncommontype]
18.5.4
Concept
equality_
comparable
[concept.
equalitycomparable]
18.5.5
Concept
totally_
ordered
[concept.
totallyordered]
18.6
Object concepts
[concepts.
object]
18.7
Callable concepts
[concepts.
callable]
18.7.1
General
[concepts.
callable.
general]
18.7.2
Concept
invocable
[concept.
invocable]
18.7.3
Concept
regular_
invocable
[concept.
regularinvocable]
18.7.4
Concept
predicate
[concept.
predicate]
18.7.5
Concept
relation
[concept.
relation]
18.7.6
Concept
equivalence_
relation
[concept.
equiv]
18.7.7
Concept
strict_
weak_
order
[concept.
strictweakorder]
19
Diagnostics library
[diagnostics]
[diagnostics]
19.1
General
[diagnostics.
general]
19.2
Exception classes
[std.
exceptions]
19.2.1
General
[std.
exceptions.
general]
19.2.2
Header
<stdexcept>
synopsis
[stdexcept.
syn]
19.2.3
Class
logic_
error
[logic.
error]
19.2.4
Class
domain_
error
[domain.
error]
19.2.5
Class
invalid_
argument
[invalid.
argument]
19.2.6
Class
length_
error
[length.
error]
19.2.7
Class
out_
of_
range
[out.
of.
range]
19.2.8
Class
runtime_
error
[runtime.
error]
19.2.9
Class
range_
error
[range.
error]
19.2.10
Class
overflow_
error
[overflow.
error]
19.2.11
Class
underflow_
error
[underflow.
error]
19.3
Assertions
[assertions]
19.3.1
General
[assertions.
general]
19.3.2
Header
<cassert>
synopsis
[cassert.
syn]
19.3.3
The
assert
macro
[assertions.
assert]
19.4
Error numbers
[errno]
19.4.1
General
[errno.
general]
19.4.2
Header
<cerrno>
synopsis
[cerrno.
syn]
19.5
System error support
[syserr]
19.5.1
General
[syserr.
general]
19.5.2
Header
<system_
error>
synopsis
[system.
error.
syn]
19.5.3
Class
error_
category
[syserr.
errcat]
19.5.3.1
Overview
[syserr.
errcat.
overview]
19.5.3.2
Virtual members
[syserr.
errcat.
virtuals]
19.5.3.3
Non-virtual members
[syserr.
errcat.
nonvirtuals]
19.5.3.4
Program-defined classes derived from
error_
category
[syserr.
errcat.
derived]
19.5.3.5
Error category objects
[syserr.
errcat.
objects]
19.5.4
Class
error_
code
[syserr.
errcode]
19.5.4.1
Overview
[syserr.
errcode.
overview]
19.5.4.2
Constructors
[syserr.
errcode.
constructors]
19.5.4.3
Modifiers
[syserr.
errcode.
modifiers]
19.5.4.4
Observers
[syserr.
errcode.
observers]
19.5.4.5
Non-member functions
[syserr.
errcode.
nonmembers]
19.5.5
Class
error_
condition
[syserr.
errcondition]
19.5.5.1
Overview
[syserr.
errcondition.
overview]
19.5.5.2
Constructors
[syserr.
errcondition.
constructors]
19.5.5.3
Modifiers
[syserr.
errcondition.
modifiers]
19.5.5.4
Observers
[syserr.
errcondition.
observers]
19.5.5.5
Non-member functions
[syserr.
errcondition.
nonmembers]
19.5.6
Comparison operator functions
[syserr.
compare]
19.5.7
System error hash support
[syserr.
hash]
19.5.8
Class
system_
error
[syserr.
syserr]
19.5.8.1
Overview
[syserr.
syserr.
overview]
19.5.8.2
Members
[syserr.
syserr.
members]
19.6
Stacktrace
[stacktrace]
19.6.1
General
[stacktrace.
general]
19.6.2
Header
<stacktrace>
synopsis
[stacktrace.
syn]
19.6.3
Class
stacktrace_
entry
[stacktrace.
entry]
19.6.3.1
Overview
[stacktrace.
entry.
overview]
19.6.3.2
Constructors
[stacktrace.
entry.
cons]
19.6.3.3
Observers
[stacktrace.
entry.
obs]
19.6.3.4
Query
[stacktrace.
entry.
query]
19.6.3.5
Comparison
[stacktrace.
entry.
cmp]
19.6.4
Class template
basic_
stacktrace
[stacktrace.
basic]
19.6.4.1
Overview
[stacktrace.
basic.
overview]
19.6.4.2
Creation and assignment
[stacktrace.
basic.
cons]
19.6.4.3
Observers
[stacktrace.
basic.
obs]
19.6.4.4
Comparisons
[stacktrace.
basic.
cmp]
19.6.4.5
Modifiers
[stacktrace.
basic.
mod]
19.6.4.6
Non-member functions
[stacktrace.
basic.
nonmem]
19.6.4.7
Formatting support
[stacktrace.
format]
19.6.4.8
Hash support
[stacktrace.
basic.
hash]
20
Memory management library
[mem]
[mem]
20.1
General
[mem.
general]
20.2
Memory
[memory]
20.2.1
In general
[memory.
general]
20.2.2
Header
<memory>
synopsis
[memory.
syn]
20.2.3
Pointer traits
[pointer.
traits]
20.2.3.1
General
[pointer.
traits.
general]
20.2.3.2
Member types
[pointer.
traits.
types]
20.2.3.3
Member functions
[pointer.
traits.
functions]
20.2.3.4
Optional members
[pointer.
traits.
optmem]
20.2.4
Pointer conversion
[pointer.
conversion]
20.2.5
Pointer alignment
[ptr.
align]
20.2.6
Explicit lifetime management
[obj.
lifetime]
20.2.7
Allocator argument tag
[allocator.
tag]
20.2.8
uses_
allocator
[allocator.
uses]
20.2.8.1
uses_
allocator
trait
[allocator.
uses.
trait]
20.2.8.2
Uses-allocator construction
[allocator.
uses.
construction]
20.2.9
Allocator traits
[allocator.
traits]
20.2.9.1
General
[allocator.
traits.
general]
20.2.9.2
Member types
[allocator.
traits.
types]
20.2.9.3
Static member functions
[allocator.
traits.
members]
20.2.9.4
Other
[allocator.
traits.
other]
20.2.10
The default allocator
[default.
allocator]
20.2.10.1
General
[default.
allocator.
general]
20.2.10.2
Members
[allocator.
members]
20.2.10.3
Operators
[allocator.
globals]
20.2.11
addressof
[specialized.
addressof]
20.2.12
C library memory allocation
[c.
malloc]
20.3
Smart pointers
[smartptr]
20.3.1
Unique-ownership pointers
[unique.
ptr]
20.3.1.1
General
[unique.
ptr.
general]
20.3.1.2
Default deleters
[unique.
ptr.
dltr]
20.3.1.2.1
In general
[unique.
ptr.
dltr.
general]
20.3.1.2.2
default_
delete
[unique.
ptr.
dltr.
dflt]
20.3.1.2.3
default_
delete<T[]>
[unique.
ptr.
dltr.
dflt1]
20.3.1.3
unique_
ptr
for single objects
[unique.
ptr.
single]
20.3.1.3.1
General
[unique.
ptr.
single.
general]
20.3.1.3.2
Constructors
[unique.
ptr.
single.
ctor]
20.3.1.3.3
Destructor
[unique.
ptr.
single.
dtor]
20.3.1.3.4
Assignment
[unique.
ptr.
single.
asgn]
20.3.1.3.5
Observers
[unique.
ptr.
single.
observers]
20.3.1.3.6
Modifiers
[unique.
ptr.
single.
modifiers]
20.3.1.4
unique_
ptr
for array objects with a runtime length
[unique.
ptr.
runtime]
20.3.1.4.1
General
[unique.
ptr.
runtime.
general]
20.3.1.4.2
Constructors
[unique.
ptr.
runtime.
ctor]
20.3.1.4.3
Assignment
[unique.
ptr.
runtime.
asgn]
20.3.1.4.4
Observers
[unique.
ptr.
runtime.
observers]
20.3.1.4.5
Modifiers
[unique.
ptr.
runtime.
modifiers]
20.3.1.5
Creation
[unique.
ptr.
create]
20.3.1.6
Specialized algorithms
[unique.
ptr.
special]
20.3.1.7
I/O
[unique.
ptr.
io]
20.3.2
Shared-ownership pointers
[util.
sharedptr]
20.3.2.1
Class
bad_
weak_
ptr
[util.
smartptr.
weak.
bad]
20.3.2.2
Class template
shared_
ptr
[util.
smartptr.
shared]
20.3.2.2.1
General
[util.
smartptr.
shared.
general]
20.3.2.2.2
Constructors
[util.
smartptr.
shared.
const]
20.3.2.2.3
Destructor
[util.
smartptr.
shared.
dest]
20.3.2.2.4
Assignment
[util.
smartptr.
shared.
assign]
20.3.2.2.5
Modifiers
[util.
smartptr.
shared.
mod]
20.3.2.2.6
Observers
[util.
smartptr.
shared.
obs]
20.3.2.2.7
Creation
[util.
smartptr.
shared.
create]
20.3.2.2.8
Comparison
[util.
smartptr.
shared.
cmp]
20.3.2.2.9
Specialized algorithms
[util.
smartptr.
shared.
spec]
20.3.2.2.10
Casts
[util.
smartptr.
shared.
cast]
20.3.2.2.11
get_
deleter
[util.
smartptr.
getdeleter]
20.3.2.2.12
I/O
[util.
smartptr.
shared.
io]
20.3.2.3
Class template
weak_
ptr
[util.
smartptr.
weak]
20.3.2.3.1
General
[util.
smartptr.
weak.
general]
20.3.2.3.2
Constructors
[util.
smartptr.
weak.
const]
20.3.2.3.3
Destructor
[util.
smartptr.
weak.
dest]
20.3.2.3.4
Assignment
[util.
smartptr.
weak.
assign]
20.3.2.3.5
Modifiers
[util.
smartptr.
weak.
mod]
20.3.2.3.6
Observers
[util.
smartptr.
weak.
obs]
20.3.2.3.7
Specialized algorithms
[util.
smartptr.
weak.
spec]
20.3.2.4
Class template
owner_
less
[util.
smartptr.
ownerless]
20.3.2.5
Class template
enable_
shared_
from_
this
[util.
smartptr.
enab]
20.3.3
Smart pointer hash support
[util.
smartptr.
hash]
20.3.4
Smart pointer adaptors
[smartptr.
adapt]
20.3.4.1
Class template
out_
ptr_
t
[out.
ptr.
t]
20.3.4.2
Function template
out_
ptr
[out.
ptr]
20.3.4.3
Class template
inout_
ptr_
t
[inout.
ptr.
t]
20.3.4.4
Function template
inout_
ptr
[inout.
ptr]
20.4
Memory resources
[mem.
res]
20.4.1
Header
<memory_
resource>
synopsis
[mem.
res.
syn]
20.4.2
Class
memory_
resource
[mem.
res.
class]
20.4.2.1
General
[mem.
res.
class.
general]
20.4.2.2
Public member functions
[mem.
res.
public]
20.4.2.3
Private virtual member functions
[mem.
res.
private]
20.4.2.4
Equality
[mem.
res.
eq]
20.4.3
Class template
polymorphic_
allocator
[mem.
poly.
allocator.
class]
20.4.3.1
General
[mem.
poly.
allocator.
class.
general]
20.4.3.2
Constructors
[mem.
poly.
allocator.
ctor]
20.4.3.3
Member functions
[mem.
poly.
allocator.
mem]
20.4.3.4
Equality
[mem.
poly.
allocator.
eq]
20.4.4
Access to program-wide
memory_
resource
objects
[mem.
res.
global]
20.4.5
Pool resource classes
[mem.
res.
pool]
20.4.5.1
Classes
synchronized_
pool_
resource
and
unsynchronized_
pool_
resource
[mem.
res.
pool.
overview]
20.4.5.2
pool_
options
data members
[mem.
res.
pool.
options]
20.4.5.3
Constructors and destructors
[mem.
res.
pool.
ctor]
20.4.5.4
Members
[mem.
res.
pool.
mem]
20.4.6
Class
monotonic_
buffer_
resource
[mem.
res.
monotonic.
buffer]
20.4.6.1
General
[mem.
res.
monotonic.
buffer.
general]
20.4.6.2
Constructors and destructor
[mem.
res.
monotonic.
buffer.
ctor]
20.4.6.3
Members
[mem.
res.
monotonic.
buffer.
mem]
20.5
Class template
scoped_
allocator_
adaptor
[allocator.
adaptor]
20.5.1
Header
<scoped_
allocator>
synopsis
[allocator.
adaptor.
syn]
20.5.2
Member types
[allocator.
adaptor.
types]
20.5.3
Constructors
[allocator.
adaptor.
cnstr]
20.5.4
Members
[allocator.
adaptor.
members]
20.5.5
Operators
[scoped.
adaptor.
operators]
21
Metaprogramming library
[meta]
[meta]
21.1
General
[meta.
general]
21.2
Compile-time integer sequences
[intseq]
21.2.1
In general
[intseq.
general]
21.2.2
Class template
integer_
sequence
[intseq.
intseq]
21.2.3
Alias template
make_
integer_
sequence
[intseq.
make]
21.3
Metaprogramming and type traits
[type.
traits]
21.3.1
General
[type.
traits.
general]
21.3.2
Requirements
[meta.
rqmts]
21.3.3
Header
<type_
traits>
synopsis
[meta.
type.
synop]
21.3.4
Helper classes
[meta.
help]
21.3.5
Unary type traits
[meta.
unary]
21.3.5.1
General
[meta.
unary.
general]
21.3.5.2
Primary type categories
[meta.
unary.
cat]
21.3.5.3
Composite type traits
[meta.
unary.
comp]
21.3.5.4
Type properties
[meta.
unary.
prop]
21.3.6
Type property queries
[meta.
unary.
prop.
query]
21.3.7
Relationships between types
[meta.
rel]
21.3.8
Transformations between types
[meta.
trans]
21.3.8.1
General
[meta.
trans.
general]
21.3.8.2
Const-volatile modifications
[meta.
trans.
cv]
21.3.8.3
Reference modifications
[meta.
trans.
ref]
21.3.8.4
Sign modifications
[meta.
trans.
sign]
21.3.8.5
Array modifications
[meta.
trans.
arr]
21.3.8.6
Pointer modifications
[meta.
trans.
ptr]
21.3.8.7
Other transformations
[meta.
trans.
other]
21.3.9
Logical operator traits
[meta.
logical]
21.3.10
Member relationships
[meta.
member]
21.3.11
Constant evaluation context
[meta.
const.
eval]
21.4
Compile-time rational arithmetic
[ratio]
21.4.1
In general
[ratio.
general]
21.4.2
Header
<ratio>
synopsis
[ratio.
syn]
21.4.3
Class template
ratio
[ratio.
ratio]
21.4.4
Arithmetic on
ratio
s
[ratio.
arithmetic]
21.4.5
Comparison of
ratio
s
[ratio.
comparison]
21.4.6
SI types for
ratio
[ratio.
si]
22
General utilities library
[utilities]
[utilities]
22.1
General
[utilities.
general]
22.2
Utility components
[utility]
22.2.1
Header
<utility>
synopsis
[utility.
syn]
22.2.2
swap
[utility.
swap]
22.2.3
exchange
[utility.
exchange]
22.2.4
Forward/move helpers
[forward]
22.2.5
Function template
as_
const
[utility.
as.
const]
22.2.6
Function template
declval
[declval]
22.2.7
Integer comparison functions
[utility.
intcmp]
22.2.8
Function template
to_
underlying
[utility.
underlying]
22.2.9
Function
unreachable
[utility.
unreachable]
22.3
Pairs
[pairs]
22.3.1
In general
[pairs.
general]
22.3.2
Class template
pair
[pairs.
pair]
22.3.3
Specialized algorithms
[pairs.
spec]
22.3.4
Tuple-like access to pair
[pair.
astuple]
22.3.5
Piecewise construction
[pair.
piecewise]
22.4
Tuples
[tuple]
22.4.1
In general
[tuple.
general]
22.4.2
Header
<tuple>
synopsis
[tuple.
syn]
22.4.3
Concept
tuple-like
[tuple.
like]
22.4.4
Class template
tuple
[tuple.
tuple]
22.4.4.1
Construction
[tuple.
cnstr]
22.4.4.2
Assignment
[tuple.
assign]
22.4.4.3
swap
[tuple.
swap]
22.4.5
Tuple creation functions
[tuple.
creation]
22.4.6
Calling a function with a
tuple
of arguments
[tuple.
apply]
22.4.7
Tuple helper classes
[tuple.
helper]
22.4.8
Element access
[tuple.
elem]
22.4.9
Relational operators
[tuple.
rel]
22.4.10
common_
reference
related specializations
[tuple.
common.
ref]
22.4.11
Tuple traits
[tuple.
traits]
22.4.12
Tuple specialized algorithms
[tuple.
special]
22.5
Optional objects
[optional]
22.5.1
In general
[optional.
general]
22.5.2
Header
<optional>
synopsis
[optional.
syn]
22.5.3
Class template
optional
[optional.
optional]
22.5.3.1
General
[optional.
optional.
general]
22.5.3.2
Constructors
[optional.
ctor]
22.5.3.3
Destructor
[optional.
dtor]
22.5.3.4
Assignment
[optional.
assign]
22.5.3.5
Swap
[optional.
swap]
22.5.3.6
Observers
[optional.
observe]
22.5.3.7
Monadic operations
[optional.
monadic]
22.5.3.8
Modifiers
[optional.
mod]
22.5.4
No-value state indicator
[optional.
nullopt]
22.5.5
Class
bad_
optional_
access
[optional.
bad.
access]
22.5.6
Relational operators
[optional.
relops]
22.5.7
Comparison with
nullopt
[optional.
nullops]
22.5.8
Comparison with
T
[optional.
comp.
with.
t]
22.5.9
Specialized algorithms
[optional.
specalg]
22.5.10
Hash support
[optional.
hash]
22.6
Variants
[variant]
22.6.1
In general
[variant.
general]
22.6.2
Header
<variant>
synopsis
[variant.
syn]
22.6.3
Class template
variant
[variant.
variant]
22.6.3.1
General
[variant.
variant.
general]
22.6.3.2
Constructors
[variant.
ctor]
22.6.3.3
Destructor
[variant.
dtor]
22.6.3.4
Assignment
[variant.
assign]
22.6.3.5
Modifiers
[variant.
mod]
22.6.3.6
Value status
[variant.
status]
22.6.3.7
Swap
[variant.
swap]
22.6.4
variant
helper classes
[variant.
helper]
22.6.5
Value access
[variant.
get]
22.6.6
Relational operators
[variant.
relops]
22.6.7
Visitation
[variant.
visit]
22.6.8
Class
monostate
[variant.
monostate]
22.6.9
monostate
relational operators
[variant.
monostate.
relops]
22.6.10
Specialized algorithms
[variant.
specalg]
22.6.11
Class
bad_
variant_
access
[variant.
bad.
access]
22.6.12
Hash support
[variant.
hash]
22.7
Storage for any type
[any]
22.7.1
General
[any.
general]
22.7.2
Header
<any>
synopsis
[any.
synop]
22.7.3
Class
bad_
any_
cast
[any.
bad.
any.
cast]
22.7.4
Class
any
[any.
class]
22.7.4.1
General
[any.
class.
general]
22.7.4.2
Construction and destruction
[any.
cons]
22.7.4.3
Assignment
[any.
assign]
22.7.4.4
Modifiers
[any.
modifiers]
22.7.4.5
Observers
[any.
observers]
22.7.5
Non-member functions
[any.
nonmembers]
22.8
Expected objects
[expected]
22.8.1
In general
[expected.
general]
22.8.2
Header
<expected>
synopsis
[expected.
syn]
22.8.3
Class template
unexpected
[expected.
unexpected]
22.8.3.1
General
[expected.
un.
general]
22.8.3.2
Constructors
[expected.
un.
cons]
22.8.3.3
Observers
[expected.
un.
obs]
22.8.3.4
Swap
[expected.
un.
swap]
22.8.3.5
Equality operator
[expected.
un.
eq]
22.8.4
Class template
bad_
expected_
access
[expected.
bad]
22.8.5
Class template specialization
bad_
expected_
access<void>
[expected.
bad.
void]
22.8.6
Class template
expected
[expected.
expected]
22.8.6.1
General
[expected.
object.
general]
22.8.6.2
Constructors
[expected.
object.
cons]
22.8.6.3
Destructor
[expected.
object.
dtor]
22.8.6.4
Assignment
[expected.
object.
assign]
22.8.6.5
Swap
[expected.
object.
swap]
22.8.6.6
Observers
[expected.
object.
obs]
22.8.6.7
Monadic operations
[expected.
object.
monadic]
22.8.6.8
Equality operators
[expected.
object.
eq]
22.8.7
Partial specialization of
expected
for
void
types
[expected.
void]
22.8.7.1
General
[expected.
void.
general]
22.8.7.2
Constructors
[expected.
void.
cons]
22.8.7.3
Destructor
[expected.
void.
dtor]
22.8.7.4
Assignment
[expected.
void.
assign]
22.8.7.5
Swap
[expected.
void.
swap]
22.8.7.6
Observers
[expected.
void.
obs]
22.8.7.7
Monadic operations
[expected.
void.
monadic]
22.8.7.8
Equality operators
[expected.
void.
eq]
22.9
Bitsets
[bitset]
22.9.1
Header
<bitset>
synopsis
[bitset.
syn]
22.9.2
Class template
bitset
[template.
bitset]
22.9.2.1
General
[template.
bitset.
general]
22.9.2.2
Constructors
[bitset.
cons]
22.9.2.3
Members
[bitset.
members]
22.9.3
bitset
hash support
[bitset.
hash]
22.9.4
bitset
operators
[bitset.
operators]
22.10
Function objects
[function.
objects]
22.10.1
General
[function.
objects.
general]
22.10.2
Header
<functional>
synopsis
[functional.
syn]
22.10.3
Definitions
[func.
def]
22.10.4
Requirements
[func.
require]
22.10.5
invoke
functions
[func.
invoke]
22.10.6
Class template
reference_
wrapper
[refwrap]
22.10.6.1
General
[refwrap.
general]
22.10.6.2
Constructors
[refwrap.
const]
22.10.6.3
Assignment
[refwrap.
assign]
22.10.6.4
Access
[refwrap.
access]
22.10.6.5
Invocation
[refwrap.
invoke]
22.10.6.6
Helper functions
[refwrap.
helpers]
22.10.6.7
common_
reference
related specializations
[refwrap.
common.
ref]
22.10.7
Arithmetic operations
[arithmetic.
operations]
22.10.7.1
General
[arithmetic.
operations.
general]
22.10.7.2
Class template
plus
[arithmetic.
operations.
plus]
22.10.7.3
Class template
minus
[arithmetic.
operations.
minus]
22.10.7.4
Class template
multiplies
[arithmetic.
operations.
multiplies]
22.10.7.5
Class template
divides
[arithmetic.
operations.
divides]
22.10.7.6
Class template
modulus
[arithmetic.
operations.
modulus]
22.10.7.7
Class template
negate
[arithmetic.
operations.
negate]
22.10.8
Comparisons
[comparisons]
22.10.8.1
General
[comparisons.
general]
22.10.8.2
Class template
equal_
to
[comparisons.
equal.
to]
22.10.8.3
Class template
not_
equal_
to
[comparisons.
not.
equal.
to]
22.10.8.4
Class template
greater
[comparisons.
greater]
22.10.8.5
Class template
less
[comparisons.
less]
22.10.8.6
Class template
greater_
equal
[comparisons.
greater.
equal]
22.10.8.7
Class template
less_
equal
[comparisons.
less.
equal]
22.10.8.8
Class
compare_
three_
way
[comparisons.
three.
way]
22.10.9
Concept-constrained comparisons
[range.
cmp]
22.10.10
Logical operations
[logical.
operations]
22.10.10.1
General
[logical.
operations.
general]
22.10.10.2
Class template
logical_
and
[logical.
operations.
and]
22.10.10.3
Class template
logical_
or
[logical.
operations.
or]
22.10.10.4
Class template
logical_
not
[logical.
operations.
not]
22.10.11
Bitwise operations
[bitwise.
operations]
22.10.11.1
General
[bitwise.
operations.
general]
22.10.11.2
Class template
bit_
and
[bitwise.
operations.
and]
22.10.11.3
Class template
bit_
or
[bitwise.
operations.
or]
22.10.11.4
Class template
bit_
xor
[bitwise.
operations.
xor]
22.10.11.5
Class template
bit_
not
[bitwise.
operations.
not]
22.10.12
Class
identity
[func.
identity]
22.10.13
Function template
not_
fn
[func.
not.
fn]
22.10.14
Function templates
bind_
front
and
bind_
back
[func.
bind.
partial]
22.10.15
Function object binders
[func.
bind]
22.10.15.1
General
[func.
bind.
general]
22.10.15.2
Class template
is_
bind_
expression
[func.
bind.
isbind]
22.10.15.3
Class template
is_
placeholder
[func.
bind.
isplace]
22.10.15.4
Function template
bind
[func.
bind.
bind]
22.10.15.5
Placeholders
[func.
bind.
place]
22.10.16
Function template
mem_
fn
[func.
memfn]
22.10.17
Polymorphic function wrappers
[func.
wrap]
22.10.17.1
General
[func.
wrap.
general]
22.10.17.2
Class
bad_
function_
call
[func.
wrap.
badcall]
22.10.17.3
Class template
function
[func.
wrap.
func]
22.10.17.3.1
General
[func.
wrap.
func.
general]
22.10.17.3.2
Constructors and destructor
[func.
wrap.
func.
con]
22.10.17.3.3
Modifiers
[func.
wrap.
func.
mod]
22.10.17.3.4
Capacity
[func.
wrap.
func.
cap]
22.10.17.3.5
Invocation
[func.
wrap.
func.
inv]
22.10.17.3.6
Target access
[func.
wrap.
func.
targ]
22.10.17.3.7
Null pointer comparison operator functions
[func.
wrap.
func.
nullptr]
22.10.17.3.8
Specialized algorithms
[func.
wrap.
func.
alg]
22.10.17.4
Move only wrapper
[func.
wrap.
move]
22.10.17.4.1
General
[func.
wrap.
move.
general]
22.10.17.4.2
Class template
move_
only_
function
[func.
wrap.
move.
class]
22.10.17.4.3
Constructors, assignment, and destructor
[func.
wrap.
move.
ctor]
22.10.17.4.4
Invocation
[func.
wrap.
move.
inv]
22.10.17.4.5
Utility
[func.
wrap.
move.
util]
22.10.18
Searchers
[func.
search]
22.10.18.1
General
[func.
search.
general]
22.10.18.2
Class template
default_
searcher
[func.
search.
default]
22.10.18.3
Class template
boyer_
moore_
searcher
[func.
search.
bm]
22.10.18.4
Class template
boyer_
moore_
horspool_
searcher
[func.
search.
bmh]
22.10.19
Class template
hash
[unord.
hash]
22.11
Class
type_
index
[type.
index]
22.11.1
Header
<typeindex>
synopsis
[type.
index.
synopsis]
22.11.2
type_
index
overview
[type.
index.
overview]
22.11.3
type_
index
members
[type.
index.
members]
22.11.4
Hash support
[type.
index.
hash]
22.12
Execution policies
[execpol]
22.12.1
In general
[execpol.
general]
22.12.2
Header
<execution>
synopsis
[execution.
syn]
22.12.3
Execution policy type trait
[execpol.
type]
22.12.4
Sequenced execution policy
[execpol.
seq]
22.12.5
Parallel execution policy
[execpol.
par]
22.12.6
Parallel and unsequenced execution policy
[execpol.
parunseq]
22.12.7
Unsequenced execution policy
[execpol.
unseq]
22.12.8
Execution policy objects
[execpol.
objects]
22.13
Primitive numeric conversions
[charconv]
22.13.1
Header
<charconv>
synopsis
[charconv.
syn]
22.13.2
Primitive numeric output conversion
[charconv.
to.
chars]
22.13.3
Primitive numeric input conversion
[charconv.
from.
chars]
22.14
Formatting
[format]
22.14.1
Header
<format>
synopsis
[format.
syn]
22.14.2
Format string
[format.
string]
22.14.2.1
In general
[format.
string.
general]
22.14.2.2
Standard format specifiers
[format.
string.
std]
22.14.3
Error reporting
[format.
err.
report]
22.14.4
Class template
basic_
format_
string
[format.
fmt.
string]
22.14.5
Formatting functions
[format.
functions]
22.14.6
Formatter
[format.
formatter]
22.14.6.1
Formatter requirements
[formatter.
requirements]
22.14.6.2
Concept
formattable
[format.
formattable]
22.14.6.3
Formatter specializations
[format.
formatter.
spec]
22.14.6.4
Formatting escaped characters and strings
[format.
string.
escaped]
22.14.6.5
Class template
basic_
format_
parse_
context
[format.
parse.
ctx]
22.14.6.6
Class template
basic_
format_
context
[format.
context]
22.14.7
Formatting of ranges
[format.
range]
22.14.7.1
Variable template
format_
kind
[format.
range.
fmtkind]
22.14.7.2
Class template
range_
formatter
[format.
range.
formatter]
22.14.7.3
Class template
range-default-formatter
[format.
range.
fmtdef]
22.14.7.4
Specialization of
range-default-formatter
for maps
[format.
range.
fmtmap]
22.14.7.5
Specialization of
range-default-formatter
for sets
[format.
range.
fmtset]
22.14.7.6
Specialization of
range-default-formatter
for strings
[format.
range.
fmtstr]
22.14.8
Arguments
[format.
arguments]
22.14.8.1
Class template
basic_
format_
arg
[format.
arg]
22.14.8.2
Class template
format-arg-store
[format.
arg.
store]
22.14.8.3
Class template
basic_
format_
args
[format.
args]
22.14.9
Tuple formatter
[format.
tuple]
22.14.10
Class
format_
error
[format.
error]
22.15
Bit manipulation
[bit]
22.15.1
General
[bit.
general]
22.15.2
Header
<bit>
synopsis
[bit.
syn]
22.15.3
Function template
bit_
cast
[bit.
cast]
22.15.4
byteswap
[bit.
byteswap]
22.15.5
Integral powers of 2
[bit.
pow.
two]
22.15.6
Rotating
[bit.
rotate]
22.15.7
Counting
[bit.
count]
22.15.8
Endian
[bit.
endian]
23
Strings library
[strings]
[strings]
23.1
General
[strings.
general]
23.2
Character traits
[char.
traits]
23.2.1
General
[char.
traits.
general]
23.2.2
Character traits requirements
[char.
traits.
require]
23.2.3
Traits typedefs
[char.
traits.
typedefs]
23.2.4
char_
traits
specializations
[char.
traits.
specializations]
23.2.4.1
General
[char.
traits.
specializations.
general]
23.2.4.2
struct char_
traits<char>
[char.
traits.
specializations.
char]
23.2.4.3
struct char_
traits<char8_
t>
[char.
traits.
specializations.
char8.
t]
23.2.4.4
struct char_
traits<char16_
t>
[char.
traits.
specializations.
char16.
t]
23.2.4.5
struct char_
traits<char32_
t>
[char.
traits.
specializations.
char32.
t]
23.2.4.6
struct char_
traits<wchar_
t>
[char.
traits.
specializations.
wchar.
t]
23.3
String view classes
[string.
view]
23.3.1
General
[string.
view.
general]
23.3.2
Header
<string_
view>
synopsis
[string.
view.
synop]
23.3.3
Class template
basic_
string_
view
[string.
view.
template]
23.3.3.1
General
[string.
view.
template.
general]
23.3.3.2
Construction and assignment
[string.
view.
cons]
23.3.3.3
Deduction guides
[string.
view.
deduct]
23.3.3.4
Iterator support
[string.
view.
iterators]
23.3.3.5
Capacity
[string.
view.
capacity]
23.3.3.6
Element access
[string.
view.
access]
23.3.3.7
Modifiers
[string.
view.
modifiers]
23.3.3.8
String operations
[string.
view.
ops]
23.3.3.9
Searching
[string.
view.
find]
23.3.4
Non-member comparison functions
[string.
view.
comparison]
23.3.5
Inserters and extractors
[string.
view.
io]
23.3.6
Hash support
[string.
view.
hash]
23.3.7
Suffix for
basic_
string_
view
literals
[string.
view.
literals]
23.4
String classes
[string.
classes]
23.4.1
General
[string.
classes.
general]
23.4.2
Header
<string>
synopsis
[string.
syn]
23.4.3
Class template
basic_
string
[basic.
string]
23.4.3.1
General
[basic.
string.
general]
23.4.3.2
General requirements
[string.
require]
23.4.3.3
Constructors and assignment operators
[string.
cons]
23.4.3.4
Iterator support
[string.
iterators]
23.4.3.5
Capacity
[string.
capacity]
23.4.3.6
Element access
[string.
access]
23.4.3.7
Modifiers
[string.
modifiers]
23.4.3.7.1
basic_
string::operator+=
[string.
op.
append]
23.4.3.7.2
basic_
string::append
[string.
append]
23.4.3.7.3
basic_
string::assign
[string.
assign]
23.4.3.7.4
basic_
string::insert
[string.
insert]
23.4.3.7.5
basic_
string::erase
[string.
erase]
23.4.3.7.6
basic_
string::replace
[string.
replace]
23.4.3.7.7
basic_
string::copy
[string.
copy]
23.4.3.7.8
basic_
string::swap
[string.
swap]
23.4.3.8
String operations
[string.
ops]
23.4.3.8.1
Accessors
[string.
accessors]
23.4.3.8.2
Searching
[string.
find]
23.4.3.8.3
basic_
string::substr
[string.
substr]
23.4.3.8.4
basic_
string::compare
[string.
compare]
23.4.3.8.5
basic_
string::starts_
with
[string.
starts.
with]
23.4.3.8.6
basic_
string::ends_
with
[string.
ends.
with]
23.4.3.8.7
basic_
string::contains
[string.
contains]
23.4.4
Non-member functions
[string.
nonmembers]
23.4.4.1
operator+
[string.
op.
plus]
23.4.4.2
Non-member comparison operator functions
[string.
cmp]
23.4.4.3
swap
[string.
special]
23.4.4.4
Inserters and extractors
[string.
io]
23.4.4.5
Erasure
[string.
erasure]
23.4.5
Numeric conversions
[string.
conversions]
23.4.6
Hash support
[basic.
string.
hash]
23.4.7
Suffix for
basic_
string
literals
[basic.
string.
literals]
23.5
Null-terminated sequence utilities
[c.
strings]
23.5.1
Header
<cctype>
synopsis
[cctype.
syn]
23.5.2
Header
<cwctype>
synopsis
[cwctype.
syn]
23.5.3
Header
<cstring>
synopsis
[cstring.
syn]
23.5.4
Header
<cwchar>
synopsis
[cwchar.
syn]
23.5.5
Header
<cuchar>
synopsis
[cuchar.
syn]
23.5.6
Multibyte / wide string and character conversion functions
[c.
mb.
wcs]
24
Containers library
[containers]
[containers]
24.1
General
[containers.
general]
24.2
Requirements
[container.
requirements]
24.2.1
Preamble
[container.
requirements.
pre]
24.2.2
General containers
[container.
requirements.
general]
24.2.2.1
Introduction
[container.
intro.
reqmts]
24.2.2.2
Container requirements
[container.
reqmts]
24.2.2.3
Reversible container requirements
[container.
rev.
reqmts]
24.2.2.4
Optional container requirements
[container.
opt.
reqmts]
24.2.2.5
Allocator-aware containers
[container.
alloc.
reqmts]
24.2.3
Container data races
[container.
requirements.
dataraces]
24.2.4
Sequence containers
[sequence.
reqmts]
24.2.5
Node handles
[container.
node]
24.2.5.1
Overview
[container.
node.
overview]
24.2.5.2
Constructors, copy, and assignment
[container.
node.
cons]
24.2.5.3
Destructor
[container.
node.
dtor]
24.2.5.4
Observers
[container.
node.
observers]
24.2.5.5
Modifiers
[container.
node.
modifiers]
24.2.6
Insert return type
[container.
insert.
return]
24.2.7
Associative containers
[associative.
reqmts]
24.2.7.1
General
[associative.
reqmts.
general]
24.2.7.2
Exception safety guarantees
[associative.
reqmts.
except]
24.2.8
Unordered associative containers
[unord.
req]
24.2.8.1
General
[unord.
req.
general]
24.2.8.2
Exception safety guarantees
[unord.
req.
except]
24.3
Sequence containers
[sequences]
24.3.1
In general
[sequences.
general]
24.3.2
Header
<array>
synopsis
[array.
syn]
24.3.3
Header
<deque>
synopsis
[deque.
syn]
24.3.4
Header
<forward_
list>
synopsis
[forward.
list.
syn]
24.3.5
Header
<list>
synopsis
[list.
syn]
24.3.6
Header
<vector>
synopsis
[vector.
syn]
24.3.7
Class template
array
[array]
24.3.7.1
Overview
[array.
overview]
24.3.7.2
Constructors, copy, and assignment
[array.
cons]
24.3.7.3
Member functions
[array.
members]
24.3.7.4
Specialized algorithms
[array.
special]
24.3.7.5
Zero-sized arrays
[array.
zero]
24.3.7.6
Array creation functions
[array.
creation]
24.3.7.7
Tuple interface
[array.
tuple]
24.3.8
Class template
deque
[deque]
24.3.8.1
Overview
[deque.
overview]
24.3.8.2
Constructors, copy, and assignment
[deque.
cons]
24.3.8.3
Capacity
[deque.
capacity]
24.3.8.4
Modifiers
[deque.
modifiers]
24.3.8.5
Erasure
[deque.
erasure]
24.3.9
Class template
forward_
list
[forward.
list]
24.3.9.1
Overview
[forward.
list.
overview]
24.3.9.2
Constructors, copy, and assignment
[forward.
list.
cons]
24.3.9.3
Iterators
[forward.
list.
iter]
24.3.9.4
Element access
[forward.
list.
access]
24.3.9.5
Modifiers
[forward.
list.
modifiers]
24.3.9.6
Operations
[forward.
list.
ops]
24.3.9.7
Erasure
[forward.
list.
erasure]
24.3.10
Class template
list
[list]
24.3.10.1
Overview
[list.
overview]
24.3.10.2
Constructors, copy, and assignment
[list.
cons]
24.3.10.3
Capacity
[list.
capacity]
24.3.10.4
Modifiers
[list.
modifiers]
24.3.10.5
Operations
[list.
ops]
24.3.10.6
Erasure
[list.
erasure]
24.3.11
Class template
vector
[vector]
24.3.11.1
Overview
[vector.
overview]
24.3.11.2
Constructors
[vector.
cons]
24.3.11.3
Capacity
[vector.
capacity]
24.3.11.4
Data
[vector.
data]
24.3.11.5
Modifiers
[vector.
modifiers]
24.3.11.6
Erasure
[vector.
erasure]
24.3.12
Specialization of
vector
for
bool
[vector.
bool]
24.3.12.1
Partial class template specialization
vector<bool, Allocator>
[vector.
bool.
pspc]
24.3.12.2
Formatter specialization for
vector<bool>
[vector.
bool.
fmt]
24.4
Associative containers
[associative]
24.4.1
In general
[associative.
general]
24.4.2
Header
<map>
synopsis
[associative.
map.
syn]
24.4.3
Header
<set>
synopsis
[associative.
set.
syn]
24.4.4
Class template
map
[map]
24.4.4.1
Overview
[map.
overview]
24.4.4.2
Constructors, copy, and assignment
[map.
cons]
24.4.4.3
Element access
[map.
access]
24.4.4.4
Modifiers
[map.
modifiers]
24.4.4.5
Erasure
[map.
erasure]
24.4.5
Class template
multimap
[multimap]
24.4.5.1
Overview
[multimap.
overview]
24.4.5.2
Constructors
[multimap.
cons]
24.4.5.3
Modifiers
[multimap.
modifiers]
24.4.5.4
Erasure
[multimap.
erasure]
24.4.6
Class template
set
[set]
24.4.6.1
Overview
[set.
overview]
24.4.6.2
Constructors, copy, and assignment
[set.
cons]
24.4.6.3
Erasure
[set.
erasure]
24.4.7
Class template
multiset
[multiset]
24.4.7.1
Overview
[multiset.
overview]
24.4.7.2
Constructors
[multiset.
cons]
24.4.7.3
Erasure
[multiset.
erasure]
24.5
Unordered associative containers
[unord]
24.5.1
In general
[unord.
general]
24.5.2
Header
<unordered_
map>
synopsis
[unord.
map.
syn]
24.5.3
Header
<unordered_
set>
synopsis
[unord.
set.
syn]
24.5.4
Class template
unordered_
map
[unord.
map]
24.5.4.1
Overview
[unord.
map.
overview]
24.5.4.2
Constructors
[unord.
map.
cnstr]
24.5.4.3
Element access
[unord.
map.
elem]
24.5.4.4
Modifiers
[unord.
map.
modifiers]
24.5.4.5
Erasure
[unord.
map.
erasure]
24.5.5
Class template
unordered_
multimap
[unord.
multimap]
24.5.5.1
Overview
[unord.
multimap.
overview]
24.5.5.2
Constructors
[unord.
multimap.
cnstr]
24.5.5.3
Modifiers
[unord.
multimap.
modifiers]
24.5.5.4
Erasure
[unord.
multimap.
erasure]
24.5.6
Class template
unordered_
set
[unord.
set]
24.5.6.1
Overview
[unord.
set.
overview]
24.5.6.2
Constructors
[unord.
set.
cnstr]
24.5.6.3
Erasure
[unord.
set.
erasure]
24.5.7
Class template
unordered_
multiset
[unord.
multiset]
24.5.7.1
Overview
[unord.
multiset.
overview]
24.5.7.2
Constructors
[unord.
multiset.
cnstr]
24.5.7.3
Erasure
[unord.
multiset.
erasure]
24.6
Container adaptors
[container.
adaptors]
24.6.1
In general
[container.
adaptors.
general]
24.6.2
Header
<queue>
synopsis
[queue.
syn]
24.6.3
Header
<stack>
synopsis
[stack.
syn]
24.6.4
Header
<flat_
map>
synopsis
[flat.
map.
syn]
24.6.5
Header
<flat_
set>
synopsis
[flat.
set.
syn]
24.6.6
Class template
queue
[queue]
24.6.6.1
Definition
[queue.
defn]
24.6.6.2
Constructors
[queue.
cons]
24.6.6.3
Constructors with allocators
[queue.
cons.
alloc]
24.6.6.4
Modifiers
[queue.
mod]
24.6.6.5
Operators
[queue.
ops]
24.6.6.6
Specialized algorithms
[queue.
special]
24.6.7
Class template
priority_
queue
[priority.
queue]
24.6.7.1
Overview
[priqueue.
overview]
24.6.7.2
Constructors
[priqueue.
cons]
24.6.7.3
Constructors with allocators
[priqueue.
cons.
alloc]
24.6.7.4
Members
[priqueue.
members]
24.6.7.5
Specialized algorithms
[priqueue.
special]
24.6.8
Class template
stack
[stack]
24.6.8.1
General
[stack.
general]
24.6.8.2
Definition
[stack.
defn]
24.6.8.3
Constructors
[stack.
cons]
24.6.8.4
Constructors with allocators
[stack.
cons.
alloc]
24.6.8.5
Modifiers
[stack.
mod]
24.6.8.6
Operators
[stack.
ops]
24.6.8.7
Specialized algorithms
[stack.
special]
24.6.9
Class template
flat_
map
[flat.
map]
24.6.9.1
Overview
[flat.
map.
overview]
24.6.9.2
Definition
[flat.
map.
defn]
24.6.9.3
Constructors
[flat.
map.
cons]
24.6.9.4
Capacity
[flat.
map.
capacity]
24.6.9.5
Access
[flat.
map.
access]
24.6.9.6
Modifiers
[flat.
map.
modifiers]
24.6.9.7
Erasure
[flat.
map.
erasure]
24.6.10
Class template
flat_
multimap
[flat.
multimap]
24.6.10.1
Overview
[flat.
multimap.
overview]
24.6.10.2
Definition
[flat.
multimap.
defn]
24.6.10.3
Constructors
[flat.
multimap.
cons]
24.6.10.4
Erasure
[flat.
multimap.
erasure]
24.6.11
Class template
flat_
set
[flat.
set]
24.6.11.1
Overview
[flat.
set.
overview]
24.6.11.2
Definition
[flat.
set.
defn]
24.6.11.3
Constructors
[flat.
set.
cons]
24.6.11.4
Modifiers
[flat.
set.
modifiers]
24.6.11.5
Erasure
[flat.
set.
erasure]
24.6.12
Class template
flat_
multiset
[flat.
multiset]
24.6.12.1
Overview
[flat.
multiset.
overview]
24.6.12.2
Definition
[flat.
multiset.
defn]
24.6.12.3
Constructors
[flat.
multiset.
cons]
24.6.12.4
Modifiers
[flat.
multiset.
modifiers]
24.6.12.5
Erasure
[flat.
multiset.
erasure]
24.6.13
Container adaptors formatting
[container.
adaptors.
format]
24.7
Views
[views]
24.7.1
General
[views.
general]
24.7.2
Contiguous access
[views.
contiguous]
24.7.2.1
Header
<span>
synopsis
[span.
syn]
24.7.2.2
Class template
span
[views.
span]
24.7.2.2.1
Overview
[span.
overview]
24.7.2.2.2
Constructors, copy, and assignment
[span.
cons]
24.7.2.2.3
Deduction guides
[span.
deduct]
24.7.2.2.4
Subviews
[span.
sub]
24.7.2.2.5
Observers
[span.
obs]
24.7.2.2.6
Element access
[span.
elem]
24.7.2.2.7
Iterator support
[span.
iterators]
24.7.2.3
Views of object representation
[span.
objectrep]
24.7.3
Multidimensional access
[views.
multidim]
24.7.3.1
Overview
[mdspan.
overview]
24.7.3.2
Header
<mdspan>
synopsis
[mdspan.
syn]
24.7.3.3
Class template
extents
[mdspan.
extents]
24.7.3.3.1
Overview
[mdspan.
extents.
overview]
24.7.3.3.2
Exposition-only helpers
[mdspan.
extents.
expo]
24.7.3.3.3
Constructors
[mdspan.
extents.
cons]
24.7.3.3.4
Observers of the multidimensional index space
[mdspan.
extents.
obs]
24.7.3.3.5
Comparison operators
[mdspan.
extents.
cmp]
24.7.3.3.6
Alias template
dextents
[mdspan.
extents.
dextents]
24.7.3.4
Layout mapping
[mdspan.
layout]
24.7.3.4.1
General
[mdspan.
layout.
general]
24.7.3.4.2
Requirements
[mdspan.
layout.
reqmts]
24.7.3.4.3
Layout mapping policy requirements
[mdspan.
layout.
policy.
reqmts]
24.7.3.4.4
Layout mapping policies
[mdspan.
layout.
policy.
overview]
24.7.3.4.5
Class template
layout_
left::mapping
[mdspan.
layout.
left]
24.7.3.4.5.1
Overview
[mdspan.
layout.
left.
overview]
24.7.3.4.5.2
Constructors
[mdspan.
layout.
left.
cons]
24.7.3.4.5.3
Observers
[mdspan.
layout.
left.
obs]
24.7.3.4.6
Class template
layout_
right::mapping
[mdspan.
layout.
right]
24.7.3.4.6.1
Overview
[mdspan.
layout.
right.
overview]
24.7.3.4.6.2
Constructors
[mdspan.
layout.
right.
cons]
24.7.3.4.6.3
Observers
[mdspan.
layout.
right.
obs]
24.7.3.4.7
Class template
layout_
stride::mapping
[mdspan.
layout.
stride]
24.7.3.4.7.1
Overview
[mdspan.
layout.
stride.
overview]
24.7.3.4.7.2
Exposition-only helpers
[mdspan.
layout.
stride.
expo]
24.7.3.4.7.3
Constructors
[mdspan.
layout.
stride.
cons]
24.7.3.4.7.4
Observers
[mdspan.
layout.
stride.
obs]
24.7.3.5
Accessor policy
[mdspan.
accessor]
24.7.3.5.1
General
[mdspan.
accessor.
general]
24.7.3.5.2
Requirements
[mdspan.
accessor.
reqmts]
24.7.3.5.3
Class template
default_
accessor
[mdspan.
accessor.
default]
24.7.3.5.3.1
Overview
[mdspan.
accessor.
default.
overview]
24.7.3.5.3.2
Members
[mdspan.
accessor.
default.
members]
24.7.3.6
Class template
mdspan
[mdspan.
mdspan]
24.7.3.6.1
Overview
[mdspan.
mdspan.
overview]
24.7.3.6.2
Constructors
[mdspan.
mdspan.
cons]
24.7.3.6.3
Members
[mdspan.
mdspan.
members]
25
Iterators library
[iterators]
[iterators]
25.1
General
[iterators.
general]
25.2
Header
<iterator>
synopsis
[iterator.
synopsis]
25.3
Iterator requirements
[iterator.
requirements]
25.3.1
In general
[iterator.
requirements.
general]
25.3.2
Associated types
[iterator.
assoc.
types]
25.3.2.1
Incrementable traits
[incrementable.
traits]
25.3.2.2
Indirectly readable traits
[readable.
traits]
25.3.2.3
Iterator traits
[iterator.
traits]
25.3.3
Customization point objects
[iterator.
cust]
25.3.3.1
ranges::iter_
move
[iterator.
cust.
move]
25.3.3.2
ranges::iter_
swap
[iterator.
cust.
swap]
25.3.4
Iterator concepts
[iterator.
concepts]
25.3.4.1
General
[iterator.
concepts.
general]
25.3.4.2
Concept
indirectly_
readable
[iterator.
concept.
readable]
25.3.4.3
Concept
indirectly_
writable
[iterator.
concept.
writable]
25.3.4.4
Concept
weakly_
incrementable
[iterator.
concept.
winc]
25.3.4.5
Concept
incrementable
[iterator.
concept.
inc]
25.3.4.6
Concept
input_
or_
output_
iterator
[iterator.
concept.
iterator]
25.3.4.7
Concept
sentinel_
for
[iterator.
concept.
sentinel]
25.3.4.8
Concept
sized_
sentinel_
for
[iterator.
concept.
sizedsentinel]
25.3.4.9
Concept
input_
iterator
[iterator.
concept.
input]
25.3.4.10
Concept
output_
iterator
[iterator.
concept.
output]
25.3.4.11
Concept
forward_
iterator
[iterator.
concept.
forward]
25.3.4.12
Concept
bidirectional_
iterator
[iterator.
concept.
bidir]
25.3.4.13
Concept
random_
access_
iterator
[iterator.
concept.
random.
access]
25.3.4.14
Concept
contiguous_
iterator
[iterator.
concept.
contiguous]
25.3.5
C++17 iterator requirements
[iterator.
cpp17]
25.3.5.1
General
[iterator.
cpp17.
general]
25.3.5.2
Cpp17Iterator
[iterator.
iterators]
25.3.5.3
Input iterators
[input.
iterators]
25.3.5.4
Output iterators
[output.
iterators]
25.3.5.5
Forward iterators
[forward.
iterators]
25.3.5.6
Bidirectional iterators
[bidirectional.
iterators]
25.3.5.7
Random access iterators
[random.
access.
iterators]
25.3.6
Indirect callable requirements
[indirectcallable]
25.3.6.1
General
[indirectcallable.
general]
25.3.6.2
Indirect callable traits
[indirectcallable.
traits]
25.3.6.3
Indirect callables
[indirectcallable.
indirectinvocable]
25.3.6.4
Class template
projected
[projected]
25.3.7
Common algorithm requirements
[alg.
req]
25.3.7.1
General
[alg.
req.
general]
25.3.7.2
Concept
indirectly_
movable
[alg.
req.
ind.
move]
25.3.7.3
Concept
indirectly_
copyable
[alg.
req.
ind.
copy]
25.3.7.4
Concept
indirectly_
swappable
[alg.
req.
ind.
swap]
25.3.7.5
Concept
indirectly_
comparable
[alg.
req.
ind.
cmp]
25.3.7.6
Concept
permutable
[alg.
req.
permutable]
25.3.7.7
Concept
mergeable
[alg.
req.
mergeable]
25.3.7.8
Concept
sortable
[alg.
req.
sortable]
25.4
Iterator primitives
[iterator.
primitives]
25.4.1
General
[iterator.
primitives.
general]
25.4.2
Standard iterator tags
[std.
iterator.
tags]
25.4.3
Iterator operations
[iterator.
operations]
25.4.4
Range iterator operations
[range.
iter.
ops]
25.4.4.1
General
[range.
iter.
ops.
general]
25.4.4.2
ranges::advance
[range.
iter.
op.
advance]
25.4.4.3
ranges::distance
[range.
iter.
op.
distance]
25.4.4.4
ranges::next
[range.
iter.
op.
next]
25.4.4.5
ranges::prev
[range.
iter.
op.
prev]
25.5
Iterator adaptors
[predef.
iterators]
25.5.1
Reverse iterators
[reverse.
iterators]
25.5.1.1
General
[reverse.
iterators.
general]
25.5.1.2
Class template
reverse_
iterator
[reverse.
iterator]
25.5.1.3
Requirements
[reverse.
iter.
requirements]
25.5.1.4
Construction and assignment
[reverse.
iter.
cons]
25.5.1.5
Conversion
[reverse.
iter.
conv]
25.5.1.6
Element access
[reverse.
iter.
elem]
25.5.1.7
Navigation
[reverse.
iter.
nav]
25.5.1.8
Comparisons
[reverse.
iter.
cmp]
25.5.1.9
Non-member functions
[reverse.
iter.
nonmember]
25.5.2
Insert iterators
[insert.
iterators]
25.5.2.1
General
[insert.
iterators.
general]
25.5.2.2
Class template
back_
insert_
iterator
[back.
insert.
iterator]
25.5.2.2.1
Operations
[back.
insert.
iter.
ops]
25.5.2.2.2
back_
inserter
[back.
inserter]
25.5.2.3
Class template
front_
insert_
iterator
[front.
insert.
iterator]
25.5.2.3.1
Operations
[front.
insert.
iter.
ops]
25.5.2.3.2
front_
inserter
[front.
inserter]
25.5.2.4
Class template
insert_
iterator
[insert.
iterator]
25.5.2.4.1
Operations
[insert.
iter.
ops]
25.5.2.4.2
inserter
[inserter]
25.5.3
Constant iterators and sentinels
[const.
iterators]
25.5.3.1
General
[const.
iterators.
general]
25.5.3.2
Alias templates
[const.
iterators.
alias]
25.5.3.3
Class template
basic_
const_
iterator
[const.
iterators.
iterator]
25.5.3.4
Member types
[const.
iterators.
types]
25.5.3.5
Operations
[const.
iterators.
ops]
25.5.4
Move iterators and sentinels
[move.
iterators]
25.5.4.1
General
[move.
iterators.
general]
25.5.4.2
Class template
move_
iterator
[move.
iterator]
25.5.4.3
Requirements
[move.
iter.
requirements]
25.5.4.4
Construction and assignment
[move.
iter.
cons]
25.5.4.5
Conversion
[move.
iter.
op.
conv]
25.5.4.6
Element access
[move.
iter.
elem]
25.5.4.7
Navigation
[move.
iter.
nav]
25.5.4.8
Comparisons
[move.
iter.
op.
comp]
25.5.4.9
Non-member functions
[move.
iter.
nonmember]
25.5.4.10
Class template
move_
sentinel
[move.
sentinel]
25.5.4.11
Operations
[move.
sent.
ops]
25.5.5
Common iterators
[iterators.
common]
25.5.5.1
Class template
common_
iterator
[common.
iterator]
25.5.5.2
Associated types
[common.
iter.
types]
25.5.5.3
Constructors and conversions
[common.
iter.
const]
25.5.5.4
Accessors
[common.
iter.
access]
25.5.5.5
Navigation
[common.
iter.
nav]
25.5.5.6
Comparisons
[common.
iter.
cmp]
25.5.5.7
Customizations
[common.
iter.
cust]
25.5.6
Default sentinel
[default.
sentinel]
25.5.7
Counted iterators
[iterators.
counted]
25.5.7.1
Class template
counted_
iterator
[counted.
iterator]
25.5.7.2
Constructors and conversions
[counted.
iter.
const]
25.5.7.3
Accessors
[counted.
iter.
access]
25.5.7.4
Element access
[counted.
iter.
elem]
25.5.7.5
Navigation
[counted.
iter.
nav]
25.5.7.6
Comparisons
[counted.
iter.
cmp]
25.5.7.7
Customizations
[counted.
iter.
cust]
25.5.8
Unreachable sentinel
[unreachable.
sentinel]
25.6
Stream iterators
[stream.
iterators]
25.6.1
General
[stream.
iterators.
general]
25.6.2
Class template
istream_
iterator
[istream.
iterator]
25.6.2.1
General
[istream.
iterator.
general]
25.6.2.2
Constructors and destructor
[istream.
iterator.
cons]
25.6.2.3
Operations
[istream.
iterator.
ops]
25.6.3
Class template
ostream_
iterator
[ostream.
iterator]
25.6.3.1
General
[ostream.
iterator.
general]
25.6.3.2
Constructors and destructor
[ostream.
iterator.
cons.
des]
25.6.3.3
Operations
[ostream.
iterator.
ops]
25.6.4
Class template
istreambuf_
iterator
[istreambuf.
iterator]
25.6.4.1
General
[istreambuf.
iterator.
general]
25.6.4.2
Class
istreambuf_
iterator::
proxy
[istreambuf.
iterator.
proxy]
25.6.4.3
Constructors
[istreambuf.
iterator.
cons]
25.6.4.4
Operations
[istreambuf.
iterator.
ops]
25.6.5
Class template
ostreambuf_
iterator
[ostreambuf.
iterator]
25.6.5.1
General
[ostreambuf.
iterator.
general]
25.6.5.2
Constructors
[ostreambuf.
iter.
cons]
25.6.5.3
Operations
[ostreambuf.
iter.
ops]
25.7
Range access
[iterator.
range]
26
Ranges library
[ranges]
[ranges]
26.1
General
[ranges.
general]
26.2
Header
<ranges>
synopsis
[ranges.
syn]
26.3
Range access
[range.
access]
26.3.1
General
[range.
access.
general]
26.3.2
ranges::begin
[range.
access.
begin]
26.3.3
ranges::end
[range.
access.
end]
26.3.4
ranges::cbegin
[range.
access.
cbegin]
26.3.5
ranges::cend
[range.
access.
cend]
26.3.6
ranges::rbegin
[range.
access.
rbegin]
26.3.7
ranges::rend
[range.
access.
rend]
26.3.8
ranges::crbegin
[range.
access.
crbegin]
26.3.9
ranges::crend
[range.
access.
crend]
26.3.10
ranges::size
[range.
prim.
size]
26.3.11
ranges::ssize
[range.
prim.
ssize]
26.3.12
ranges::empty
[range.
prim.
empty]
26.3.13
ranges::data
[range.
prim.
data]
26.3.14
ranges::cdata
[range.
prim.
cdata]
26.4
Range requirements
[range.
req]
26.4.1
General
[range.
req.
general]
26.4.2
Ranges
[range.
range]
26.4.3
Sized ranges
[range.
sized]
26.4.4
Views
[range.
view]
26.4.5
Other range refinements
[range.
refinements]
26.5
Range utilities
[range.
utility]
26.5.1
General
[range.
utility.
general]
26.5.2
Helper concepts
[range.
utility.
helpers]
26.5.3
View interface
[view.
interface]
26.5.3.1
General
[view.
interface.
general]
26.5.3.2
Members
[view.
interface.
members]
26.5.4
Sub-ranges
[range.
subrange]
26.5.4.1
General
[range.
subrange.
general]
26.5.4.2
Constructors and conversions
[range.
subrange.
ctor]
26.5.4.3
Accessors
[range.
subrange.
access]
26.5.5
Dangling iterator handling
[range.
dangling]
26.5.6
Class template
elements_
of
[range.
elementsof]
26.5.7
Range conversions
[range.
utility.
conv]
26.5.7.1
General
[range.
utility.
conv.
general]
26.5.7.2
ranges::to
[range.
utility.
conv.
to]
26.5.7.3
ranges::to
adaptors
[range.
utility.
conv.
adaptors]
26.6
Range factories
[range.
factories]
26.6.1
General
[range.
factories.
general]
26.6.2
Empty view
[range.
empty]
26.6.2.1
Overview
[range.
empty.
overview]
26.6.2.2
Class template
empty_
view
[range.
empty.
view]
26.6.3
Single view
[range.
single]
26.6.3.1
Overview
[range.
single.
overview]
26.6.3.2
Class template
single_
view
[range.
single.
view]
26.6.4
Iota view
[range.
iota]
26.6.4.1
Overview
[range.
iota.
overview]
26.6.4.2
Class template
iota_
view
[range.
iota.
view]
26.6.4.3
Class
iota_
view::
iterator
[range.
iota.
iterator]
26.6.4.4
Class
iota_
view::
sentinel
[range.
iota.
sentinel]
26.6.5
Repeat view
[range.
repeat]
26.6.5.1
Overview
[range.
repeat.
overview]
26.6.5.2
Class template
repeat_
view
[range.
repeat.
view]
26.6.5.3
Class
repeat_
view::
iterator
[range.
repeat.
iterator]
26.6.6
Istream view
[range.
istream]
26.6.6.1
Overview
[range.
istream.
overview]
26.6.6.2
Class template
basic_
istream_
view
[range.
istream.
view]
26.6.6.3
Class
basic_
istream_
view::
iterator
[range.
istream.
iterator]
26.7
Range adaptors
[range.
adaptors]
26.7.1
General
[range.
adaptors.
general]
26.7.2
Range adaptor objects
[range.
adaptor.
object]
26.7.3
Movable wrapper
[range.
move.
wrap]
26.7.4
Non-propagating cache
[range.
nonprop.
cache]
26.7.5
Range adaptor helpers
[range.
adaptor.
helpers]
26.7.6
All view
[range.
all]
26.7.6.1
General
[range.
all.
general]
26.7.6.2
Class template
ref_
view
[range.
ref.
view]
26.7.6.3
Class template
owning_
view
[range.
owning.
view]
26.7.7
As rvalue view
[range.
as.
rvalue]
26.7.7.1
Overview
[range.
as.
rvalue.
overview]
26.7.7.2
Class template
as_
rvalue_
view
[range.
as.
rvalue.
view]
26.7.8
Filter view
[range.
filter]
26.7.8.1
Overview
[range.
filter.
overview]
26.7.8.2
Class template
filter_
view
[range.
filter.
view]
26.7.8.3
Class
filter_
view::
iterator
[range.
filter.
iterator]
26.7.8.4
Class
filter_
view::
sentinel
[range.
filter.
sentinel]
26.7.9
Transform view
[range.
transform]
26.7.9.1
Overview
[range.
transform.
overview]
26.7.9.2
Class template
transform_
view
[range.
transform.
view]
26.7.9.3
Class template
transform_
view::
iterator
[range.
transform.
iterator]
26.7.9.4
Class template
transform_
view::
sentinel
[range.
transform.
sentinel]
26.7.10
Take view
[range.
take]
26.7.10.1
Overview
[range.
take.
overview]
26.7.10.2
Class template
take_
view
[range.
take.
view]
26.7.10.3
Class template
take_
view::
sentinel
[range.
take.
sentinel]
26.7.11
Take while view
[range.
take.
while]
26.7.11.1
Overview
[range.
take.
while.
overview]
26.7.11.2
Class template
take_
while_
view
[range.
take.
while.
view]
26.7.11.3
Class template
take_
while_
view::
sentinel
[range.
take.
while.
sentinel]
26.7.12
Drop view
[range.
drop]
26.7.12.1
Overview
[range.
drop.
overview]
26.7.12.2
Class template
drop_
view
[range.
drop.
view]
26.7.13
Drop while view
[range.
drop.
while]
26.7.13.1
Overview
[range.
drop.
while.
overview]
26.7.13.2
Class template
drop_
while_
view
[range.
drop.
while.
view]
26.7.14
Join view
[range.
join]
26.7.14.1
Overview
[range.
join.
overview]
26.7.14.2
Class template
join_
view
[range.
join.
view]
26.7.14.3
Class template
join_
view::
iterator
[range.
join.
iterator]
26.7.14.4
Class template
join_
view::
sentinel
[range.
join.
sentinel]
26.7.15
Join with view
[range.
join.
with]
26.7.15.1
Overview
[range.
join.
with.
overview]
26.7.15.2
Class template
join_
with_
view
[range.
join.
with.
view]
26.7.15.3
Class template
join_
with_
view::
iterator
[range.
join.
with.
iterator]
26.7.15.4
Class template
join_
with_
view::
sentinel
[range.
join.
with.
sentinel]
26.7.16
Lazy split view
[range.
lazy.
split]
26.7.16.1
Overview
[range.
lazy.
split.
overview]
26.7.16.2
Class template
lazy_
split_
view
[range.
lazy.
split.
view]
26.7.16.3
Class template
lazy_
split_
view::
outer-iterator
[range.
lazy.
split.
outer]
26.7.16.4
Class
lazy_
split_
view::
outer-iterator
::value_
type
[range.
lazy.
split.
outer.
value]
26.7.16.5
Class template
lazy_
split_
view::
inner-iterator
[range.
lazy.
split.
inner]
26.7.17
Split view
[range.
split]
26.7.17.1
Overview
[range.
split.
overview]
26.7.17.2
Class template
split_
view
[range.
split.
view]
26.7.17.3
Class
split_
view::
iterator
[range.
split.
iterator]
26.7.17.4
Class
split_
view::
sentinel
[range.
split.
sentinel]
26.7.18
Counted view
[range.
counted]
26.7.19
Common view
[range.
common]
26.7.19.1
Overview
[range.
common.
overview]
26.7.19.2
Class template
common_
view
[range.
common.
view]
26.7.20
Reverse view
[range.
reverse]
26.7.20.1
Overview
[range.
reverse.
overview]
26.7.20.2
Class template
reverse_
view
[range.
reverse.
view]
26.7.21
As const view
[range.
as.
const]
26.7.21.1
Overview
[range.
as.
const.
overview]
26.7.21.2
Class template
as_
const_
view
[range.
as.
const.
view]
26.7.22
Elements view
[range.
elements]
26.7.22.1
Overview
[range.
elements.
overview]
26.7.22.2
Class template
elements_
view
[range.
elements.
view]
26.7.22.3
Class template
elements_
view::
iterator
[range.
elements.
iterator]
26.7.22.4
Class template
elements_
view::
sentinel
[range.
elements.
sentinel]
26.7.23
Enumerate view
[range.
enumerate]
26.7.23.1
Overview
[range.
enumerate.
overview]
26.7.23.2
Class template
enumerate_
view
[range.
enumerate.
view]
26.7.23.3
Class template
enumerate_
view::
iterator
[range.
enumerate.
iterator]
26.7.23.4
Class template
enumerate_
view::
sentinel
[range.
enumerate.
sentinel]
26.7.24
Zip view
[range.
zip]
26.7.24.1
Overview
[range.
zip.
overview]
26.7.24.2
Class template
zip_
view
[range.
zip.
view]
26.7.24.3
Class template
zip_
view::
iterator
[range.
zip.
iterator]
26.7.24.4
Class template
zip_
view::
sentinel
[range.
zip.
sentinel]
26.7.25
Zip transform view
[range.
zip.
transform]
26.7.25.1
Overview
[range.
zip.
transform.
overview]
26.7.25.2
Class template
zip_
transform_
view
[range.
zip.
transform.
view]
26.7.25.3
Class template
zip_
transform_
view::
iterator
[range.
zip.
transform.
iterator]
26.7.25.4
Class template
zip_
transform_
view::
sentinel
[range.
zip.
transform.
sentinel]
26.7.26
Adjacent view
[range.
adjacent]
26.7.26.1
Overview
[range.
adjacent.
overview]
26.7.26.2
Class template
adjacent_
view
[range.
adjacent.
view]
26.7.26.3
Class template
adjacent_
view::
iterator
[range.
adjacent.
iterator]
26.7.26.4
Class template
adjacent_
view::
sentinel
[range.
adjacent.
sentinel]
26.7.27
Adjacent transform view
[range.
adjacent.
transform]
26.7.27.1
Overview
[range.
adjacent.
transform.
overview]
26.7.27.2
Class template
adjacent_
transform_
view
[range.
adjacent.
transform.
view]
26.7.27.3
Class template
adjacent_
transform_
view::
iterator
[range.
adjacent.
transform.
iterator]
26.7.27.4
Class template
adjacent_
transform_
view::
sentinel
[range.
adjacent.
transform.
sentinel]
26.7.28
Chunk view
[range.
chunk]
26.7.28.1
Overview
[range.
chunk.
overview]
26.7.28.2
Class template
chunk_
view
for input ranges
[range.
chunk.
view.
input]
26.7.28.3
Class
chunk_
view::
outer-iterator
[range.
chunk.
outer.
iter]
26.7.28.4
Class
chunk_
view::
outer-iterator
::value_
type
[range.
chunk.
outer.
value]
26.7.28.5
Class
chunk_
view::
inner-iterator
[range.
chunk.
inner.
iter]
26.7.28.6
Class template
chunk_
view
for forward ranges
[range.
chunk.
view.
fwd]
26.7.28.7
Class template
chunk_
view::
iterator
for forward ranges
[range.
chunk.
fwd.
iter]
26.7.29
Slide view
[range.
slide]
26.7.29.1
Overview
[range.
slide.
overview]
26.7.29.2
Class template
slide_
view
[range.
slide.
view]
26.7.29.3
Class template
slide_
view::
iterator
[range.
slide.
iterator]
26.7.29.4
Class
slide_
view::
sentinel
[range.
slide.
sentinel]
26.7.30
Chunk by view
[range.
chunk.
by]
26.7.30.1
Overview
[range.
chunk.
by.
overview]
26.7.30.2
Class template
chunk_
by_
view
[range.
chunk.
by.
view]
26.7.30.3
Class
chunk_
by_
view::
iterator
[range.
chunk.
by.
iter]
26.7.31
Stride view
[range.
stride]
26.7.31.1
Overview
[range.
stride.
overview]
26.7.31.2
Class template
stride_
view
[range.
stride.
view]
26.7.31.3
Class template
stride_
view::
iterator
[range.
stride.
iterator]
26.7.32
Cartesian product view
[range.
cartesian]
26.7.32.1
Overview
[range.
cartesian.
overview]
26.7.32.2
Class template
cartesian_
product_
view
[range.
cartesian.
view]
26.7.32.3
Class template
cartesian_
product_
view::
iterator
[range.
cartesian.
iterator]
26.8
Range generators
[coro.
generator]
26.8.1
Overview
[coroutine.
generator.
overview]
26.8.2
Header
<generator>
synopsis
[generator.
syn]
26.8.3
Class template
generator
[coro.
generator.
class]
26.8.4
Members
[coro.
generator.
members]
26.8.5
Class
generator::promise_
type
[coro.
generator.
promise]
26.8.6
Class
generator::
iterator
[coro.
generator.
iterator]
27
Algorithms library
[algorithms]
[algorithms]
27.1
General
[algorithms.
general]
27.2
Algorithms requirements
[algorithms.
requirements]
27.3
Parallel algorithms
[algorithms.
parallel]
27.3.1
Preamble
[algorithms.
parallel.
defns]
27.3.2
Requirements on user-provided function objects
[algorithms.
parallel.
user]
27.3.3
Effect of execution policies on algorithm execution
[algorithms.
parallel.
exec]
27.3.4
Parallel algorithm exceptions
[algorithms.
parallel.
exceptions]
27.3.5
ExecutionPolicy
algorithm overloads
[algorithms.
parallel.
overloads]
27.4
Header
<algorithm>
synopsis
[algorithm.
syn]
27.5
Algorithm result types
[algorithms.
results]
27.6
Non-modifying sequence operations
[alg.
nonmodifying]
27.6.1
All of
[alg.
all.
of]
27.6.2
Any of
[alg.
any.
of]
27.6.3
None of
[alg.
none.
of]
27.6.4
Contains
[alg.
contains]
27.6.5
For each
[alg.
foreach]
27.6.6
Find
[alg.
find]
27.6.7
Find last
[alg.
find.
last]
27.6.8
Find end
[alg.
find.
end]
27.6.9
Find first
[alg.
find.
first.
of]
27.6.10
Adjacent find
[alg.
adjacent.
find]
27.6.11
Count
[alg.
count]
27.6.12
Mismatch
[mismatch]
27.6.13
Equal
[alg.
equal]
27.6.14
Is permutation
[alg.
is.
permutation]
27.6.15
Search
[alg.
search]
27.6.16
Starts with
[alg.
starts.
with]
27.6.17
Ends with
[alg.
ends.
with]
27.6.18
Fold
[alg.
fold]
27.7
Mutating sequence operations
[alg.
modifying.
operations]
27.7.1
Copy
[alg.
copy]
27.7.2
Move
[alg.
move]
27.7.3
Swap
[alg.
swap]
27.7.4
Transform
[alg.
transform]
27.7.5
Replace
[alg.
replace]
27.7.6
Fill
[alg.
fill]
27.7.7
Generate
[alg.
generate]
27.7.8
Remove
[alg.
remove]
27.7.9
Unique
[alg.
unique]
27.7.10
Reverse
[alg.
reverse]
27.7.11
Rotate
[alg.
rotate]
27.7.12
Sample
[alg.
random.
sample]
27.7.13
Shuffle
[alg.
random.
shuffle]
27.7.14
Shift
[alg.
shift]
27.8
Sorting and related operations
[alg.
sorting]
27.8.1
General
[alg.
sorting.
general]
27.8.2
Sorting
[alg.
sort]
27.8.2.1
sort
[sort]
27.8.2.2
stable_
sort
[stable.
sort]
27.8.2.3
partial_
sort
[partial.
sort]
27.8.2.4
partial_
sort_
copy
[partial.
sort.
copy]
27.8.2.5
is_
sorted
[is.
sorted]
27.8.3
Nth element
[alg.
nth.
element]
27.8.4
Binary search
[alg.
binary.
search]
27.8.4.1
General
[alg.
binary.
search.
general]
27.8.4.2
lower_
bound
[lower.
bound]
27.8.4.3
upper_
bound
[upper.
bound]
27.8.4.4
equal_
range
[equal.
range]
27.8.4.5
binary_
search
[binary.
search]
27.8.5
Partitions
[alg.
partitions]
27.8.6
Merge
[alg.
merge]
27.8.7
Set operations on sorted structures
[alg.
set.
operations]
27.8.7.1
General
[alg.
set.
operations.
general]
27.8.7.2
includes
[includes]
27.8.7.3
set_
union
[set.
union]
27.8.7.4
set_
intersection
[set.
intersection]
27.8.7.5
set_
difference
[set.
difference]
27.8.7.6
set_
symmetric_
difference
[set.
symmetric.
difference]
27.8.8
Heap operations
[alg.
heap.
operations]
27.8.8.1
General
[alg.
heap.
operations.
general]
27.8.8.2
push_
heap
[push.
heap]
27.8.8.3
pop_
heap
[pop.
heap]
27.8.8.4
make_
heap
[make.
heap]
27.8.8.5
sort_
heap
[sort.
heap]
27.8.8.6
is_
heap
[is.
heap]
27.8.9
Minimum and maximum
[alg.
min.
max]
27.8.10
Bounded value
[alg.
clamp]
27.8.11
Lexicographical comparison
[alg.
lex.
comparison]
27.8.12
Three-way comparison algorithms
[alg.
three.
way]
27.8.13
Permutation generators
[alg.
permutation.
generators]
27.9
Header
<numeric>
synopsis
[numeric.
ops.
overview]
27.10
Generalized numeric operations
[numeric.
ops]
27.10.1
General
[numeric.
ops.
general]
27.10.2
Definitions
[numerics.
defns]
27.10.3
Accumulate
[accumulate]
27.10.4
Reduce
[reduce]
27.10.5
Inner product
[inner.
product]
27.10.6
Transform reduce
[transform.
reduce]
27.10.7
Partial sum
[partial.
sum]
27.10.8
Exclusive scan
[exclusive.
scan]
27.10.9
Inclusive scan
[inclusive.
scan]
27.10.10
Transform exclusive scan
[transform.
exclusive.
scan]
27.10.11
Transform inclusive scan
[transform.
inclusive.
scan]
27.10.12
Adjacent difference
[adjacent.
difference]
27.10.13
Iota
[numeric.
iota]
27.10.14
Greatest common divisor
[numeric.
ops.
gcd]
27.10.15
Least common multiple
[numeric.
ops.
lcm]
27.10.16
Midpoint
[numeric.
ops.
midpoint]
27.11
Specialized
<memory>
algorithms
[specialized.
algorithms]
27.11.1
General
[specialized.
algorithms.
general]
27.11.2
Special memory concepts
[special.
mem.
concepts]
27.11.3
uninitialized_
default_
construct
[uninitialized.
construct.
default]
27.11.4
uninitialized_
value_
construct
[uninitialized.
construct.
value]
27.11.5
uninitialized_
copy
[uninitialized.
copy]
27.11.6
uninitialized_
move
[uninitialized.
move]
27.11.7
uninitialized_
fill
[uninitialized.
fill]
27.11.8
construct_
at
[specialized.
construct]
27.11.9
destroy
[specialized.
destroy]
27.12
C library algorithms
[alg.
c.
library]
28
Numerics library
[numerics]
[numerics]
28.1
General
[numerics.
general]
28.2
Numeric type requirements
[numeric.
requirements]
28.3
The floating-point environment
[cfenv]
28.3.1
Header
<cfenv>
synopsis
[cfenv.
syn]
28.3.2
Threads
[cfenv.
thread]
28.4
Complex numbers
[complex.
numbers]
28.4.1
General
[complex.
numbers.
general]
28.4.2
Header
<complex>
synopsis
[complex.
syn]
28.4.3
Class template
complex
[complex]
28.4.4
Member functions
[complex.
members]
28.4.5
Member operators
[complex.
member.
ops]
28.4.6
Non-member operations
[complex.
ops]
28.4.7
Value operations
[complex.
value.
ops]
28.4.8
Transcendentals
[complex.
transcendentals]
28.4.9
Additional overloads
[cmplx.
over]
28.4.10
Suffixes for complex number literals
[complex.
literals]
28.5
Random number generation
[rand]
28.5.1
General
[rand.
general]
28.5.2
Header
<random>
synopsis
[rand.
synopsis]
28.5.3
Requirements
[rand.
req]
28.5.3.1
General requirements
[rand.
req.
genl]
28.5.3.2
Seed sequence requirements
[rand.
req.
seedseq]
28.5.3.3
Uniform random bit generator requirements
[rand.
req.
urng]
28.5.3.4
Random number engine requirements
[rand.
req.
eng]
28.5.3.5
Random number engine adaptor requirements
[rand.
req.
adapt]
28.5.3.6
Random number distribution requirements
[rand.
req.
dist]
28.5.4
Random number engine class templates
[rand.
eng]
28.5.4.1
General
[rand.
eng.
general]
28.5.4.2
Class template
linear_
congruential_
engine
[rand.
eng.
lcong]
28.5.4.3
Class template
mersenne_
twister_
engine
[rand.
eng.
mers]
28.5.4.4
Class template
subtract_
with_
carry_
engine
[rand.
eng.
sub]
28.5.5
Random number engine adaptor class templates
[rand.
adapt]
28.5.5.1
In general
[rand.
adapt.
general]
28.5.5.2
Class template
discard_
block_
engine
[rand.
adapt.
disc]
28.5.5.3
Class template
independent_
bits_
engine
[rand.
adapt.
ibits]
28.5.5.4
Class template
shuffle_
order_
engine
[rand.
adapt.
shuf]
28.5.6
Engines and engine adaptors with predefined parameters
[rand.
predef]
28.5.7
Class
random_
device
[rand.
device]
28.5.8
Utilities
[rand.
util]
28.5.8.1
Class
seed_
seq
[rand.
util.
seedseq]
28.5.8.2
Function template
generate_
canonical
[rand.
util.
canonical]
28.5.9
Random number distribution class templates
[rand.
dist]
28.5.9.1
In general
[rand.
dist.
general]
28.5.9.2
Uniform distributions
[rand.
dist.
uni]
28.5.9.2.1
Class template
uniform_
int_
distribution
[rand.
dist.
uni.
int]
28.5.9.2.2
Class template
uniform_
real_
distribution
[rand.
dist.
uni.
real]
28.5.9.3
Bernoulli distributions
[rand.
dist.
bern]
28.5.9.3.1
Class
bernoulli_
distribution
[rand.
dist.
bern.
bernoulli]
28.5.9.3.2
Class template
binomial_
distribution
[rand.
dist.
bern.
bin]
28.5.9.3.3
Class template
geometric_
distribution
[rand.
dist.
bern.
geo]
28.5.9.3.4
Class template
negative_
binomial_
distribution
[rand.
dist.
bern.
negbin]
28.5.9.4
Poisson distributions
[rand.
dist.
pois]
28.5.9.4.1
Class template
poisson_
distribution
[rand.
dist.
pois.
poisson]
28.5.9.4.2
Class template
exponential_
distribution
[rand.
dist.
pois.
exp]
28.5.9.4.3
Class template
gamma_
distribution
[rand.
dist.
pois.
gamma]
28.5.9.4.4
Class template
weibull_
distribution
[rand.
dist.
pois.
weibull]
28.5.9.4.5
Class template
extreme_
value_
distribution
[rand.
dist.
pois.
extreme]
28.5.9.5
Normal distributions
[rand.
dist.
norm]
28.5.9.5.1
Class template
normal_
distribution
[rand.
dist.
norm.
normal]
28.5.9.5.2
Class template
lognormal_
distribution
[rand.
dist.
norm.
lognormal]
28.5.9.5.3
Class template
chi_
squared_
distribution
[rand.
dist.
norm.
chisq]
28.5.9.5.4
Class template
cauchy_
distribution
[rand.
dist.
norm.
cauchy]
28.5.9.5.5
Class template
fisher_
f_
distribution
[rand.
dist.
norm.
f]
28.5.9.5.6
Class template
student_
t_
distribution
[rand.
dist.
norm.
t]
28.5.9.6
Sampling distributions
[rand.
dist.
samp]
28.5.9.6.1
Class template
discrete_
distribution
[rand.
dist.
samp.
discrete]
28.5.9.6.2
Class template
piecewise_
constant_
distribution
[rand.
dist.
samp.
pconst]
28.5.9.6.3
Class template
piecewise_
linear_
distribution
[rand.
dist.
samp.
plinear]
28.5.10
Low-quality random number generation
[c.
math.
rand]
28.6
Numeric arrays
[numarray]
28.6.1
Header
<valarray>
synopsis
[valarray.
syn]
28.6.2
Class template
valarray
[template.
valarray]
28.6.2.1
Overview
[template.
valarray.
overview]
28.6.2.2
Constructors
[valarray.
cons]
28.6.2.3
Assignment
[valarray.
assign]
28.6.2.4
Element access
[valarray.
access]
28.6.2.5
Subset operations
[valarray.
sub]
28.6.2.6
Unary operators
[valarray.
unary]
28.6.2.7
Compound assignment
[valarray.
cassign]
28.6.2.8
Member functions
[valarray.
members]
28.6.3
valarray
non-member operations
[valarray.
nonmembers]
28.6.3.1
Binary operators
[valarray.
binary]
28.6.3.2
Logical operators
[valarray.
comparison]
28.6.3.3
Transcendentals
[valarray.
transcend]
28.6.3.4
Specialized algorithms
[valarray.
special]
28.6.4
Class
slice
[class.
slice]
28.6.4.1
Overview
[class.
slice.
overview]
28.6.4.2
Constructors
[cons.
slice]
28.6.4.3
Access functions
[slice.
access]
28.6.4.4
Operators
[slice.
ops]
28.6.5
Class template
slice_
array
[template.
slice.
array]
28.6.5.1
Overview
[template.
slice.
array.
overview]
28.6.5.2
Assignment
[slice.
arr.
assign]
28.6.5.3
Compound assignment
[slice.
arr.
comp.
assign]
28.6.5.4
Fill function
[slice.
arr.
fill]
28.6.6
The
gslice
class
[class.
gslice]
28.6.6.1
Overview
[class.
gslice.
overview]
28.6.6.2
Constructors
[gslice.
cons]
28.6.6.3
Access functions
[gslice.
access]
28.6.7
Class template
gslice_
array
[template.
gslice.
array]
28.6.7.1
Overview
[template.
gslice.
array.
overview]
28.6.7.2
Assignment
[gslice.
array.
assign]
28.6.7.3
Compound assignment
[gslice.
array.
comp.
assign]
28.6.7.4
Fill function
[gslice.
array.
fill]
28.6.8
Class template
mask_
array
[template.
mask.
array]
28.6.8.1
Overview
[template.
mask.
array.
overview]
28.6.8.2
Assignment
[mask.
array.
assign]
28.6.8.3
Compound assignment
[mask.
array.
comp.
assign]
28.6.8.4
Fill function
[mask.
array.
fill]
28.6.9
Class template
indirect_
array
[template.
indirect.
array]
28.6.9.1
Overview
[template.
indirect.
array.
overview]
28.6.9.2
Assignment
[indirect.
array.
assign]
28.6.9.3
Compound assignment
[indirect.
array.
comp.
assign]
28.6.9.4
Fill function
[indirect.
array.
fill]
28.6.10
valarray
range access
[valarray.
range]
28.7
Mathematical functions for floating-point types
[c.
math]
28.7.1
Header
<cmath>
synopsis
[cmath.
syn]
28.7.2
Absolute values
[c.
math.
abs]
28.7.3
Three-dimensional hypotenuse
[c.
math.
hypot3]
28.7.4
Linear interpolation
[c.
math.
lerp]
28.7.5
Classification / comparison functions
[c.
math.
fpclass]
28.7.6
Mathematical special functions
[sf.
cmath]
28.7.6.1
General
[sf.
cmath.
general]
28.7.6.2
Associated Laguerre polynomials
[sf.
cmath.
assoc.
laguerre]
28.7.6.3
Associated Legendre functions
[sf.
cmath.
assoc.
legendre]
28.7.6.4
Beta function
[sf.
cmath.
beta]
28.7.6.5
Complete elliptic integral of the first kind
[sf.
cmath.
comp.
ellint.
1]
28.7.6.6
Complete elliptic integral of the second kind
[sf.
cmath.
comp.
ellint.
2]
28.7.6.7
Complete elliptic integral of the third kind
[sf.
cmath.
comp.
ellint.
3]
28.7.6.8
Regular modified cylindrical Bessel functions
[sf.
cmath.
cyl.
bessel.
i]
28.7.6.9
Cylindrical Bessel functions of the first kind
[sf.
cmath.
cyl.
bessel.
j]
28.7.6.10
Irregular modified cylindrical Bessel functions
[sf.
cmath.
cyl.
bessel.
k]
28.7.6.11
Cylindrical Neumann functions
[sf.
cmath.
cyl.
neumann]
28.7.6.12
Incomplete elliptic integral of the first kind
[sf.
cmath.
ellint.
1]
28.7.6.13
Incomplete elliptic integral of the second kind
[sf.
cmath.
ellint.
2]
28.7.6.14
Incomplete elliptic integral of the third kind
[sf.
cmath.
ellint.
3]
28.7.6.15
Exponential integral
[sf.
cmath.
expint]
28.7.6.16
Hermite polynomials
[sf.
cmath.
hermite]
28.7.6.17
Laguerre polynomials
[sf.
cmath.
laguerre]
28.7.6.18
Legendre polynomials
[sf.
cmath.
legendre]
28.7.6.19
Riemann zeta function
[sf.
cmath.
riemann.
zeta]
28.7.6.20
Spherical Bessel functions of the first kind
[sf.
cmath.
sph.
bessel]
28.7.6.21
Spherical associated Legendre functions
[sf.
cmath.
sph.
legendre]
28.7.6.22
Spherical Neumann functions
[sf.
cmath.
sph.
neumann]
28.8
Numbers
[numbers]
28.8.1
Header
<numbers>
synopsis
[numbers.
syn]
28.8.2
Mathematical constants
[math.
constants]
29
Time library
[time]
[time]
29.1
General
[time.
general]
29.2
Header
<chrono>
synopsis
[time.
syn]
29.3
Cpp17Clock
requirements
[time.
clock.
req]
29.4
Time-related traits
[time.
traits]
29.4.1
treat_
as_
floating_
point
[time.
traits.
is.
fp]
29.4.2
duration_
values
[time.
traits.
duration.
values]
29.4.3
Specializations of
common_
type
[time.
traits.
specializations]
29.4.4
Class template
is_
clock
[time.
traits.
is.
clock]
29.5
Class template
duration
[time.
duration]
29.5.1
General
[time.
duration.
general]
29.5.2
Constructors
[time.
duration.
cons]
29.5.3
Observer
[time.
duration.
observer]
29.5.4
Arithmetic
[time.
duration.
arithmetic]
29.5.5
Special values
[time.
duration.
special]
29.5.6
Non-member arithmetic
[time.
duration.
nonmember]
29.5.7
Comparisons
[time.
duration.
comparisons]
29.5.8
Conversions
[time.
duration.
cast]
29.5.9
Suffixes for duration literals
[time.
duration.
literals]
29.5.10
Algorithms
[time.
duration.
alg]
29.5.11
I/O
[time.
duration.
io]
29.6
Class template
time_
point
[time.
point]
29.6.1
General
[time.
point.
general]
29.6.2
Constructors
[time.
point.
cons]
29.6.3
Observer
[time.
point.
observer]
29.6.4
Arithmetic
[time.
point.
arithmetic]
29.6.5
Special values
[time.
point.
special]
29.6.6
Non-member arithmetic
[time.
point.
nonmember]
29.6.7
Comparisons
[time.
point.
comparisons]
29.6.8
Conversions
[time.
point.
cast]
29.7
Clocks
[time.
clock]
29.7.1
General
[time.
clock.
general]
29.7.2
Class
system_
clock
[time.
clock.
system]
29.7.2.1
Overview
[time.
clock.
system.
overview]
29.7.2.2
Members
[time.
clock.
system.
members]
29.7.2.3
Non-member functions
[time.
clock.
system.
nonmembers]
29.7.3
Class
utc_
clock
[time.
clock.
utc]
29.7.3.1
Overview
[time.
clock.
utc.
overview]
29.7.3.2
Member functions
[time.
clock.
utc.
members]
29.7.3.3
Non-member functions
[time.
clock.
utc.
nonmembers]
29.7.4
Class
tai_
clock
[time.
clock.
tai]
29.7.4.1
Overview
[time.
clock.
tai.
overview]
29.7.4.2
Member functions
[time.
clock.
tai.
members]
29.7.4.3
Non-member functions
[time.
clock.
tai.
nonmembers]
29.7.5
Class
gps_
clock
[time.
clock.
gps]
29.7.5.1
Overview
[time.
clock.
gps.
overview]
29.7.5.2
Member functions
[time.
clock.
gps.
members]
29.7.5.3
Non-member functions
[time.
clock.
gps.
nonmembers]
29.7.6
Type
file_
clock
[time.
clock.
file]
29.7.6.1
Overview
[time.
clock.
file.
overview]
29.7.6.2
Member functions
[time.
clock.
file.
members]
29.7.6.3
Non-member functions
[time.
clock.
file.
nonmembers]
29.7.7
Class
steady_
clock
[time.
clock.
steady]
29.7.8
Class
high_
resolution_
clock
[time.
clock.
hires]
29.7.9
Local time
[time.
clock.
local]
29.7.10
time_
point
conversions
[time.
clock.
cast]
29.7.10.1
Class template
clock_
time_
conversion
[time.
clock.
conv]
29.7.10.2
Identity conversions
[time.
clock.
cast.
id]
29.7.10.3
Conversions between
system_
clock
and
utc_
clock
[time.
clock.
cast.
sys.
utc]
29.7.10.4
Conversions between
system_
clock
and other clocks
[time.
clock.
cast.
sys]
29.7.10.5
Conversions between
utc_
clock
and other clocks
[time.
clock.
cast.
utc]
29.7.10.6
Function template
clock_
cast
[time.
clock.
cast.
fn]
29.8
The civil calendar
[time.
cal]
29.8.1
In general
[time.
cal.
general]
29.8.2
Class
last_
spec
[time.
cal.
last]
29.8.3
Class
day
[time.
cal.
day]
29.8.3.1
Overview
[time.
cal.
day.
overview]
29.8.3.2
Member functions
[time.
cal.
day.
members]
29.8.3.3
Non-member functions
[time.
cal.
day.
nonmembers]
29.8.4
Class
month
[time.
cal.
month]
29.8.4.1
Overview
[time.
cal.
month.
overview]
29.8.4.2
Member functions
[time.
cal.
month.
members]
29.8.4.3
Non-member functions
[time.
cal.
month.
nonmembers]
29.8.5
Class
year
[time.
cal.
year]
29.8.5.1
Overview
[time.
cal.
year.
overview]
29.8.5.2
Member functions
[time.
cal.
year.
members]
29.8.5.3
Non-member functions
[time.
cal.
year.
nonmembers]
29.8.6
Class
weekday
[time.
cal.
wd]
29.8.6.1
Overview
[time.
cal.
wd.
overview]
29.8.6.2
Member functions
[time.
cal.
wd.
members]
29.8.6.3
Non-member functions
[time.
cal.
wd.
nonmembers]
29.8.7
Class
weekday_
indexed
[time.
cal.
wdidx]
29.8.7.1
Overview
[time.
cal.
wdidx.
overview]
29.8.7.2
Member functions
[time.
cal.
wdidx.
members]
29.8.7.3
Non-member functions
[time.
cal.
wdidx.
nonmembers]
29.8.8
Class
weekday_
last
[time.
cal.
wdlast]
29.8.8.1
Overview
[time.
cal.
wdlast.
overview]
29.8.8.2
Member functions
[time.
cal.
wdlast.
members]
29.8.8.3
Non-member functions
[time.
cal.
wdlast.
nonmembers]
29.8.9
Class
month_
day
[time.
cal.
md]
29.8.9.1
Overview
[time.
cal.
md.
overview]
29.8.9.2
Member functions
[time.
cal.
md.
members]
29.8.9.3
Non-member functions
[time.
cal.
md.
nonmembers]
29.8.10
Class
month_
day_
last
[time.
cal.
mdlast]
29.8.11
Class
month_
weekday
[time.
cal.
mwd]
29.8.11.1
Overview
[time.
cal.
mwd.
overview]
29.8.11.2
Member functions
[time.
cal.
mwd.
members]
29.8.11.3
Non-member functions
[time.
cal.
mwd.
nonmembers]
29.8.12
Class
month_
weekday_
last
[time.
cal.
mwdlast]
29.8.12.1
Overview
[time.
cal.
mwdlast.
overview]
29.8.12.2
Member functions
[time.
cal.
mwdlast.
members]
29.8.12.3
Non-member functions
[time.
cal.
mwdlast.
nonmembers]
29.8.13
Class
year_
month
[time.
cal.
ym]
29.8.13.1
Overview
[time.
cal.
ym.
overview]
29.8.13.2
Member functions
[time.
cal.
ym.
members]
29.8.13.3
Non-member functions
[time.
cal.
ym.
nonmembers]
29.8.14
Class
year_
month_
day
[time.
cal.
ymd]
29.8.14.1
Overview
[time.
cal.
ymd.
overview]
29.8.14.2
Member functions
[time.
cal.
ymd.
members]
29.8.14.3
Non-member functions
[time.
cal.
ymd.
nonmembers]
29.8.15
Class
year_
month_
day_
last
[time.
cal.
ymdlast]
29.8.15.1
Overview
[time.
cal.
ymdlast.
overview]
29.8.15.2
Member functions
[time.
cal.
ymdlast.
members]
29.8.15.3
Non-member functions
[time.
cal.
ymdlast.
nonmembers]
29.8.16
Class
year_
month_
weekday
[time.
cal.
ymwd]
29.8.16.1
Overview
[time.
cal.
ymwd.
overview]
29.8.16.2
Member functions
[time.
cal.
ymwd.
members]
29.8.16.3
Non-member functions
[time.
cal.
ymwd.
nonmembers]
29.8.17
Class
year_
month_
weekday_
last
[time.
cal.
ymwdlast]
29.8.17.1
Overview
[time.
cal.
ymwdlast.
overview]
29.8.17.2
Member functions
[time.
cal.
ymwdlast.
members]
29.8.17.3
Non-member functions
[time.
cal.
ymwdlast.
nonmembers]
29.8.18
Conventional syntax operators
[time.
cal.
operators]
29.9
Class template
hh_
mm_
ss
[time.
hms]
29.9.1
Overview
[time.
hms.
overview]
29.9.2
Members
[time.
hms.
members]
29.9.3
Non-members
[time.
hms.
nonmembers]
29.10
12/24 hours functions
[time.
12]
29.11
Time zones
[time.
zone]
29.11.1
In general
[time.
zone.
general]
29.11.2
Time zone database
[time.
zone.
db]
29.11.2.1
Class
tzdb
[time.
zone.
db.
tzdb]
29.11.2.2
Class
tzdb_
list
[time.
zone.
db.
list]
29.11.2.3
Time zone database access
[time.
zone.
db.
access]
29.11.2.4
Remote time zone database support
[time.
zone.
db.
remote]
29.11.3
Exception classes
[time.
zone.
exception]
29.11.3.1
Class
nonexistent_
local_
time
[time.
zone.
exception.
nonexist]
29.11.3.2
Class
ambiguous_
local_
time
[time.
zone.
exception.
ambig]
29.11.4
Information classes
[time.
zone.
info]
29.11.4.1
Class
sys_
info
[time.
zone.
info.
sys]
29.11.4.2
Class
local_
info
[time.
zone.
info.
local]
29.11.5
Class
time_
zone
[time.
zone.
timezone]
29.11.5.1
Overview
[time.
zone.
overview]
29.11.5.2
Member functions
[time.
zone.
members]
29.11.5.3
Non-member functions
[time.
zone.
nonmembers]
29.11.6
Class template
zoned_
traits
[time.
zone.
zonedtraits]
29.11.7
Class template
zoned_
time
[time.
zone.
zonedtime]
29.11.7.1
Overview
[time.
zone.
zonedtime.
overview]
29.11.7.2
Constructors
[time.
zone.
zonedtime.
ctor]
29.11.7.3
Member functions
[time.
zone.
zonedtime.
members]
29.11.7.4
Non-member functions
[time.
zone.
zonedtime.
nonmembers]
29.11.8
Class
leap_
second
[time.
zone.
leap]
29.11.8.1
Overview
[time.
zone.
leap.
overview]
29.11.8.2
Member functions
[time.
zone.
leap.
members]
29.11.8.3
Non-member functions
[time.
zone.
leap.
nonmembers]
29.11.9
Class
time_
zone_
link
[time.
zone.
link]
29.11.9.1
Overview
[time.
zone.
link.
overview]
29.11.9.2
Member functions
[time.
zone.
link.
members]
29.11.9.3
Non-member functions
[time.
zone.
link.
nonmembers]
29.12
Formatting
[time.
format]
29.13
Parsing
[time.
parse]
29.14
Header
<ctime>
synopsis
[ctime.
syn]
30
Localization library
[localization]
[localization]
30.1
General
[localization.
general]
30.2
Header
<locale>
synopsis
[locale.
syn]
30.3
Locales
[locales]
30.3.1
Class
locale
[locale]
30.3.1.1
General
[locale.
general]
30.3.1.2
Types
[locale.
types]
30.3.1.2.1
Type
locale::category
[locale.
category]
30.3.1.2.2
Class
locale::facet
[locale.
facet]
30.3.1.2.3
Class
locale::id
[locale.
id]
30.3.1.3
Constructors and destructor
[locale.
cons]
30.3.1.4
Members
[locale.
members]
30.3.1.5
Operators
[locale.
operators]
30.3.1.6
Static members
[locale.
statics]
30.3.2
locale
globals
[locale.
global.
templates]
30.3.3
Convenience interfaces
[locale.
convenience]
30.3.3.1
Character classification
[classification]
30.3.3.2
Character conversions
[conversions.
character]
30.4
Standard
locale
categories
[locale.
categories]
30.4.1
General
[locale.
categories.
general]
30.4.2
The
ctype
category
[category.
ctype]
30.4.2.1
General
[category.
ctype.
general]
30.4.2.2
Class template
ctype
[locale.
ctype]
30.4.2.2.1
General
[locale.
ctype.
general]
30.4.2.2.2
ctype
members
[locale.
ctype.
members]
30.4.2.2.3
ctype
virtual functions
[locale.
ctype.
virtuals]
30.4.2.3
Class template
ctype_
byname
[locale.
ctype.
byname]
30.4.2.4
ctype<char>
specialization
[facet.
ctype.
special]
30.4.2.4.1
General
[facet.
ctype.
special.
general]
30.4.2.4.2
Destructor
[facet.
ctype.
char.
dtor]
30.4.2.4.3
Members
[facet.
ctype.
char.
members]
30.4.2.4.4
Static members
[facet.
ctype.
char.
statics]
30.4.2.4.5
Virtual functions
[facet.
ctype.
char.
virtuals]
30.4.2.5
Class template
codecvt
[locale.
codecvt]
30.4.2.5.1
General
[locale.
codecvt.
general]
30.4.2.5.2
Members
[locale.
codecvt.
members]
30.4.2.5.3
Virtual functions
[locale.
codecvt.
virtuals]
30.4.2.6
Class template
codecvt_
byname
[locale.
codecvt.
byname]
30.4.3
The numeric category
[category.
numeric]
30.4.3.1
General
[category.
numeric.
general]
30.4.3.2
Class template
num_
get
[locale.
num.
get]
30.4.3.2.1
General
[locale.
num.
get.
general]
30.4.3.2.2
Members
[facet.
num.
get.
members]
30.4.3.2.3
Virtual functions
[facet.
num.
get.
virtuals]
30.4.3.3
Class template
num_
put
[locale.
nm.
put]
30.4.3.3.1
General
[locale.
nm.
put.
general]
30.4.3.3.2
Members
[facet.
num.
put.
members]
30.4.3.3.3
Virtual functions
[facet.
num.
put.
virtuals]
30.4.4
The numeric punctuation facet
[facet.
numpunct]
30.4.4.1
Class template
numpunct
[locale.
numpunct]
30.4.4.1.1
General
[locale.
numpunct.
general]
30.4.4.1.2
Members
[facet.
numpunct.
members]
30.4.4.1.3
Virtual functions
[facet.
numpunct.
virtuals]
30.4.4.2
Class template
numpunct_
byname
[locale.
numpunct.
byname]
30.4.5
The collate category
[category.
collate]
30.4.5.1
Class template
collate
[locale.
collate]
30.4.5.1.1
General
[locale.
collate.
general]
30.4.5.1.2
Members
[locale.
collate.
members]
30.4.5.1.3
Virtual functions
[locale.
collate.
virtuals]
30.4.5.2
Class template
collate_
byname
[locale.
collate.
byname]
30.4.6
The time category
[category.
time]
30.4.6.1
General
[category.
time.
general]
30.4.6.2
Class template
time_
get
[locale.
time.
get]
30.4.6.2.1
General
[locale.
time.
get.
general]
30.4.6.2.2
Members
[locale.
time.
get.
members]
30.4.6.2.3
Virtual functions
[locale.
time.
get.
virtuals]
30.4.6.3
Class template
time_
get_
byname
[locale.
time.
get.
byname]
30.4.6.4
Class template
time_
put
[locale.
time.
put]
30.4.6.4.1
Members
[locale.
time.
put.
members]
30.4.6.4.2
Virtual functions
[locale.
time.
put.
virtuals]
30.4.6.5
Class template
time_
put_
byname
[locale.
time.
put.
byname]
30.4.7
The monetary category
[category.
monetary]
30.4.7.1
General
[category.
monetary.
general]
30.4.7.2
Class template
money_
get
[locale.
money.
get]
30.4.7.2.1
Members
[locale.
money.
get.
members]
30.4.7.2.2
Virtual functions
[locale.
money.
get.
virtuals]
30.4.7.3
Class template
money_
put
[locale.
money.
put]
30.4.7.3.1
Members
[locale.
money.
put.
members]
30.4.7.3.2
Virtual functions
[locale.
money.
put.
virtuals]
30.4.7.4
Class template
moneypunct
[locale.
moneypunct]
30.4.7.4.1
General
[locale.
moneypunct.
general]
30.4.7.4.2
Members
[locale.
moneypunct.
members]
30.4.7.4.3
Virtual functions
[locale.
moneypunct.
virtuals]
30.4.7.5
Class template
moneypunct_
byname
[locale.
moneypunct.
byname]
30.4.8
The message retrieval category
[category.
messages]
30.4.8.1
General
[category.
messages.
general]
30.4.8.2
Class template
messages
[locale.
messages]
30.4.8.2.1
General
[locale.
messages.
general]
30.4.8.2.2
Members
[locale.
messages.
members]
30.4.8.2.3
Virtual functions
[locale.
messages.
virtuals]
30.4.8.3
Class template
messages_
byname
[locale.
messages.
byname]
30.5
C library locales
[c.
locales]
30.5.1
Header
<clocale>
synopsis
[clocale.
syn]
30.5.2
Data races
[clocale.
data.
races]
31
Input/output library
[input.output]
[input.
output]
31.1
General
[input.
output.
general]
31.2
Iostreams requirements
[iostreams.
requirements]
31.2.1
Imbue limitations
[iostream.
limits.
imbue]
31.2.2
Types
[stream.
types]
31.2.3
Positioning type limitations
[iostreams.
limits.
pos]
31.2.4
Thread safety
[iostreams.
threadsafety]
31.3
Forward declarations
[iostream.
forward]
31.3.1
Header
<iosfwd>
synopsis
[iosfwd.
syn]
31.3.2
Overview
[iostream.
forward.
overview]
31.4
Standard iostream objects
[iostream.
objects]
31.4.1
Header
<iostream>
synopsis
[iostream.
syn]
31.4.2
Overview
[iostream.
objects.
overview]
31.4.3
Narrow stream objects
[narrow.
stream.
objects]
31.4.4
Wide stream objects
[wide.
stream.
objects]
31.5
Iostreams base classes
[iostreams.
base]
31.5.1
Header
<ios>
synopsis
[ios.
syn]
31.5.2
Class
ios_
base
[ios.
base]
31.5.2.1
General
[ios.
base.
general]
31.5.2.2
Types
[ios.
types]
31.5.2.2.1
Class
ios_
base::failure
[ios.
failure]
31.5.2.2.2
Type
ios_
base::fmtflags
[ios.
fmtflags]
31.5.2.2.3
Type
ios_
base::iostate
[ios.
iostate]
31.5.2.2.4
Type
ios_
base::openmode
[ios.
openmode]
31.5.2.2.5
Type
ios_
base::seekdir
[ios.
seekdir]
31.5.2.2.6
Class
ios_
base::Init
[ios.
init]
31.5.2.3
State functions
[fmtflags.
state]
31.5.2.4
Functions
[ios.
base.
locales]
31.5.2.5
Static members
[ios.
members.
static]
31.5.2.6
Storage functions
[ios.
base.
storage]
31.5.2.7
Callbacks
[ios.
base.
callback]
31.5.2.8
Constructors and destructor
[ios.
base.
cons]
31.5.3
Class template
fpos
[fpos]
31.5.3.1
Members
[fpos.
members]
31.5.3.2
Requirements
[fpos.
operations]
31.5.4
Class template
basic_
ios
[ios]
31.5.4.1
Overview
[ios.
overview]
31.5.4.2
Constructors
[basic.
ios.
cons]
31.5.4.3
Member functions
[basic.
ios.
members]
31.5.4.4
Flags functions
[iostate.
flags]
31.5.5
ios_
base
manipulators
[std.
ios.
manip]
31.5.5.1
fmtflags
manipulators
[fmtflags.
manip]
31.5.5.2
adjustfield
manipulators
[adjustfield.
manip]
31.5.5.3
basefield
manipulators
[basefield.
manip]
31.5.5.4
floatfield
manipulators
[floatfield.
manip]
31.5.6
Error reporting
[error.
reporting]
31.6
Stream buffers
[stream.
buffers]
31.6.1
Header
<streambuf>
synopsis
[streambuf.
syn]
31.6.2
Stream buffer requirements
[streambuf.
reqts]
31.6.3
Class template
basic_
streambuf
[streambuf]
31.6.3.1
General
[streambuf.
general]
31.6.3.2
Constructors
[streambuf.
cons]
31.6.3.3
Public member functions
[streambuf.
members]
31.6.3.3.1
Locales
[streambuf.
locales]
31.6.3.3.2
Buffer management and positioning
[streambuf.
buffer]
31.6.3.3.3
Get area
[streambuf.
pub.
get]
31.6.3.3.4
Putback
[streambuf.
pub.
pback]
31.6.3.3.5
Put area
[streambuf.
pub.
put]
31.6.3.4
Protected member functions
[streambuf.
protected]
31.6.3.4.1
Assignment
[streambuf.
assign]
31.6.3.4.2
Get area access
[streambuf.
get.
area]
31.6.3.4.3
Put area access
[streambuf.
put.
area]
31.6.3.5
Virtual functions
[streambuf.
virtuals]
31.6.3.5.1
Locales
[streambuf.
virt.
locales]
31.6.3.5.2
Buffer management and positioning
[streambuf.
virt.
buffer]
31.6.3.5.3
Get area
[streambuf.
virt.
get]
31.6.3.5.4
Putback
[streambuf.
virt.
pback]
31.6.3.5.5
Put area
[streambuf.
virt.
put]
31.7
Formatting and manipulators
[iostream.
format]
31.7.1
Header
<istream>
synopsis
[istream.
syn]
31.7.2
Header
<ostream>
synopsis
[ostream.
syn]
31.7.3
Header
<iomanip>
synopsis
[iomanip.
syn]
31.7.4
Header
<print>
synopsis
[print.
syn]
31.7.5
Input streams
[input.
streams]
31.7.5.1
General
[input.
streams.
general]
31.7.5.2
Class template
basic_
istream
[istream]
31.7.5.2.1
General
[istream.
general]
31.7.5.2.2
Constructors
[istream.
cons]
31.7.5.2.3
Assignment and swap
[istream.
assign]
31.7.5.2.4
Class
basic_
istream::sentry
[istream.
sentry]
31.7.5.3
Formatted input functions
[istream.
formatted]
31.7.5.3.1
Common requirements
[istream.
formatted.
reqmts]
31.7.5.3.2
Arithmetic extractors
[istream.
formatted.
arithmetic]
31.7.5.3.3
basic_
istream::operator>>
[istream.
extractors]
31.7.5.4
Unformatted input functions
[istream.
unformatted]
31.7.5.5
Standard
basic_
istream
manipulators
[istream.
manip]
31.7.5.6
Rvalue stream extraction
[istream.
rvalue]
31.7.5.7
Class template
basic_
iostream
[iostreamclass]
31.7.5.7.1
General
[iostreamclass.
general]
31.7.5.7.2
Constructors
[iostream.
cons]
31.7.5.7.3
Destructor
[iostream.
dest]
31.7.5.7.4
Assignment and swap
[iostream.
assign]
31.7.6
Output streams
[output.
streams]
31.7.6.1
General
[output.
streams.
general]
31.7.6.2
Class template
basic_
ostream
[ostream]
31.7.6.2.1
General
[ostream.
general]
31.7.6.2.2
Constructors
[ostream.
cons]
31.7.6.2.3
Assignment and swap
[ostream.
assign]
31.7.6.2.4
Class
basic_
ostream::sentry
[ostream.
sentry]
31.7.6.2.5
Seek members
[ostream.
seeks]
31.7.6.3
Formatted output functions
[ostream.
formatted]
31.7.6.3.1
Common requirements
[ostream.
formatted.
reqmts]
31.7.6.3.2
Arithmetic inserters
[ostream.
inserters.
arithmetic]
31.7.6.3.3
basic_
ostream::operator<<
[ostream.
inserters]
31.7.6.3.4
Character inserter function templates
[ostream.
inserters.
character]
31.7.6.3.5
Print
[ostream.
formatted.
print]
31.7.6.4
Unformatted output functions
[ostream.
unformatted]
31.7.6.5
Standard manipulators
[ostream.
manip]
31.7.6.6
Rvalue stream insertion
[ostream.
rvalue]
31.7.7
Standard manipulators
[std.
manip]
31.7.8
Extended manipulators
[ext.
manip]
31.7.9
Quoted manipulators
[quoted.
manip]
31.7.10
Print functions
[print.
fun]
31.8
String-based streams
[string.
streams]
31.8.1
Header
<sstream>
synopsis
[sstream.
syn]
31.8.2
Class template
basic_
stringbuf
[stringbuf]
31.8.2.1
General
[stringbuf.
general]
31.8.2.2
Constructors
[stringbuf.
cons]
31.8.2.3
Assignment and swap
[stringbuf.
assign]
31.8.2.4
Member functions
[stringbuf.
members]
31.8.2.5
Overridden virtual functions
[stringbuf.
virtuals]
31.8.3
Class template
basic_
istringstream
[istringstream]
31.8.3.1
General
[istringstream.
general]
31.8.3.2
Constructors
[istringstream.
cons]
31.8.3.3
Swap
[istringstream.
swap]
31.8.3.4
Member functions
[istringstream.
members]
31.8.4
Class template
basic_
ostringstream
[ostringstream]
31.8.4.1
General
[ostringstream.
general]
31.8.4.2
Constructors
[ostringstream.
cons]
31.8.4.3
Swap
[ostringstream.
swap]
31.8.4.4
Member functions
[ostringstream.
members]
31.8.5
Class template
basic_
stringstream
[stringstream]
31.8.5.1
General
[stringstream.
general]
31.8.5.2
Constructors
[stringstream.
cons]
31.8.5.3
Swap
[stringstream.
swap]
31.8.5.4
Member functions
[stringstream.
members]
31.9
Span-based streams
[span.
streams]
31.9.1
Overview
[span.
streams.
overview]
31.9.2
Header
<spanstream>
synopsis
[spanstream.
syn]
31.9.3
Class template
basic_
spanbuf
[spanbuf]
31.9.3.1
General
[spanbuf.
general]
31.9.3.2
Constructors
[spanbuf.
cons]
31.9.3.3
Assignment and swap
[spanbuf.
assign]
31.9.3.4
Member functions
[spanbuf.
members]
31.9.3.5
Overridden virtual functions
[spanbuf.
virtuals]
31.9.4
Class template
basic_
ispanstream
[ispanstream]
31.9.4.1
General
[ispanstream.
general]
31.9.4.2
Constructors
[ispanstream.
cons]
31.9.4.3
Swap
[ispanstream.
swap]
31.9.4.4
Member functions
[ispanstream.
members]
31.9.5
Class template
basic_
ospanstream
[ospanstream]
31.9.5.1
General
[ospanstream.
general]
31.9.5.2
Constructors
[ospanstream.
cons]
31.9.5.3
Swap
[ospanstream.
swap]
31.9.5.4
Member functions
[ospanstream.
members]
31.9.6
Class template
basic_
spanstream
[spanstream]
31.9.6.1
General
[spanstream.
general]
31.9.6.2
Constructors
[spanstream.
cons]
31.9.6.3
Swap
[spanstream.
swap]
31.9.6.4
Member functions
[spanstream.
members]
31.10
File-based streams
[file.
streams]
31.10.1
Header
<fstream>
synopsis
[fstream.
syn]
31.10.2
Class template
basic_
filebuf
[filebuf]
31.10.2.1
General
[filebuf.
general]
31.10.2.2
Constructors
[filebuf.
cons]
31.10.2.3
Assignment and swap
[filebuf.
assign]
31.10.2.4
Member functions
[filebuf.
members]
31.10.2.5
Overridden virtual functions
[filebuf.
virtuals]
31.10.3
Class template
basic_
ifstream
[ifstream]
31.10.3.1
General
[ifstream.
general]
31.10.3.2
Constructors
[ifstream.
cons]
31.10.3.3
Swap
[ifstream.
swap]
31.10.3.4
Member functions
[ifstream.
members]
31.10.4
Class template
basic_
ofstream
[ofstream]
31.10.4.1
General
[ofstream.
general]
31.10.4.2
Constructors
[ofstream.
cons]
31.10.4.3
Swap
[ofstream.
swap]
31.10.4.4
Member functions
[ofstream.
members]
31.10.5
Class template
basic_
fstream
[fstream]
31.10.5.1
General
[fstream.
general]
31.10.5.2
Constructors
[fstream.
cons]
31.10.5.3
Swap
[fstream.
swap]
31.10.5.4
Member functions
[fstream.
members]
31.11
Synchronized output streams
[syncstream]
31.11.1
Header
<syncstream>
synopsis
[syncstream.
syn]
31.11.2
Class template
basic_
syncbuf
[syncstream.
syncbuf]
31.11.2.1
Overview
[syncstream.
syncbuf.
overview]
31.11.2.2
Construction and destruction
[syncstream.
syncbuf.
cons]
31.11.2.3
Assignment and swap
[syncstream.
syncbuf.
assign]
31.11.2.4
Member functions
[syncstream.
syncbuf.
members]
31.11.2.5
Overridden virtual functions
[syncstream.
syncbuf.
virtuals]
31.11.2.6
Specialized algorithms
[syncstream.
syncbuf.
special]
31.11.3
Class template
basic_
osyncstream
[syncstream.
osyncstream]
31.11.3.1
Overview
[syncstream.
osyncstream.
overview]
31.11.3.2
Construction and destruction
[syncstream.
osyncstream.
cons]
31.11.3.3
Member functions
[syncstream.
osyncstream.
members]
31.12
File systems
[filesystems]
31.12.1
General
[fs.
general]
31.12.2
Conformance
[fs.
conformance]
31.12.2.1
General
[fs.
conformance.
general]
31.12.2.2
POSIX conformance
[fs.
conform.
9945]
31.12.2.3
Operating system dependent behavior conformance
[fs.
conform.
os]
31.12.2.4
File system race behavior
[fs.
race.
behavior]
31.12.3
Requirements
[fs.
req]
31.12.4
Header
<filesystem>
synopsis
[fs.
filesystem.
syn]
31.12.5
Error reporting
[fs.
err.
report]
31.12.6
Class
path
[fs.
class.
path]
31.12.6.1
General
[fs.
class.
path.
general]
31.12.6.2
Generic pathname format
[fs.
path.
generic]
31.12.6.3
Conversions
[fs.
path.
cvt]
31.12.6.3.1
Argument format conversions
[fs.
path.
fmt.
cvt]
31.12.6.3.2
Type and encoding conversions
[fs.
path.
type.
cvt]
31.12.6.4
Requirements
[fs.
path.
req]
31.12.6.5
Members
[fs.
path.
member]
31.12.6.5.1
Constructors
[fs.
path.
construct]
31.12.6.5.2
Assignments
[fs.
path.
assign]
31.12.6.5.3
Appends
[fs.
path.
append]
31.12.6.5.4
Concatenation
[fs.
path.
concat]
31.12.6.5.5
Modifiers
[fs.
path.
modifiers]
31.12.6.5.6
Native format observers
[fs.
path.
native.
obs]
31.12.6.5.7
Generic format observers
[fs.
path.
generic.
obs]
31.12.6.5.8
Compare
[fs.
path.
compare]
31.12.6.5.9
Decomposition
[fs.
path.
decompose]
31.12.6.5.10
Query
[fs.
path.
query]
31.12.6.5.11
Generation
[fs.
path.
gen]
31.12.6.6
Iterators
[fs.
path.
itr]
31.12.6.7
Inserter and extractor
[fs.
path.
io]
31.12.6.8
Non-member functions
[fs.
path.
nonmember]
31.12.6.9
Hash support
[fs.
path.
hash]
31.12.7
Class
filesystem_
error
[fs.
class.
filesystem.
error]
31.12.7.1
General
[fs.
class.
filesystem.
error.
general]
31.12.7.2
Members
[fs.
filesystem.
error.
members]
31.12.8
Enumerations
[fs.
enum]
31.12.8.1
Enum
path::format
[fs.
enum.
path.
format]
31.12.8.2
Enum class
file_
type
[fs.
enum.
file.
type]
31.12.8.3
Enum class
copy_
options
[fs.
enum.
copy.
opts]
31.12.8.4
Enum class
perms
[fs.
enum.
perms]
31.12.8.5
Enum class
perm_
options
[fs.
enum.
perm.
opts]
31.12.8.6
Enum class
directory_
options
[fs.
enum.
dir.
opts]
31.12.9
Class
file_
status
[fs.
class.
file.
status]
31.12.9.1
General
[fs.
class.
file.
status.
general]
31.12.9.2
Constructors
[fs.
file.
status.
cons]
31.12.9.3
Observers
[fs.
file.
status.
obs]
31.12.9.4
Modifiers
[fs.
file.
status.
mods]
31.12.10
Class
directory_
entry
[fs.
class.
directory.
entry]
31.12.10.1
General
[fs.
class.
directory.
entry.
general]
31.12.10.2
Constructors
[fs.
dir.
entry.
cons]
31.12.10.3
Modifiers
[fs.
dir.
entry.
mods]
31.12.10.4
Observers
[fs.
dir.
entry.
obs]
31.12.10.5
Inserter
[fs.
dir.
entry.
io]
31.12.11
Class
directory_
iterator
[fs.
class.
directory.
iterator]
31.12.11.1
General
[fs.
class.
directory.
iterator.
general]
31.12.11.2
Members
[fs.
dir.
itr.
members]
31.12.11.3
Non-member functions
[fs.
dir.
itr.
nonmembers]
31.12.12
Class
recursive_
directory_
iterator
[fs.
class.
rec.
dir.
itr]
31.12.12.1
General
[fs.
class.
rec.
dir.
itr.
general]
31.12.12.2
Members
[fs.
rec.
dir.
itr.
members]
31.12.12.3
Non-member functions
[fs.
rec.
dir.
itr.
nonmembers]
31.12.13
Filesystem operation functions
[fs.
op.
funcs]
31.12.13.1
General
[fs.
op.
funcs.
general]
31.12.13.2
Absolute
[fs.
op.
absolute]
31.12.13.3
Canonical
[fs.
op.
canonical]
31.12.13.4
Copy
[fs.
op.
copy]
31.12.13.5
Copy file
[fs.
op.
copy.
file]
31.12.13.6
Copy symlink
[fs.
op.
copy.
symlink]
31.12.13.7
Create directories
[fs.
op.
create.
directories]
31.12.13.8
Create directory
[fs.
op.
create.
directory]
31.12.13.9
Create directory symlink
[fs.
op.
create.
dir.
symlk]
31.12.13.10
Create hard link
[fs.
op.
create.
hard.
lk]
31.12.13.11
Create symlink
[fs.
op.
create.
symlink]
31.12.13.12
Current path
[fs.
op.
current.
path]
31.12.13.13
Equivalent
[fs.
op.
equivalent]
31.12.13.14
Exists
[fs.
op.
exists]
31.12.13.15
File size
[fs.
op.
file.
size]
31.12.13.16
Hard link count
[fs.
op.
hard.
lk.
ct]
31.12.13.17
Is block file
[fs.
op.
is.
block.
file]
31.12.13.18
Is character file
[fs.
op.
is.
char.
file]
31.12.13.19
Is directory
[fs.
op.
is.
directory]
31.12.13.20
Is empty
[fs.
op.
is.
empty]
31.12.13.21
Is fifo
[fs.
op.
is.
fifo]
31.12.13.22
Is other
[fs.
op.
is.
other]
31.12.13.23
Is regular file
[fs.
op.
is.
regular.
file]
31.12.13.24
Is socket
[fs.
op.
is.
socket]
31.12.13.25
Is symlink
[fs.
op.
is.
symlink]
31.12.13.26
Last write time
[fs.
op.
last.
write.
time]
31.12.13.27
Permissions
[fs.
op.
permissions]
31.12.13.28
Proximate
[fs.
op.
proximate]
31.12.13.29
Read symlink
[fs.
op.
read.
symlink]
31.12.13.30
Relative
[fs.
op.
relative]
31.12.13.31
Remove
[fs.
op.
remove]
31.12.13.32
Remove all
[fs.
op.
remove.
all]
31.12.13.33
Rename
[fs.
op.
rename]
31.12.13.34
Resize file
[fs.
op.
resize.
file]
31.12.13.35
Space
[fs.
op.
space]
31.12.13.36
Status
[fs.
op.
status]
31.12.13.37
Status known
[fs.
op.
status.
known]
31.12.13.38
Symlink status
[fs.
op.
symlink.
status]
31.12.13.39
Temporary directory path
[fs.
op.
temp.
dir.
path]
31.12.13.40
Weakly canonical
[fs.
op.
weakly.
canonical]
31.13
C library files
[c.
files]
31.13.1
Header
<cstdio>
synopsis
[cstdio.
syn]
31.13.2
Header
<cinttypes>
synopsis
[cinttypes.
syn]
32
Regular expressions library
[re]
[re]
32.1
General
[re.
general]
32.2
Requirements
[re.
req]
32.3
Header
<regex>
synopsis
[re.
syn]
32.4
Namespace
std::regex_
constants
[re.
const]
32.4.1
General
[re.
const.
general]
32.4.2
Bitmask type
syntax_
option_
type
[re.
synopt]
32.4.3
Bitmask type
match_
flag_
type
[re.
matchflag]
32.4.4
Implementation-defined
error_
type
[re.
err]
32.5
Class
regex_
error
[re.
badexp]
32.6
Class template
regex_
traits
[re.
traits]
32.7
Class template
basic_
regex
[re.
regex]
32.7.1
General
[re.
regex.
general]
32.7.2
Constructors
[re.
regex.
construct]
32.7.3
Assignment
[re.
regex.
assign]
32.7.4
Constant operations
[re.
regex.
operations]
32.7.5
Locale
[re.
regex.
locale]
32.7.6
Swap
[re.
regex.
swap]
32.7.7
Non-member functions
[re.
regex.
nonmemb]
32.8
Class template
sub_
match
[re.
submatch]
32.8.1
General
[re.
submatch.
general]
32.8.2
Members
[re.
submatch.
members]
32.8.3
Non-member operators
[re.
submatch.
op]
32.9
Class template
match_
results
[re.
results]
32.9.1
General
[re.
results.
general]
32.9.2
Constructors
[re.
results.
const]
32.9.3
State
[re.
results.
state]
32.9.4
Size
[re.
results.
size]
32.9.5
Element access
[re.
results.
acc]
32.9.6
Formatting
[re.
results.
form]
32.9.7
Allocator
[re.
results.
all]
32.9.8
Swap
[re.
results.
swap]
32.9.9
Non-member functions
[re.
results.
nonmember]
32.10
Regular expression algorithms
[re.
alg]
32.10.1
Exceptions
[re.
except]
32.10.2
regex_
match
[re.
alg.
match]
32.10.3
regex_
search
[re.
alg.
search]
32.10.4
regex_
replace
[re.
alg.
replace]
32.11
Regular expression iterators
[re.
iter]
32.11.1
Class template
regex_
iterator
[re.
regiter]
32.11.1.1
General
[re.
regiter.
general]
32.11.1.2
Constructors
[re.
regiter.
cnstr]
32.11.1.3
Comparisons
[re.
regiter.
comp]
32.11.1.4
Indirection
[re.
regiter.
deref]
32.11.1.5
Increment
[re.
regiter.
incr]
32.11.2
Class template
regex_
token_
iterator
[re.
tokiter]
32.11.2.1
General
[re.
tokiter.
general]
32.11.2.2
Constructors
[re.
tokiter.
cnstr]
32.11.2.3
Comparisons
[re.
tokiter.
comp]
32.11.2.4
Indirection
[re.
tokiter.
deref]
32.11.2.5
Increment
[re.
tokiter.
incr]
32.12
Modified ECMAScript regular expression grammar
[re.
grammar]
33
Concurrency support library
[thread]
[thread]
33.1
General
[thread.
general]
33.2
Requirements
[thread.
req]
33.2.1
Template parameter names
[thread.
req.
paramname]
33.2.2
Exceptions
[thread.
req.
exception]
33.2.3
Native handles
[thread.
req.
native]
33.2.4
Timing specifications
[thread.
req.
timing]
33.2.5
Requirements for
Cpp17Lockable
types
[thread.
req.
lockable]
33.2.5.1
In general
[thread.
req.
lockable.
general]
33.2.5.2
Cpp17BasicLockable
requirements
[thread.
req.
lockable.
basic]
33.2.5.3
Cpp17Lockable
requirements
[thread.
req.
lockable.
req]
33.2.5.4
Cpp17TimedLockable
requirements
[thread.
req.
lockable.
timed]
33.2.5.5
Cpp17SharedLockable
requirements
[thread.
req.
lockable.
shared]
33.2.5.6
Cpp17SharedTimedLockable
requirements
[thread.
req.
lockable.
shared.
timed]
33.3
Stop tokens
[thread.
stoptoken]
33.3.1
Introduction
[thread.
stoptoken.
intro]
33.3.2
Header
<stop_
token>
synopsis
[thread.
stoptoken.
syn]
33.3.3
Class
stop_
token
[stoptoken]
33.3.3.1
General
[stoptoken.
general]
33.3.3.2
Constructors, copy, and assignment
[stoptoken.
cons]
33.3.3.3
Members
[stoptoken.
mem]
33.3.3.4
Non-member functions
[stoptoken.
nonmembers]
33.3.4
Class
stop_
source
[stopsource]
33.3.4.1
General
[stopsource.
general]
33.3.4.2
Constructors, copy, and assignment
[stopsource.
cons]
33.3.4.3
Members
[stopsource.
mem]
33.3.4.4
Non-member functions
[stopsource.
nonmembers]
33.3.5
Class template
stop_
callback
[stopcallback]
33.3.5.1
General
[stopcallback.
general]
33.3.5.2
Constructors and destructor
[stopcallback.
cons]
33.4
Threads
[thread.
threads]
33.4.1
General
[thread.
threads.
general]
33.4.2
Header
<thread>
synopsis
[thread.
syn]
33.4.3
Class
thread
[thread.
thread.
class]
33.4.3.1
General
[thread.
thread.
class.
general]
33.4.3.2
Class
thread::id
[thread.
thread.
id]
33.4.3.3
Constructors
[thread.
thread.
constr]
33.4.3.4
Destructor
[thread.
thread.
destr]
33.4.3.5
Assignment
[thread.
thread.
assign]
33.4.3.6
Members
[thread.
thread.
member]
33.4.3.7
Static members
[thread.
thread.
static]
33.4.3.8
Specialized algorithms
[thread.
thread.
algorithm]
33.4.4
Class
jthread
[thread.
jthread.
class]
33.4.4.1
General
[thread.
jthread.
class.
general]
33.4.4.2
Constructors, move, and assignment
[thread.
jthread.
cons]
33.4.4.3
Members
[thread.
jthread.
mem]
33.4.4.4
Stop token handling
[thread.
jthread.
stop]
33.4.4.5
Specialized algorithms
[thread.
jthread.
special]
33.4.4.6
Static members
[thread.
jthread.
static]
33.4.5
Namespace
this_
thread
[thread.
thread.
this]
33.5
Atomic operations
[atomics]
33.5.1
General
[atomics.
general]
33.5.2
Header
<atomic>
synopsis
[atomics.
syn]
33.5.3
Type aliases
[atomics.
alias]
33.5.4
Order and consistency
[atomics.
order]
33.5.5
Lock-free property
[atomics.
lockfree]
33.5.6
Waiting and notifying
[atomics.
wait]
33.5.7
Class template
atomic_
ref
[atomics.
ref.
generic]
33.5.7.1
General
[atomics.
ref.
generic.
general]
33.5.7.2
Operations
[atomics.
ref.
ops]
33.5.7.3
Specializations for integral types
[atomics.
ref.
int]
33.5.7.4
Specializations for floating-point types
[atomics.
ref.
float]
33.5.7.5
Partial specialization for pointers
[atomics.
ref.
pointer]
33.5.7.6
Member operators common to integers and pointers to objects
[atomics.
ref.
memop]
33.5.8
Class template
atomic
[atomics.
types.
generic]
33.5.8.1
General
[atomics.
types.
generic.
general]
33.5.8.2
Operations on atomic types
[atomics.
types.
operations]
33.5.8.3
Specializations for integers
[atomics.
types.
int]
33.5.8.4
Specializations for floating-point types
[atomics.
types.
float]
33.5.8.5
Partial specialization for pointers
[atomics.
types.
pointer]
33.5.8.6
Member operators common to integers and pointers to objects
[atomics.
types.
memop]
33.5.8.7
Partial specializations for smart pointers
[util.
smartptr.
atomic]
33.5.8.7.1
General
[util.
smartptr.
atomic.
general]
33.5.8.7.2
Partial specialization for
shared_
ptr
[util.
smartptr.
atomic.
shared]
33.5.8.7.3
Partial specialization for
weak_
ptr
[util.
smartptr.
atomic.
weak]
33.5.9
Non-member functions
[atomics.
nonmembers]
33.5.10
Flag type and operations
[atomics.
flag]
33.5.11
Fences
[atomics.
fences]
33.5.12
C compatibility
[stdatomic.
h.
syn]
33.6
Mutual exclusion
[thread.
mutex]
33.6.1
General
[thread.
mutex.
general]
33.6.2
Header
<mutex>
synopsis
[mutex.
syn]
33.6.3
Header
<shared_
mutex>
synopsis
[shared.
mutex.
syn]
33.6.4
Mutex requirements
[thread.
mutex.
requirements]
33.6.4.1
In general
[thread.
mutex.
requirements.
general]
33.6.4.2
Mutex types
[thread.
mutex.
requirements.
mutex]
33.6.4.2.1
General
[thread.
mutex.
requirements.
mutex.
general]
33.6.4.2.2
Class
mutex
[thread.
mutex.
class]
33.6.4.2.3
Class
recursive_
mutex
[thread.
mutex.
recursive]
33.6.4.3
Timed mutex types
[thread.
timedmutex.
requirements]
33.6.4.3.1
General
[thread.
timedmutex.
requirements.
general]
33.6.4.3.2
Class
timed_
mutex
[thread.
timedmutex.
class]
33.6.4.3.3
Class
recursive_
timed_
mutex
[thread.
timedmutex.
recursive]
33.6.4.4
Shared mutex types
[thread.
sharedmutex.
requirements]
33.6.4.4.1
General
[thread.
sharedmutex.
requirements.
general]
33.6.4.4.2
Class
shared_
mutex
[thread.
sharedmutex.
class]
33.6.4.5
Shared timed mutex types
[thread.
sharedtimedmutex.
requirements]
33.6.4.5.1
General
[thread.
sharedtimedmutex.
requirements.
general]
33.6.4.5.2
Class
shared_
timed_
mutex
[thread.
sharedtimedmutex.
class]
33.6.5
Locks
[thread.
lock]
33.6.5.1
General
[thread.
lock.
general]
33.6.5.2
Class template
lock_
guard
[thread.
lock.
guard]
33.6.5.3
Class template
scoped_
lock
[thread.
lock.
scoped]
33.6.5.4
Class template
unique_
lock
[thread.
lock.
unique]
33.6.5.4.1
General
[thread.
lock.
unique.
general]
33.6.5.4.2
Constructors, destructor, and assignment
[thread.
lock.
unique.
cons]
33.6.5.4.3
Locking
[thread.
lock.
unique.
locking]
33.6.5.4.4
Modifiers
[thread.
lock.
unique.
mod]
33.6.5.4.5
Observers
[thread.
lock.
unique.
obs]
33.6.5.5
Class template
shared_
lock
[thread.
lock.
shared]
33.6.5.5.1
General
[thread.
lock.
shared.
general]
33.6.5.5.2
Constructors, destructor, and assignment
[thread.
lock.
shared.
cons]
33.6.5.5.3
Locking
[thread.
lock.
shared.
locking]
33.6.5.5.4
Modifiers
[thread.
lock.
shared.
mod]
33.6.5.5.5
Observers
[thread.
lock.
shared.
obs]
33.6.6
Generic locking algorithms
[thread.
lock.
algorithm]
33.6.7
Call once
[thread.
once]
33.6.7.1
Struct
once_
flag
[thread.
once.
onceflag]
33.6.7.2
Function
call_
once
[thread.
once.
callonce]
33.7
Condition variables
[thread.
condition]
33.7.1
General
[thread.
condition.
general]
33.7.2
Header
<condition_
variable>
synopsis
[condition.
variable.
syn]
33.7.3
Non-member functions
[thread.
condition.
nonmember]
33.7.4
Class
condition_
variable
[thread.
condition.
condvar]
33.7.5
Class
condition_
variable_
any
[thread.
condition.
condvarany]
33.7.5.1
General
[thread.
condition.
condvarany.
general]
33.7.5.2
Noninterruptible waits
[thread.
condvarany.
wait]
33.7.5.3
Interruptible waits
[thread.
condvarany.
intwait]
33.8
Semaphore
[thread.
sema]
33.8.1
General
[thread.
sema.
general]
33.8.2
Header
<semaphore>
synopsis
[semaphore.
syn]
33.8.3
Class template
counting_
semaphore
[thread.
sema.
cnt]
33.9
Coordination types
[thread.
coord]
33.9.1
General
[thread.
coord.
general]
33.9.2
Latches
[thread.
latch]
33.9.2.1
General
[thread.
latch.
general]
33.9.2.2
Header
<latch>
synopsis
[latch.
syn]
33.9.2.3
Class
latch
[thread.
latch.
class]
33.9.3
Barriers
[thread.
barrier]
33.9.3.1
General
[thread.
barrier.
general]
33.9.3.2
Header
<barrier>
synopsis
[barrier.
syn]
33.9.3.3
Class template
barrier
[thread.
barrier.
class]
33.10
Futures
[futures]
33.10.1
Overview
[futures.
overview]
33.10.2
Header
<future>
synopsis
[future.
syn]
33.10.3
Error handling
[futures.
errors]
33.10.4
Class
future_
error
[futures.
future.
error]
33.10.5
Shared state
[futures.
state]
33.10.6
Class template
promise
[futures.
promise]
33.10.7
Class template
future
[futures.
unique.
future]
33.10.8
Class template
shared_
future
[futures.
shared.
future]
33.10.9
Function template
async
[futures.
async]
33.10.10
Class template
packaged_
task
[futures.
task]
33.10.10.1
General
[futures.
task.
general]
33.10.10.2
Member functions
[futures.
task.
members]
33.10.10.3
Globals
[futures.
task.
nonmembers]
Annex A (informative)
Grammar summary
[gram]
[gram]
A.1
General
[gram.
general]
A.2
Keywords
[gram.
key]
A.3
Lexical conventions
[gram.
lex]
A.4
Basics
[gram.
basic]
A.5
Expressions
[gram.
expr]
A.6
Statements
[gram.
stmt]
A.7
Declarations
[gram.
dcl]
A.8
Modules
[gram.
module]
A.9
Classes
[gram.
class]
A.10
Overloading
[gram.
over]
A.11
Templates
[gram.
temp]
A.12
Exception handling
[gram.
except]
A.13
Preprocessing directives
[gram.
cpp]
Annex B (normative)
Implementation quantities
[implimits]
[implimits]
Annex C (informative)
Compatibility
[diff]
[diff]
C.1
C++ and ISO C++ 2020
[diff.
cpp20]
C.1.1
General
[diff.
cpp20.
general]
C.1.2
[lex]
: lexical conventions
[diff.
cpp20.
lex]
C.1.3
[expr]
: expressions
[diff.
cpp20.
expr]
C.1.4
[stmt.
stmt]
: statements
[diff.
cpp20.
stmt]
C.1.5
[dcl.
dcl]
: declarations
[diff.
cpp20.
dcl]
C.1.6
[temp]
: templates
[diff.
cpp20.
temp]
C.1.7
[library]
: library introduction
[diff.
cpp20.
library]
C.1.8
[concepts]
: concepts library
[diff.
cpp20.
concepts]
C.1.9
[mem]
: memory management library
[diff.
cpp20.
memory]
C.1.10
[utilities]
: general utilities library
[diff.
cpp20.
utilities]
C.1.11
[strings]
: strings library
[diff.
cpp20.
strings]
C.1.12
[containers]
: containers library
[diff.
cpp20.
containers]
C.1.13
[thread]
: concurrency support library
[diff.
cpp20.
thread]
C.2
C++ and ISO C++ 2017
[diff.
cpp17]
C.2.1
General
[diff.
cpp17.
general]
C.2.2
[lex]
: lexical conventions
[diff.
cpp17.
lex]
C.2.3
[basic]
: basics
[diff.
cpp17.
basic]
C.2.4
[expr]
: expressions
[diff.
cpp17.
expr]
C.2.5
[dcl.
dcl]
: declarations
[diff.
cpp17.
dcl.
dcl]
C.2.6
[class]
: classes
[diff.
cpp17.
class]
C.2.7
[over]
: overloading
[diff.
cpp17.
over]
C.2.8
[temp]
: templates
[diff.
cpp17.
temp]
C.2.9
[except]
: exception handling
[diff.
cpp17.
except]
C.2.10
[library]
: library introduction
[diff.
cpp17.
library]
C.2.11
[containers]
: containers library
[diff.
cpp17.
containers]
C.2.12
[iterators]
: iterators library
[diff.
cpp17.
iterators]
C.2.13
[algorithms]
: algorithms library
[diff.
cpp17.
alg.
reqs]
C.2.14
[input.
output]
: input/output library
[diff.
cpp17.
input.
output]
C.2.15
[depr]
: compatibility features
[diff.
cpp17.
depr]
C.3
C++ and ISO C++ 2014
[diff.
cpp14]
C.3.1
General
[diff.
cpp14.
general]
C.3.2
[lex]
: lexical conventions
[diff.
cpp14.
lex]
C.3.3
[expr]
: expressions
[diff.
cpp14.
expr]
C.3.4
[dcl.
dcl]
: declarations
[diff.
cpp14.
dcl.
dcl]
C.3.5
[class]
: classes
[diff.
cpp14.
class]
C.3.6
[temp]
: templates
[diff.
cpp14.
temp]
C.3.7
[except]
: exception handling
[diff.
cpp14.
except]
C.3.8
[library]
: library introduction
[diff.
cpp14.
library]
C.3.9
[utilities]
: general utilities library
[diff.
cpp14.
utilities]
C.3.10
[strings]
: strings library
[diff.
cpp14.
string]
C.3.11
[containers]
: containers library
[diff.
cpp14.
containers]
C.3.12
[depr]
: compatibility features
[diff.
cpp14.
depr]
C.4
C++ and ISO C++ 2011
[diff.
cpp11]
C.4.1
General
[diff.
cpp11.
general]
C.4.2
[lex]
: lexical conventions
[diff.
cpp11.
lex]
C.4.3
[basic]
: basics
[diff.
cpp11.
basic]
C.4.4
[expr]
: expressions
[diff.
cpp11.
expr]
C.4.5
[dcl.
dcl]
: declarations
[diff.
cpp11.
dcl.
dcl]
C.4.6
[library]
: library introduction
[diff.
cpp11.
library]
C.4.7
[input.
output]
: input/output library
[diff.
cpp11.
input.
output]
C.5
C++ and ISO C++ 2003
[diff.
cpp03]
C.5.1
General
[diff.
cpp03.
general]
C.5.2
[lex]
: lexical conventions
[diff.
cpp03.
lex]
C.5.3
[expr]
: expressions
[diff.
cpp03.
expr]
C.5.4
[dcl.
dcl]
: declarations
[diff.
cpp03.
dcl.
dcl]
C.5.5
[class]
: classes
[diff.
cpp03.
class]
C.5.6
[temp]
: templates
[diff.
cpp03.
temp]
C.5.7
[library]
: library introduction
[diff.
cpp03.
library]
C.5.8
[support]
: language support library
[diff.
cpp03.
language.
support]
C.5.9
[diagnostics]
: diagnostics library
[diff.
cpp03.
diagnostics]
C.5.10
[utilities]
: general utilities library
[diff.
cpp03.
utilities]
C.5.11
[strings]
: strings library
[diff.
cpp03.
strings]
C.5.12
[containers]
: containers library
[diff.
cpp03.
containers]
C.5.13
[algorithms]
: algorithms library
[diff.
cpp03.
algorithms]
C.5.14
[numerics]
: numerics library
[diff.
cpp03.
numerics]
C.5.15
[localization]
: localization library
[diff.
cpp03.
locale]
C.5.16
[input.
output]
: input/output library
[diff.
cpp03.
input.
output]
C.6
C++ and ISO C
[diff.
iso]
C.6.1
General
[diff.
iso.
general]
C.6.2
[lex]
: lexical conventions
[diff.
lex]
C.6.3
[basic]
: basics
[diff.
basic]
C.6.4
[expr]
: expressions
[diff.
expr]
C.6.5
[stmt.
stmt]
: statements
[diff.
stat]
C.6.6
[dcl.
dcl]
: declarations
[diff.
dcl]
C.6.7
[class]
: classes
[diff.
class]
C.6.8
[cpp]
: preprocessing directives
[diff.
cpp]
C.7
C standard library
[diff.
library]
C.7.1
General
[diff.
library.
general]
C.7.2
Modifications to headers
[diff.
mods.
to.
headers]
C.7.3
Modifications to definitions
[diff.
mods.
to.
definitions]
C.7.3.1
Types
char16_
t
and
char32_
t
[diff.
char16]
C.7.3.2
Type
wchar_
t
[diff.
wchar.
t]
C.7.3.3
Header
<assert.h>
[diff.
header.
assert.
h]
C.7.3.4
Header
<iso646.h>
[diff.
header.
iso646.
h]
C.7.3.5
Header
<stdalign.h>
[diff.
header.
stdalign.
h]
C.7.3.6
Header
<stdbool.h>
[diff.
header.
stdbool.
h]
C.7.3.7
Macro
NULL
[diff.
null]
C.7.4
Modifications to declarations
[diff.
mods.
to.
declarations]
C.7.5
Modifications to behavior
[diff.
mods.
to.
behavior]
C.7.5.1
General
[diff.
mods.
to.
behavior.
general]
C.7.5.2
Macro
offsetof(
type
,
member-designator
)
[diff.
offsetof]
C.7.5.3
Memory allocation functions
[diff.
malloc]
Annex D (normative)
Compatibility features
[depr]
[depr]
D.1
General
[depr.
general]
D.2
Arithmetic conversion on enumerations
[depr.
arith.
conv.
enum]
D.3
Implicit capture of
*this
by reference
[depr.
capture.
this]
D.4
Array comparisons
[depr.
array.
comp]
D.5
Deprecated
volatile
types
[depr.
volatile.
type]
D.6
Redeclaration of
static constexpr
data members
[depr.
static.
constexpr]
D.7
Non-local use of TU-local entities
[depr.
local]
D.8
Implicit declaration of copy functions
[depr.
impldec]
D.9
Literal operator function declarations using an identifier
[depr.
lit]
D.10
template
keyword before qualified names
[depr.
template.
template]
D.11
Requires paragraph
[depr.
res.
on.
required]
D.12
has_
denorm
members in
numeric_
limits
[depr.
numeric.
limits.
has.
denorm]
D.13
Deprecated C macros
[depr.
c.
macros]
D.14
Relational operators
[depr.
relops]
D.15
char*
streams
[depr.
str.
strstreams]
D.15.1
Header
<strstream>
synopsis
[depr.
strstream.
syn]
D.15.2
Class
strstreambuf
[depr.
strstreambuf]
D.15.2.1
General
[depr.
strstreambuf.
general]
D.15.2.2
strstreambuf
constructors
[depr.
strstreambuf.
cons]
D.15.2.3
Member functions
[depr.
strstreambuf.
members]
D.15.2.4
strstreambuf
overridden virtual functions
[depr.
strstreambuf.
virtuals]
D.15.3
Class
istrstream
[depr.
istrstream]
D.15.3.1
General
[depr.
istrstream.
general]
D.15.3.2
istrstream
constructors
[depr.
istrstream.
cons]
D.15.3.3
Member functions
[depr.
istrstream.
members]
D.15.4
Class
ostrstream
[depr.
ostrstream]
D.15.4.1
General
[depr.
ostrstream.
general]
D.15.4.2
ostrstream
constructors
[depr.
ostrstream.
cons]
D.15.4.3
Member functions
[depr.
ostrstream.
members]
D.15.5
Class
strstream
[depr.
strstream]
D.15.5.1
General
[depr.
strstream.
general]
D.15.5.2
strstream
constructors
[depr.
strstream.
cons]
D.15.5.3
strstream
destructor
[depr.
strstream.
dest]
D.15.5.4
strstream
operations
[depr.
strstream.
oper]
D.16
Deprecated error numbers
[depr.
cerrno]
D.17
The default allocator
[depr.
default.
allocator]
D.18
Deprecated
polymorphic_
allocator
member function
[depr.
mem.
poly.
allocator.
mem]
D.19
Deprecated type traits
[depr.
meta.
types]
D.20
Tuple
[depr.
tuple]
D.21
Variant
[depr.
variant]
D.22
Deprecated
iterator
class template
[depr.
iterator]
D.23
Deprecated
move_
iterator
access
[depr.
move.
iter.
elem]
D.24
Deprecated
shared_
ptr
atomic access
[depr.
util.
smartptr.
shared.
atomic]
D.25
Deprecated
basic_
string
capacity
[depr.
string.
capacity]
D.26
Deprecated standard code conversion facets
[depr.
locale.
stdcvt]
D.26.1
General
[depr.
locale.
stdcvt.
general]
D.26.2
Header
<codecvt>
synopsis
[depr.
codecvt.
syn]
D.26.3
Requirements
[depr.
locale.
stdcvt.
req]
D.27
Deprecated convenience conversion interfaces
[depr.
conversions]
D.27.1
General
[depr.
conversions.
general]
D.27.2
Class template
wstring_
convert
[depr.
conversions.
string]
D.27.3
Class template
wbuffer_
convert
[depr.
conversions.
buffer]
D.28
Deprecated locale category facets
[depr.
locale.
category]
D.29
Deprecated filesystem path factory functions
[depr.
fs.
path.
factory]
D.30
Deprecated atomic operations
[depr.
atomics]
D.30.1
General
[depr.
atomics.
general]
D.30.2
Volatile access
[depr.
atomics.
volatile]
D.30.3
Non-member functions
[depr.
atomics.
nonmembers]
D.30.4
Operations on atomic types
[depr.
atomics.
types.
operations]
Annex E (informative)
Conformance with UAX #31
[uaxid]
[uaxid]
E.1
General
[uaxid.
general]
E.2
R1 Default identifiers
[uaxid.
def]
E.2.1
General
[uaxid.
def.
general]
E.2.2
R1a Restricted format characters
[uaxid.
def.
rfmt]
E.2.3
R1b Stable identifiers
[uaxid.
def.
stable]
E.3
R2 Immutable identifiers
[uaxid.
immutable]
E.4
R3 Pattern_White_Space and Pattern_Syntax characters
[uaxid.
pattern]
E.5
R4 Equivalent normalized identifiers
[uaxid.
eqn]
E.6
R5 Equivalent case-insensitive identifiers
[uaxid.
eqci]
E.7
R6 Filtered normalized identifiers
[uaxid.
filter]
E.8
R7 Filtered case-insensitive identifiers
[uaxid.
filterci]
E.9
R8 Hashtag identifiers
[uaxid.
hashtag]
Bibliography
Index
Index of grammar productions
Index of library headers
Index of library names
Index of library concepts
Index of implementation-defined behavior