Working Draft, Standard for Programming Language C++
(Generated on 2020-10-18 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
Declarative regions and scopes
[basic.
scope.
declarative]
6.4.2
Point of declaration
[basic.
scope.
pdecl]
6.4.3
Block scope
[basic.
scope.
block]
6.4.4
Function parameter scope
[basic.
scope.
param]
6.4.5
Function scope
[basic.
funscope]
6.4.6
Namespace scope
[basic.
scope.
namespace]
6.4.7
Class scope
[basic.
scope.
class]
6.4.8
Enumeration scope
[basic.
scope.
enum]
6.4.9
Template parameter scope
[basic.
scope.
temp]
6.4.10
Name hiding
[basic.
scope.
hiding]
6.5
Name lookup
[basic.
lookup]
6.5.1
General
[basic.
lookup.
general]
6.5.2
Unqualified name lookup
[basic.
lookup.
unqual]
6.5.3
Argument-dependent name lookup
[basic.
lookup.
argdep]
6.5.4
Qualified name lookup
[basic.
lookup.
qual]
6.5.4.1
General
[basic.
lookup.
qual.
general]
6.5.4.2
Class members
[class.
qual]
6.5.4.3
Namespace members
[namespace.
qual]
6.5.5
Elaborated type specifiers
[basic.
lookup.
elab]
6.5.6
Class member access
[basic.
lookup.
classref]
6.5.7
Using-directives and namespace aliases
[basic.
lookup.
udir]
6.6
Program and linkage
[basic.
link]
6.7
Memory and objects
[basic.
memobj]
6.7.1
Memory model
[intro.
memory]
6.7.2
Object model
[intro.
object]
6.7.3
Lifetime
[basic.
life]
6.7.4
Indeterminate values
[basic.
indet]
6.7.5
Storage duration
[basic.
stc]
6.7.5.1
General
[basic.
stc.
general]
6.7.5.2
Static storage duration
[basic.
stc.
static]
6.7.5.3
Thread storage duration
[basic.
stc.
thread]
6.7.5.4
Automatic storage duration
[basic.
stc.
auto]
6.7.5.5
Dynamic storage duration
[basic.
stc.
dynamic]
6.7.5.5.1
General
[basic.
stc.
dynamic.
general]
6.7.5.5.2
Allocation functions
[basic.
stc.
dynamic.
allocation]
6.7.5.5.3
Deallocation functions
[basic.
stc.
dynamic.
deallocation]
6.7.5.5.4
Safely-derived pointers
[basic.
stc.
dynamic.
safety]
6.7.5.6
Duration of subobjects
[basic.
stc.
inherit]
6.7.6
Alignment
[basic.
align]
6.7.7
Temporary objects
[class.
temporary]
6.8
Types
[basic.
types]
6.8.1
General
[basic.
types.
general]
6.8.2
Fundamental types
[basic.
fundamental]
6.8.3
Compound types
[basic.
compound]
6.8.4
CV-qualifiers
[basic.
type.
qualifier]
6.8.5
Integer conversion rank
[conv.
rank]
6.9
Program execution
[basic.
exec]
6.9.1
Sequential execution
[intro.
execution]
6.9.2
Multi-threaded executions and data races
[intro.
multithread]
6.9.2.1
General
[intro.
multithread.
general]
6.9.2.2
Data races
[intro.
races]
6.9.2.3
Forward progress
[intro.
progress]
6.9.3
Start and termination
[basic.
start]
6.9.3.1
main
function
[basic.
start.
main]
6.9.3.2
Static initialization
[basic.
start.
static]
6.9.3.3
Dynamic initialization of non-local variables
[basic.
start.
dynamic]
6.9.3.4
Termination
[basic.
start.
term]
7
Expressions
[expr]
[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
Labeled statement
[stmt.
label]
8.3
Expression statement
[stmt.
expr]
8.4
Compound statement or block
[stmt.
block]
8.5
Selection statements
[stmt.
select]
8.5.1
General
[stmt.
select.
general]
8.5.2
The
if
statement
[stmt.
if]
8.5.3
The
switch
statement
[stmt.
switch]
8.6
Iteration statements
[stmt.
iter]
8.6.1
General
[stmt.
iter.
general]
8.6.2
The
while
statement
[stmt.
while]
8.6.3
The
do
statement
[stmt.
do]
8.6.4
The
for
statement
[stmt.
for]
8.6.5
The range-based
for
statement
[stmt.
ranged]
8.7
Jump statements
[stmt.
jump]
8.7.1
General
[stmt.
jump.
general]
8.7.2
The
break
statement
[stmt.
break]
8.7.3
The
continue
statement
[stmt.
cont]
8.7.4
The
return
statement
[stmt.
return]
8.7.5
The
co_return
statement
[stmt.
return.
coroutine]
8.7.6
The
goto
statement
[stmt.
goto]
8.8
Declaration statement
[stmt.
dcl]
8.9
Ambiguity resolution
[stmt.
ambig]
9
Declarations
[dcl.dcl]
[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.2.3
Namespace member definitions
[namespace.
memdef]
9.8.3
Namespace alias
[namespace.
alias]
9.8.4
Using namespace directive
[namespace.
udir]
9.9
The
using
declaration
[namespace.
udecl]
9.10
The
asm
declaration
[dcl.
asm]
9.11
Linkage specifications
[dcl.
link]
9.12
Attributes
[dcl.
attr]
9.12.1
Attribute syntax and semantics
[dcl.
attr.
grammar]
9.12.2
Alignment specifier
[dcl.
align]
9.12.3
Carries dependency attribute
[dcl.
attr.
depend]
9.12.4
Deprecated attribute
[dcl.
attr.
deprecated]
9.12.5
Fallthrough attribute
[dcl.
attr.
fallthrough]
9.12.6
Likelihood attributes
[dcl.
attr.
likelihood]
9.12.7
Maybe unused attribute
[dcl.
attr.
unused]
9.12.8
Nodiscard attribute
[dcl.
attr.
nodiscard]
9.12.9
Noreturn attribute
[dcl.
attr.
noreturn]
9.12.10
No unique address attribute
[dcl.
attr.
nouniqueaddr]
10
Modules
[module]
[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.3.1
General
[class.
mfct.
non-static.
general]
11.4.3.2
The
this
pointer
[class.
this]
11.4.4
Special member functions
[special]
11.4.5
Constructors
[class.
ctor]
11.4.5.1
General
[class.
ctor.
general]
11.4.5.2
Default constructors
[class.
default.
ctor]
11.4.5.3
Copy/move constructors
[class.
copy.
ctor]
11.4.6
Copy/move assignment operator
[class.
copy.
assign]
11.4.7
Destructors
[class.
dtor]
11.4.8
Conversions
[class.
conv]
11.4.8.1
General
[class.
conv.
general]
11.4.8.2
Conversion by constructor
[class.
conv.
ctor]
11.4.8.3
Conversion functions
[class.
conv.
fct]
11.4.9
Static members
[class.
static]
11.4.9.1
General
[class.
static.
general]
11.4.9.2
Static member functions
[class.
static.
mfct]
11.4.9.3
Static data members
[class.
static.
data]
11.4.10
Bit-fields
[class.
bit]
11.4.11
Nested class declarations
[class.
nest]
11.4.12
Nested type names
[class.
nested.
type]
11.5
Unions
[class.
union]
11.5.1
General
[class.
union.
general]
11.5.2
Anonymous unions
[class.
union.
anon]
11.6
Local class declarations
[class.
local]
11.7
Derived classes
[class.
derived]
11.7.1
General
[class.
derived.
general]
11.7.2
Multiple base classes
[class.
mi]
11.7.3
Virtual functions
[class.
virtual]
11.7.4
Abstract classes
[class.
abstract]
11.8
Member name lookup
[class.
member.
lookup]
11.9
Member access control
[class.
access]
11.9.1
General
[class.
access.
general]
11.9.2
Access specifiers
[class.
access.
spec]
11.9.3
Accessibility of base classes and base class members
[class.
access.
base]
11.9.4
Friends
[class.
friend]
11.9.5
Protected member access
[class.
protected]
11.9.6
Access to virtual functions
[class.
access.
virt]
11.9.7
Multiple access
[class.
paths]
11.9.8
Nested classes
[class.
access.
nest]
11.10
Initialization
[class.
init]
11.10.1
General
[class.
init.
general]
11.10.2
Explicit initialization
[class.
expl.
init]
11.10.3
Initializing bases and members
[class.
base.
init]
11.10.4
Initialization by inherited constructor
[class.
inhctor.
init]
11.10.5
Construction and destruction
[class.
cdtor]
11.10.6
Copy/move elision
[class.
copy.
elision]
11.11
Comparisons
[class.
compare]
11.11.1
Defaulted comparison operator functions
[class.
compare.
default]
11.11.2
Equality operator
[class.
eq]
11.11.3
Three-way comparison
[class.
spaceship]
11.11.4
Secondary comparison operators
[class.
compare.
secondary]
11.12
Free store
[class.
free]
12
Overloading
[over]
[over]
12.1
Preamble
[over.
pre]
12.2
Overloadable declarations
[over.
load]
12.3
Declaration matching
[over.
dcl]
12.4
Overload resolution
[over.
match]
12.4.1
General
[over.
match.
general]
12.4.2
Candidate functions and argument lists
[over.
match.
funcs]
12.4.2.1
General
[over.
match.
funcs.
general]
12.4.2.2
Function call syntax
[over.
match.
call]
12.4.2.2.1
General
[over.
match.
call.
general]
12.4.2.2.2
Call to named function
[over.
call.
func]
12.4.2.2.3
Call to object of class type
[over.
call.
object]
12.4.2.3
Operators in expressions
[over.
match.
oper]
12.4.2.4
Initialization by constructor
[over.
match.
ctor]
12.4.2.5
Copy-initialization of class by user-defined conversion
[over.
match.
copy]
12.4.2.6
Initialization by conversion function
[over.
match.
conv]
12.4.2.7
Initialization by conversion function for direct reference binding
[over.
match.
ref]
12.4.2.8
Initialization by list-initialization
[over.
match.
list]
12.4.2.9
Class template argument deduction
[over.
match.
class.
deduct]
12.4.3
Viable functions
[over.
match.
viable]
12.4.4
Best viable function
[over.
match.
best]
12.4.4.1
General
[over.
match.
best.
general]
12.4.4.2
Implicit conversion sequences
[over.
best.
ics]
12.4.4.2.1
General
[over.
best.
ics.
general]
12.4.4.2.2
Standard conversion sequences
[over.
ics.
scs]
12.4.4.2.3
User-defined conversion sequences
[over.
ics.
user]
12.4.4.2.4
Ellipsis conversion sequences
[over.
ics.
ellipsis]
12.4.4.2.5
Reference binding
[over.
ics.
ref]
12.4.4.2.6
List-initialization sequence
[over.
ics.
list]
12.4.4.3
Ranking implicit conversion sequences
[over.
ics.
rank]
12.5
Address of overloaded function
[over.
over]
12.6
Overloaded operators
[over.
oper]
12.6.1
General
[over.
oper.
general]
12.6.2
Unary operators
[over.
unary]
12.6.3
Binary operators
[over.
binary]
12.6.3.1
General
[over.
binary.
general]
12.6.3.2
Simple assignment
[over.
ass]
12.6.4
Function call
[over.
call]
12.6.5
Subscripting
[over.
sub]
12.6.6
Class member access
[over.
ref]
12.6.7
Increment and decrement
[over.
inc]
12.7
Built-in operators
[over.
built]
12.8
User-defined literals
[over.
literal]
13
Templates
[temp]
[temp]
13.1
Preamble
[temp.
pre]
13.2
Template parameters
[temp.
param]
13.3
Names of template specializations
[temp.
names]
13.4
Template arguments
[temp.
arg]
13.4.1
General
[temp.
arg.
general]
13.4.2
Template type arguments
[temp.
arg.
type]
13.4.3
Template non-type arguments
[temp.
arg.
nontype]
13.4.4
Template template arguments
[temp.
arg.
template]
13.5
Template constraints
[temp.
constr]
13.5.1
General
[temp.
constr.
general]
13.5.2
Constraints
[temp.
constr.
constr]
13.5.2.1
General
[temp.
constr.
constr.
general]
13.5.2.2
Logical operations
[temp.
constr.
op]
13.5.2.3
Atomic constraints
[temp.
constr.
atomic]
13.5.3
Constrained declarations
[temp.
constr.
decl]
13.5.4
Constraint normalization
[temp.
constr.
normal]
13.5.5
Partial ordering by constraints
[temp.
constr.
order]
13.6
Type equivalence
[temp.
type]
13.7
Template declarations
[temp.
decls]
13.7.1
General
[temp.
decls.
general]
13.7.2
Class templates
[temp.
class]
13.7.2.1
General
[temp.
class.
general]
13.7.2.2
Member functions of class templates
[temp.
mem.
func]
13.7.2.3
Deduction guides
[temp.
deduct.
guide]
13.7.2.4
Member classes of class templates
[temp.
mem.
class]
13.7.2.5
Static data members of class templates
[temp.
static]
13.7.2.6
Enumeration members of class templates
[temp.
mem.
enum]
13.7.3
Member templates
[temp.
mem]
13.7.4
Variadic templates
[temp.
variadic]
13.7.5
Friends
[temp.
friend]
13.7.6
Class template partial specializations
[temp.
class.
spec]
13.7.6.1
General
[temp.
class.
spec.
general]
13.7.6.2
Matching of class template partial specializations
[temp.
class.
spec.
match]
13.7.6.3
Partial ordering of class template specializations
[temp.
class.
order]
13.7.6.4
Members of class template specializations
[temp.
class.
spec.
mfunc]
13.7.7
Function templates
[temp.
fct]
13.7.7.1
General
[temp.
fct.
general]
13.7.7.2
Function template overloading
[temp.
over.
link]
13.7.7.3
Partial ordering of function templates
[temp.
func.
order]
13.7.8
Alias templates
[temp.
alias]
13.7.9
Concept definitions
[temp.
concept]
13.8
Name resolution
[temp.
res]
13.8.1
General
[temp.
res.
general]
13.8.2
Locally declared names
[temp.
local]
13.8.3
Dependent names
[temp.
dep]
13.8.3.1
General
[temp.
dep.
general]
13.8.3.2
Dependent types
[temp.
dep.
type]
13.8.3.3
Type-dependent expressions
[temp.
dep.
expr]
13.8.3.4
Value-dependent expressions
[temp.
dep.
constexpr]
13.8.3.5
Dependent template arguments
[temp.
dep.
temp]
13.8.4
Non-dependent names
[temp.
nondep]
13.8.5
Dependent name resolution
[temp.
dep.
res]
13.8.5.1
Point of instantiation
[temp.
point]
13.8.5.2
Candidate functions
[temp.
dep.
candidate]
13.8.6
Friend names declared within a class template
[temp.
inject]
13.9
Template instantiation and specialization
[temp.
spec]
13.9.1
General
[temp.
spec.
general]
13.9.2
Implicit instantiation
[temp.
inst]
13.9.3
Explicit instantiation
[temp.
explicit]
13.9.4
Explicit specialization
[temp.
expl.
spec]
13.10
Function template specializations
[temp.
fct.
spec]
13.10.1
General
[temp.
fct.
spec.
general]
13.10.2
Explicit template argument specification
[temp.
arg.
explicit]
13.10.3
Template argument deduction
[temp.
deduct]
13.10.3.1
General
[temp.
deduct.
general]
13.10.3.2
Deducing template arguments from a function call
[temp.
deduct.
call]
13.10.3.3
Deducing template arguments taking the address of a function template
[temp.
deduct.
funcaddr]
13.10.3.4
Deducing conversion function template arguments
[temp.
deduct.
conv]
13.10.3.5
Deducing template arguments during partial ordering
[temp.
deduct.
partial]
13.10.3.6
Deducing template arguments from a type
[temp.
deduct.
type]
13.10.3.7
Deducing template arguments from a function declaration
[temp.
deduct.
decl]
13.10.4
Overload resolution
[temp.
over]
14
Exception handling
[except]
[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
Error directive
[cpp.
error]
15.9
Pragma directive
[cpp.
pragma]
15.10
Null directive
[cpp.
null]
15.11
Predefined macro names
[cpp.
predefined]
15.12
Pragma operator
[cpp.
pragma.
op]
16
Library introduction
[library]
[library]
16.1
General
[library.
general]
16.2
The C standard library
[library.
c]
16.3
Method of description
[description]
16.3.1
General
[description.
general]
16.3.2
Structure of each clause
[structure]
16.3.2.1
Elements
[structure.
elements]
16.3.2.2
Summary
[structure.
summary]
16.3.2.3
Requirements
[structure.
requirements]
16.3.2.4
Detailed specifications
[structure.
specifications]
16.3.2.5
C library
[structure.
see.
also]
16.3.3
Other conventions
[conventions]
16.3.3.1
General
[conventions.
general]
16.3.3.2
Exposition-only functions
[expos.
only.
func]
16.3.3.3
Type descriptions
[type.
descriptions]
16.3.3.3.1
General
[type.
descriptions.
general]
16.3.3.3.2
Exposition-only types
[expos.
only.
types]
16.3.3.3.3
Enumerated types
[enumerated.
types]
16.3.3.3.4
Bitmask types
[bitmask.
types]
16.3.3.3.5
Character sequences
[character.
seq]
16.3.3.3.5.1
General
[character.
seq.
general]
16.3.3.3.5.2
Byte strings
[byte.
strings]
16.3.3.3.5.3
Multibyte strings
[multibyte.
strings]
16.3.3.3.6
Customization Point Object types
[customization.
point.
object]
16.3.3.4
Functions within classes
[functions.
within.
classes]
16.3.3.5
Private members
[objects.
within.
classes]
16.4
Library-wide requirements
[requirements]
16.4.1
General
[requirements.
general]
16.4.2
Library contents and organization
[organization]
16.4.2.1
General
[organization.
general]
16.4.2.2
Library contents
[contents]
16.4.2.3
Headers
[headers]
16.4.2.4
Freestanding implementations
[compliance]
16.4.3
Using the library
[using]
16.4.3.1
Overview
[using.
overview]
16.4.3.2
Headers
[using.
headers]
16.4.3.3
Linkage
[using.
linkage]
16.4.4
Requirements on types and expressions
[utility.
requirements]
16.4.4.1
General
[utility.
requirements.
general]
16.4.4.2
Template argument requirements
[utility.
arg.
requirements]
16.4.4.3
Swappable requirements
[swappable.
requirements]
16.4.4.4
Cpp17NullablePointer
requirements
[nullablepointer.
requirements]
16.4.4.5
Cpp17Hash
requirements
[hash.
requirements]
16.4.4.6
Cpp17Allocator
requirements
[allocator.
requirements]
16.4.4.6.1
General
[allocator.
requirements.
general]
16.4.4.6.2
Allocator completeness requirements
[allocator.
requirements.
completeness]
16.4.5
Constraints on programs
[constraints]
16.4.5.1
Overview
[constraints.
overview]
16.4.5.2
Namespace use
[namespace.
constraints]
16.4.5.2.1
Namespace
std
[namespace.
std]
16.4.5.2.2
Namespace
posix
[namespace.
posix]
16.4.5.2.3
Namespaces for future standardization
[namespace.
future]
16.4.5.3
Reserved names
[reserved.
names]
16.4.5.3.1
General
[reserved.
names.
general]
16.4.5.3.2
Zombie names
[zombie.
names]
16.4.5.3.3
Macro names
[macro.
names]
16.4.5.3.4
External linkage
[extern.
names]
16.4.5.3.5
Types
[extern.
types]
16.4.5.3.6
User-defined literal suffixes
[usrlit.
suffix]
16.4.5.4
Headers
[alt.
headers]
16.4.5.5
Derived classes
[derived.
classes]
16.4.5.6
Replacement functions
[replacement.
functions]
16.4.5.7
Handler functions
[handler.
functions]
16.4.5.8
Other functions
[res.
on.
functions]
16.4.5.9
Function arguments
[res.
on.
arguments]
16.4.5.10
Library object access
[res.
on.
objects]
16.4.5.11
Semantic requirements
[res.
on.
requirements]
16.4.6
Conforming implementations
[conforming]
16.4.6.1
Overview
[conforming.
overview]
16.4.6.2
Headers
[res.
on.
headers]
16.4.6.3
Restrictions on macro definitions
[res.
on.
macro.
definitions]
16.4.6.4
Non-member functions
[global.
functions]
16.4.6.5
Member functions
[member.
functions]
16.4.6.6
Friend functions
[hidden.
friends]
16.4.6.7
Constexpr functions and constructors
[constexpr.
functions]
16.4.6.8
Requirements for stable algorithms
[algorithm.
stable]
16.4.6.9
Reentrancy
[reentrancy]
16.4.6.10
Data race avoidance
[res.
on.
data.
races]
16.4.6.11
Protection within classes
[protection.
within.
classes]
16.4.6.12
Derived classes
[derivation]
16.4.6.13
Restrictions on exception handling
[res.
on.
exception.
handling]
16.4.6.14
Restrictions on storage of pointers
[res.
on.
pointer.
storage]
16.4.6.15
Value of error codes
[value.
error.
codes]
16.4.6.16
Moved-from state of library types
[lib.
types.
movedfrom]
17
Language support library
[support]
[support]
17.1
General
[support.
general]
17.2
Common definitions
[support.
types]
17.2.1
Header
<cstddef>
synopsis
[cstddef.
syn]
17.2.2
Header
<cstdlib>
synopsis
[cstdlib.
syn]
17.2.3
Null pointers
[support.
types.
nullptr]
17.2.4
Sizes, alignments, and offsets
[support.
types.
layout]
17.2.5
byte
type operations
[support.
types.
byteops]
17.3
Implementation properties
[support.
limits]
17.3.1
General
[support.
limits.
general]
17.3.2
Header
<version>
synopsis
[version.
syn]
17.3.3
Header
<limits>
synopsis
[limits.
syn]
17.3.4
Floating-point type properties
[fp.
style]
17.3.4.1
Type
float_round_style
[round.
style]
17.3.4.2
Type
float_denorm_style
[denorm.
style]
17.3.5
Class template
numeric_limits
[numeric.
limits]
17.3.5.1
General
[numeric.
limits.
general]
17.3.5.2
numeric_limits
members
[numeric.
limits.
members]
17.3.5.3
numeric_limits
specializations
[numeric.
special]
17.3.6
Header
<climits>
synopsis
[climits.
syn]
17.3.7
Header
<cfloat>
synopsis
[cfloat.
syn]
17.4
Integer types
[cstdint]
17.4.1
General
[cstdint.
general]
17.4.2
Header
<cstdint>
synopsis
[cstdint.
syn]
17.5
Startup and termination
[support.
start.
term]
17.6
Dynamic memory management
[support.
dynamic]
17.6.1
General
[support.
dynamic.
general]
17.6.2
Header
<new>
synopsis
[new.
syn]
17.6.3
Storage allocation and deallocation
[new.
delete]
17.6.3.1
General
[new.
delete.
general]
17.6.3.2
Single-object forms
[new.
delete.
single]
17.6.3.3
Array forms
[new.
delete.
array]
17.6.3.4
Non-allocating forms
[new.
delete.
placement]
17.6.3.5
Data races
[new.
delete.
dataraces]
17.6.4
Storage allocation errors
[alloc.
errors]
17.6.4.1
Class
bad_alloc
[bad.
alloc]
17.6.4.2
Class
bad_array_new_length
[new.
badlength]
17.6.4.3
Type
new_handler
[new.
handler]
17.6.4.4
set_new_handler
[set.
new.
handler]
17.6.4.5
get_new_handler
[get.
new.
handler]
17.6.5
Pointer optimization barrier
[ptr.
launder]
17.6.6
Hardware interference size
[hardware.
interference]
17.7
Type identification
[support.
rtti]
17.7.1
General
[support.
rtti.
general]
17.7.2
Header
<typeinfo>
synopsis
[typeinfo.
syn]
17.7.3
Class
type_info
[type.
info]
17.7.4
Class
bad_cast
[bad.
cast]
17.7.5
Class
bad_typeid
[bad.
typeid]
17.8
Source location
[support.
srcloc]
17.8.1
Header
<source_location>
synopsis
[source.
location.
syn]
17.8.2
Class
source_location
[support.
srcloc.
class]
17.8.2.1
General
[support.
srcloc.
class.
general]
17.8.2.2
Creation
[support.
srcloc.
cons]
17.8.2.3
Observers
[support.
srcloc.
obs]
17.9
Exception handling
[support.
exception]
17.9.1
General
[support.
exception.
general]
17.9.2
Header
<exception>
synopsis
[exception.
syn]
17.9.3
Class
exception
[exception]
17.9.4
Class
bad_exception
[bad.
exception]
17.9.5
Abnormal termination
[exception.
terminate]
17.9.5.1
Type
terminate_handler
[terminate.
handler]
17.9.5.2
set_terminate
[set.
terminate]
17.9.5.3
get_terminate
[get.
terminate]
17.9.5.4
terminate
[terminate]
17.9.6
uncaught_exceptions
[uncaught.
exceptions]
17.9.7
Exception propagation
[propagation]
17.9.8
nested_exception
[except.
nested]
17.10
Initializer lists
[support.
initlist]
17.10.1
General
[support.
initlist.
general]
17.10.2
Header
<initializer_list>
synopsis
[initializer.
list.
syn]
17.10.3
Initializer list constructors
[support.
initlist.
cons]
17.10.4
Initializer list access
[support.
initlist.
access]
17.10.5
Initializer list range access
[support.
initlist.
range]
17.11
Comparisons
[cmp]
17.11.1
Header
<compare>
synopsis
[compare.
syn]
17.11.2
Comparison category types
[cmp.
categories]
17.11.2.1
Preamble
[cmp.
categories.
pre]
17.11.2.2
Class
partial_ordering
[cmp.
partialord]
17.11.2.3
Class
weak_ordering
[cmp.
weakord]
17.11.2.4
Class
strong_ordering
[cmp.
strongord]
17.11.3
Class template
common_comparison_category
[cmp.
common]
17.11.4
Concept
three_way_comparable
[cmp.
concept]
17.11.5
Result of three-way comparison
[cmp.
result]
17.11.6
Comparison algorithms
[cmp.
alg]
17.12
Coroutines
[support.
coroutine]
17.12.1
General
[support.
coroutine.
general]
17.12.2
Header
<coroutine>
synopsis
[coroutine.
syn]
17.12.3
Coroutine traits
[coroutine.
traits]
17.12.3.1
General
[coroutine.
traits.
general]
17.12.3.2
Class template
coroutine_traits
[coroutine.
traits.
primary]
17.12.4
Class template
coroutine_handle
[coroutine.
handle]
17.12.4.1
General
[coroutine.
handle.
general]
17.12.4.2
Construct/reset
[coroutine.
handle.
con]
17.12.4.3
Export/import
[coroutine.
handle.
export.
import]
17.12.4.4
Observers
[coroutine.
handle.
observers]
17.12.4.5
Resumption
[coroutine.
handle.
resumption]
17.12.4.6
Promise access
[coroutine.
handle.
promise]
17.12.4.7
Comparison operators
[coroutine.
handle.
compare]
17.12.4.8
Hash support
[coroutine.
handle.
hash]
17.12.5
No-op coroutines
[coroutine.
noop]
17.12.5.1
Class
noop_coroutine_promise
[coroutine.
promise.
noop]
17.12.5.2
Class
coroutine_handle<noop_coroutine_promise>
[coroutine.
handle.
noop]
17.12.5.2.1
Observers
[coroutine.
handle.
noop.
observers]
17.12.5.2.2
Resumption
[coroutine.
handle.
noop.
resumption]
17.12.5.2.3
Promise access
[coroutine.
handle.
noop.
promise]
17.12.5.2.4
Address
[coroutine.
handle.
noop.
address]
17.12.5.3
Function
noop_coroutine
[coroutine.
noop.
coroutine]
17.12.6
Trivial awaitables
[coroutine.
trivial.
awaitables]
17.13
Other runtime support
[support.
runtime]
17.13.1
General
[support.
runtime.
general]
17.13.2
Header
<cstdarg>
synopsis
[cstdarg.
syn]
17.13.3
Header
<csetjmp>
synopsis
[csetjmp.
syn]
17.13.4
Header
<csignal>
synopsis
[csignal.
syn]
17.13.5
Signal handlers
[support.
signal]
18
Concepts library
[concepts]
[concepts]
18.1
General
[concepts.
general]
18.2
Equality preservation
[concepts.
equality]
18.3
Header
<concepts>
synopsis
[concepts.
syn]
18.4
Language-related concepts
[concepts.
lang]
18.4.1
General
[concepts.
lang.
general]
18.4.2
Concept
same_as
[concept.
same]
18.4.3
Concept
derived_from
[concept.
derived]
18.4.4
Concept
convertible_to
[concept.
convertible]
18.4.5
Concept
common_reference_with
[concept.
commonref]
18.4.6
Concept
common_with
[concept.
common]
18.4.7
Arithmetic concepts
[concepts.
arithmetic]
18.4.8
Concept
assignable_from
[concept.
assignable]
18.4.9
Concept
swappable
[concept.
swappable]
18.4.10
Concept
destructible
[concept.
destructible]
18.4.11
Concept
constructible_from
[concept.
constructible]
18.4.12
Concept
default_initializable
[concept.
default.
init]
18.4.13
Concept
move_constructible
[concept.
moveconstructible]
18.4.14
Concept
copy_constructible
[concept.
copyconstructible]
18.5
Comparison concepts
[concepts.
compare]
18.5.1
General
[concepts.
compare.
general]
18.5.2
Boolean testability
[concept.
booleantestable]
18.5.3
Concept
equality_comparable
[concept.
equalitycomparable]
18.5.4
Concept
totally_ordered
[concept.
totallyordered]
18.6
Object concepts
[concepts.
object]
18.7
Callable concepts
[concepts.
callable]
18.7.1
General
[concepts.
callable.
general]
18.7.2
Concept
invocable
[concept.
invocable]
18.7.3
Concept
regular_invocable
[concept.
regularinvocable]
18.7.4
Concept
predicate
[concept.
predicate]
18.7.5
Concept
relation
[concept.
relation]
18.7.6
Concept
equivalence_relation
[concept.
equiv]
18.7.7
Concept
strict_weak_order
[concept.
strictweakorder]
19
Diagnostics library
[diagnostics]
[diagnostics]
19.1
General
[diagnostics.
general]
19.2
Exception classes
[std.
exceptions]
19.2.1
General
[std.
exceptions.
general]
19.2.2
Header
<stdexcept>
synopsis
[stdexcept.
syn]
19.2.3
Class
logic_error
[logic.
error]
19.2.4
Class
domain_error
[domain.
error]
19.2.5
Class
invalid_argument
[invalid.
argument]
19.2.6
Class
length_error
[length.
error]
19.2.7
Class
out_of_range
[out.
of.
range]
19.2.8
Class
runtime_error
[runtime.
error]
19.2.9
Class
range_error
[range.
error]
19.2.10
Class
overflow_error
[overflow.
error]
19.2.11
Class
underflow_error
[underflow.
error]
19.3
Assertions
[assertions]
19.3.1
General
[assertions.
general]
19.3.2
Header
<cassert>
synopsis
[cassert.
syn]
19.3.3
The
assert
macro
[assertions.
assert]
19.4
Error numbers
[errno]
19.4.1
General
[errno.
general]
19.4.2
Header
<cerrno>
synopsis
[cerrno.
syn]
19.5
System error support
[syserr]
19.5.1
General
[syserr.
general]
19.5.2
Header
<system_error>
synopsis
[system.
error.
syn]
19.5.3
Class
error_category
[syserr.
errcat]
19.5.3.1
Overview
[syserr.
errcat.
overview]
19.5.3.2
Virtual members
[syserr.
errcat.
virtuals]
19.5.3.3
Non-virtual members
[syserr.
errcat.
nonvirtuals]
19.5.3.4
Program-defined classes derived from
error_category
[syserr.
errcat.
derived]
19.5.3.5
Error category objects
[syserr.
errcat.
objects]
19.5.4
Class
error_code
[syserr.
errcode]
19.5.4.1
Overview
[syserr.
errcode.
overview]
19.5.4.2
Constructors
[syserr.
errcode.
constructors]
19.5.4.3
Modifiers
[syserr.
errcode.
modifiers]
19.5.4.4
Observers
[syserr.
errcode.
observers]
19.5.4.5
Non-member functions
[syserr.
errcode.
nonmembers]
19.5.5
Class
error_condition
[syserr.
errcondition]
19.5.5.1
Overview
[syserr.
errcondition.
overview]
19.5.5.2
Constructors
[syserr.
errcondition.
constructors]
19.5.5.3
Modifiers
[syserr.
errcondition.
modifiers]
19.5.5.4
Observers
[syserr.
errcondition.
observers]
19.5.5.5
Non-member functions
[syserr.
errcondition.
nonmembers]
19.5.6
Comparison operator functions
[syserr.
compare]
19.5.7
System error hash support
[syserr.
hash]
19.5.8
Class
system_error
[syserr.
syserr]
19.5.8.1
Overview
[syserr.
syserr.
overview]
19.5.8.2
Members
[syserr.
syserr.
members]
20
General utilities library
[utilities]
[utilities]
20.1
General
[utilities.
general]
20.2
Utility components
[utility]
20.2.1
Header
<utility>
synopsis
[utility.
syn]
20.2.2
swap
[utility.
swap]
20.2.3
exchange
[utility.
exchange]
20.2.4
Forward/move helpers
[forward]
20.2.5
Function template
as_const
[utility.
as.
const]
20.2.6
Function template
declval
[declval]
20.2.7
Integer comparison functions
[utility.
intcmp]
20.3
Compile-time integer sequences
[intseq]
20.3.1
In general
[intseq.
general]
20.3.2
Class template
integer_sequence
[intseq.
intseq]
20.3.3
Alias template
make_integer_sequence
[intseq.
make]
20.4
Pairs
[pairs]
20.4.1
In general
[pairs.
general]
20.4.2
Class template
pair
[pairs.
pair]
20.4.3
Specialized algorithms
[pairs.
spec]
20.4.4
Tuple-like access to pair
[pair.
astuple]
20.4.5
Piecewise construction
[pair.
piecewise]
20.5
Tuples
[tuple]
20.5.1
In general
[tuple.
general]
20.5.2
Header
<tuple>
synopsis
[tuple.
syn]
20.5.3
Class template
tuple
[tuple.
tuple]
20.5.3.1
Construction
[tuple.
cnstr]
20.5.3.2
Assignment
[tuple.
assign]
20.5.3.3
swap
[tuple.
swap]
20.5.4
Tuple creation functions
[tuple.
creation]
20.5.5
Calling a function with a
tuple
of arguments
[tuple.
apply]
20.5.6
Tuple helper classes
[tuple.
helper]
20.5.7
Element access
[tuple.
elem]
20.5.8
Relational operators
[tuple.
rel]
20.5.9
Tuple traits
[tuple.
traits]
20.5.10
Tuple specialized algorithms
[tuple.
special]
20.6
Optional objects
[optional]
20.6.1
In general
[optional.
general]
20.6.2
Header
<optional>
synopsis
[optional.
syn]
20.6.3
Class template
optional
[optional.
optional]
20.6.3.1
General
[optional.
optional.
general]
20.6.3.2
Constructors
[optional.
ctor]
20.6.3.3
Destructor
[optional.
dtor]
20.6.3.4
Assignment
[optional.
assign]
20.6.3.5
Swap
[optional.
swap]
20.6.3.6
Observers
[optional.
observe]
20.6.3.7
Modifiers
[optional.
mod]
20.6.4
No-value state indicator
[optional.
nullopt]
20.6.5
Class
bad_optional_access
[optional.
bad.
access]
20.6.6
Relational operators
[optional.
relops]
20.6.7
Comparison with
nullopt
[optional.
nullops]
20.6.8
Comparison with
T
[optional.
comp.
with.
t]
20.6.9
Specialized algorithms
[optional.
specalg]
20.6.10
Hash support
[optional.
hash]
20.7
Variants
[variant]
20.7.1
In general
[variant.
general]
20.7.2
Header
<variant>
synopsis
[variant.
syn]
20.7.3
Class template
variant
[variant.
variant]
20.7.3.1
General
[variant.
variant.
general]
20.7.3.2
Constructors
[variant.
ctor]
20.7.3.3
Destructor
[variant.
dtor]
20.7.3.4
Assignment
[variant.
assign]
20.7.3.5
Modifiers
[variant.
mod]
20.7.3.6
Value status
[variant.
status]
20.7.3.7
Swap
[variant.
swap]
20.7.4
variant
helper classes
[variant.
helper]
20.7.5
Value access
[variant.
get]
20.7.6
Relational operators
[variant.
relops]
20.7.7
Visitation
[variant.
visit]
20.7.8
Class
monostate
[variant.
monostate]
20.7.9
monostate
relational operators
[variant.
monostate.
relops]
20.7.10
Specialized algorithms
[variant.
specalg]
20.7.11
Class
bad_variant_access
[variant.
bad.
access]
20.7.12
Hash support
[variant.
hash]
20.8
Storage for any type
[any]
20.8.1
General
[any.
general]
20.8.2
Header
<any>
synopsis
[any.
synop]
20.8.3
Class
bad_any_cast
[any.
bad.
any.
cast]
20.8.4
Class
any
[any.
class]
20.8.4.1
General
[any.
class.
general]
20.8.4.2
Construction and destruction
[any.
cons]
20.8.4.3
Assignment
[any.
assign]
20.8.4.4
Modifiers
[any.
modifiers]
20.8.4.5
Observers
[any.
observers]
20.8.5
Non-member functions
[any.
nonmembers]
20.9
Bitsets
[bitset]
20.9.1
Header
<bitset>
synopsis
[bitset.
syn]
20.9.2
Class template
bitset
[template.
bitset]
20.9.2.1
General
[template.
bitset.
general]
20.9.2.2
Constructors
[bitset.
cons]
20.9.2.3
Members
[bitset.
members]
20.9.3
bitset
hash support
[bitset.
hash]
20.9.4
bitset
operators
[bitset.
operators]
20.10
Memory
[memory]
20.10.1
In general
[memory.
general]
20.10.2
Header
<memory>
synopsis
[memory.
syn]
20.10.3
Pointer traits
[pointer.
traits]
20.10.3.1
General
[pointer.
traits.
general]
20.10.3.2
Member types
[pointer.
traits.
types]
20.10.3.3
Member functions
[pointer.
traits.
functions]
20.10.3.4
Optional members
[pointer.
traits.
optmem]
20.10.4
Pointer conversion
[pointer.
conversion]
20.10.5
Pointer safety
[util.
dynamic.
safety]
20.10.6
Pointer alignment
[ptr.
align]
20.10.7
Allocator argument tag
[allocator.
tag]
20.10.8
uses_allocator
[allocator.
uses]
20.10.8.1
uses_allocator
trait
[allocator.
uses.
trait]
20.10.8.2
Uses-allocator construction
[allocator.
uses.
construction]
20.10.9
Allocator traits
[allocator.
traits]
20.10.9.1
General
[allocator.
traits.
general]
20.10.9.2
Member types
[allocator.
traits.
types]
20.10.9.3
Static member functions
[allocator.
traits.
members]
20.10.10
The default allocator
[default.
allocator]
20.10.10.1
General
[default.
allocator.
general]
20.10.10.2
Members
[allocator.
members]
20.10.10.3
Operators
[allocator.
globals]
20.10.11
addressof
[specialized.
addressof]
20.10.12
C library memory allocation
[c.
malloc]
20.11
Smart pointers
[smartptr]
20.11.1
Class template
unique_ptr
[unique.
ptr]
20.11.1.1
General
[unique.
ptr.
general]
20.11.1.2
Default deleters
[unique.
ptr.
dltr]
20.11.1.2.1
In general
[unique.
ptr.
dltr.
general]
20.11.1.2.2
default_delete
[unique.
ptr.
dltr.
dflt]
20.11.1.2.3
default_delete<T[]>
[unique.
ptr.
dltr.
dflt1]
20.11.1.3
unique_ptr
for single objects
[unique.
ptr.
single]
20.11.1.3.1
General
[unique.
ptr.
single.
general]
20.11.1.3.2
Constructors
[unique.
ptr.
single.
ctor]
20.11.1.3.3
Destructor
[unique.
ptr.
single.
dtor]
20.11.1.3.4
Assignment
[unique.
ptr.
single.
asgn]
20.11.1.3.5
Observers
[unique.
ptr.
single.
observers]
20.11.1.3.6
Modifiers
[unique.
ptr.
single.
modifiers]
20.11.1.4
unique_ptr
for array objects with a runtime length
[unique.
ptr.
runtime]
20.11.1.4.1
General
[unique.
ptr.
runtime.
general]
20.11.1.4.2
Constructors
[unique.
ptr.
runtime.
ctor]
20.11.1.4.3
Assignment
[unique.
ptr.
runtime.
asgn]
20.11.1.4.4
Observers
[unique.
ptr.
runtime.
observers]
20.11.1.4.5
Modifiers
[unique.
ptr.
runtime.
modifiers]
20.11.1.5
Creation
[unique.
ptr.
create]
20.11.1.6
Specialized algorithms
[unique.
ptr.
special]
20.11.1.7
I/O
[unique.
ptr.
io]
20.11.2
Class
bad_weak_ptr
[util.
smartptr.
weak.
bad]
20.11.3
Class template
shared_ptr
[util.
smartptr.
shared]
20.11.3.1
General
[util.
smartptr.
shared.
general]
20.11.3.2
Constructors
[util.
smartptr.
shared.
const]
20.11.3.3
Destructor
[util.
smartptr.
shared.
dest]
20.11.3.4
Assignment
[util.
smartptr.
shared.
assign]
20.11.3.5
Modifiers
[util.
smartptr.
shared.
mod]
20.11.3.6
Observers
[util.
smartptr.
shared.
obs]
20.11.3.7
Creation
[util.
smartptr.
shared.
create]
20.11.3.8
Comparison
[util.
smartptr.
shared.
cmp]
20.11.3.9
Specialized algorithms
[util.
smartptr.
shared.
spec]
20.11.3.10
Casts
[util.
smartptr.
shared.
cast]
20.11.3.11
get_deleter
[util.
smartptr.
getdeleter]
20.11.3.12
I/O
[util.
smartptr.
shared.
io]
20.11.4
Class template
weak_ptr
[util.
smartptr.
weak]
20.11.4.1
General
[util.
smartptr.
weak.
general]
20.11.4.2
Constructors
[util.
smartptr.
weak.
const]
20.11.4.3
Destructor
[util.
smartptr.
weak.
dest]
20.11.4.4
Assignment
[util.
smartptr.
weak.
assign]
20.11.4.5
Modifiers
[util.
smartptr.
weak.
mod]
20.11.4.6
Observers
[util.
smartptr.
weak.
obs]
20.11.4.7
Specialized algorithms
[util.
smartptr.
weak.
spec]
20.11.5
Class template
owner_less
[util.
smartptr.
ownerless]
20.11.6
Class template
enable_shared_from_this
[util.
smartptr.
enab]
20.11.7
Smart pointer hash support
[util.
smartptr.
hash]
20.12
Memory resources
[mem.
res]
20.12.1
Header
<memory_resource>
synopsis
[mem.
res.
syn]
20.12.2
Class
memory_resource
[mem.
res.
class]
20.12.2.1
General
[mem.
res.
class.
general]
20.12.2.2
Public member functions
[mem.
res.
public]
20.12.2.3
Private virtual member functions
[mem.
res.
private]
20.12.2.4
Equality
[mem.
res.
eq]
20.12.3
Class template
polymorphic_allocator
[mem.
poly.
allocator.
class]
20.12.3.1
General
[mem.
poly.
allocator.
class.
general]
20.12.3.2
Constructors
[mem.
poly.
allocator.
ctor]
20.12.3.3
Member functions
[mem.
poly.
allocator.
mem]
20.12.3.4
Equality
[mem.
poly.
allocator.
eq]
20.12.4
Access to program-wide
memory_resource
objects
[mem.
res.
global]
20.12.5
Pool resource classes
[mem.
res.
pool]
20.12.5.1
Classes
synchronized_pool_resource
and
unsynchronized_pool_resource
[mem.
res.
pool.
overview]
20.12.5.2
pool_options
data members
[mem.
res.
pool.
options]
20.12.5.3
Constructors and destructors
[mem.
res.
pool.
ctor]
20.12.5.4
Members
[mem.
res.
pool.
mem]
20.12.6
Class
monotonic_buffer_resource
[mem.
res.
monotonic.
buffer]
20.12.6.1
General
[mem.
res.
monotonic.
buffer.
general]
20.12.6.2
Constructors and destructor
[mem.
res.
monotonic.
buffer.
ctor]
20.12.6.3
Members
[mem.
res.
monotonic.
buffer.
mem]
20.13
Class template
scoped_allocator_adaptor
[allocator.
adaptor]
20.13.1
Header
<scoped_allocator>
synopsis
[allocator.
adaptor.
syn]
20.13.2
Member types
[allocator.
adaptor.
types]
20.13.3
Constructors
[allocator.
adaptor.
cnstr]
20.13.4
Members
[allocator.
adaptor.
members]
20.13.5
Operators
[scoped.
adaptor.
operators]
20.14
Function objects
[function.
objects]
20.14.1
General
[function.
objects.
general]
20.14.2
Header
<functional>
synopsis
[functional.
syn]
20.14.3
Definitions
[func.
def]
20.14.4
Requirements
[func.
require]
20.14.5
Function template
invoke
[func.
invoke]
20.14.6
Class template
reference_wrapper
[refwrap]
20.14.6.1
General
[refwrap.
general]
20.14.6.2
Constructors and destructor
[refwrap.
const]
20.14.6.3
Assignment
[refwrap.
assign]
20.14.6.4
Access
[refwrap.
access]
20.14.6.5
Invocation
[refwrap.
invoke]
20.14.6.6
Helper functions
[refwrap.
helpers]
20.14.7
Arithmetic operations
[arithmetic.
operations]
20.14.7.1
General
[arithmetic.
operations.
general]
20.14.7.2
Class template
plus
[arithmetic.
operations.
plus]
20.14.7.3
Class template
minus
[arithmetic.
operations.
minus]
20.14.7.4
Class template
multiplies
[arithmetic.
operations.
multiplies]
20.14.7.5
Class template
divides
[arithmetic.
operations.
divides]
20.14.7.6
Class template
modulus
[arithmetic.
operations.
modulus]
20.14.7.7
Class template
negate
[arithmetic.
operations.
negate]
20.14.8
Comparisons
[comparisons]
20.14.8.1
General
[comparisons.
general]
20.14.8.2
Class template
equal_to
[comparisons.
equal.
to]
20.14.8.3
Class template
not_equal_to
[comparisons.
not.
equal.
to]
20.14.8.4
Class template
greater
[comparisons.
greater]
20.14.8.5
Class template
less
[comparisons.
less]
20.14.8.6
Class template
greater_equal
[comparisons.
greater.
equal]
20.14.8.7
Class template
less_equal
[comparisons.
less.
equal]
20.14.8.8
Class
compare_three_way
[comparisons.
three.
way]
20.14.9
Concept-constrained comparisons
[range.
cmp]
20.14.10
Logical operations
[logical.
operations]
20.14.10.1
General
[logical.
operations.
general]
20.14.10.2
Class template
logical_and
[logical.
operations.
and]
20.14.10.3
Class template
logical_or
[logical.
operations.
or]
20.14.10.4
Class template
logical_not
[logical.
operations.
not]
20.14.11
Bitwise operations
[bitwise.
operations]
20.14.11.1
General
[bitwise.
operations.
general]
20.14.11.2
Class template
bit_and
[bitwise.
operations.
and]
20.14.11.3
Class template
bit_or
[bitwise.
operations.
or]
20.14.11.4
Class template
bit_xor
[bitwise.
operations.
xor]
20.14.11.5
Class template
bit_not
[bitwise.
operations.
not]
20.14.12
Class
identity
[func.
identity]
20.14.13
Function template
not_fn
[func.
not.
fn]
20.14.14
Function template
bind_front
[func.
bind.
front]
20.14.15
Function object binders
[func.
bind]
20.14.15.1
General
[func.
bind.
general]
20.14.15.2
Class template
is_bind_expression
[func.
bind.
isbind]
20.14.15.3
Class template
is_placeholder
[func.
bind.
isplace]
20.14.15.4
Function template
bind
[func.
bind.
bind]
20.14.15.5
Placeholders
[func.
bind.
place]
20.14.16
Function template
mem_fn
[func.
memfn]
20.14.17
Polymorphic function wrappers
[func.
wrap]
20.14.17.1
General
[func.
wrap.
general]
20.14.17.2
Class
bad_function_call
[func.
wrap.
badcall]
20.14.17.3
Class template
function
[func.
wrap.
func]
20.14.17.3.1
General
[func.
wrap.
func.
general]
20.14.17.3.2
Constructors and destructor
[func.
wrap.
func.
con]
20.14.17.3.3
Modifiers
[func.
wrap.
func.
mod]
20.14.17.3.4
Capacity
[func.
wrap.
func.
cap]
20.14.17.3.5
Invocation
[func.
wrap.
func.
inv]
20.14.17.3.6
Target access
[func.
wrap.
func.
targ]
20.14.17.3.7
Null pointer comparison operator functions
[func.
wrap.
func.
nullptr]
20.14.17.3.8
Specialized algorithms
[func.
wrap.
func.
alg]
20.14.18
Searchers
[func.
search]
20.14.18.1
General
[func.
search.
general]
20.14.18.2
Class template
default_searcher
[func.
search.
default]
20.14.18.3
Class template
boyer_moore_searcher
[func.
search.
bm]
20.14.18.4
Class template
boyer_moore_horspool_searcher
[func.
search.
bmh]
20.14.19
Class template
hash
[unord.
hash]
20.15
Metaprogramming and type traits
[meta]
20.15.1
General
[meta.
general]
20.15.2
Requirements
[meta.
rqmts]
20.15.3
Header
<type_traits>
synopsis
[meta.
type.
synop]
20.15.4
Helper classes
[meta.
help]
20.15.5
Unary type traits
[meta.
unary]
20.15.5.1
General
[meta.
unary.
general]
20.15.5.2
Primary type categories
[meta.
unary.
cat]
20.15.5.3
Composite type traits
[meta.
unary.
comp]
20.15.5.4
Type properties
[meta.
unary.
prop]
20.15.6
Type property queries
[meta.
unary.
prop.
query]
20.15.7
Relationships between types
[meta.
rel]
20.15.8
Transformations between types
[meta.
trans]
20.15.8.1
General
[meta.
trans.
general]
20.15.8.2
Const-volatile modifications
[meta.
trans.
cv]
20.15.8.3
Reference modifications
[meta.
trans.
ref]
20.15.8.4
Sign modifications
[meta.
trans.
sign]
20.15.8.5
Array modifications
[meta.
trans.
arr]
20.15.8.6
Pointer modifications
[meta.
trans.
ptr]
20.15.8.7
Other transformations
[meta.
trans.
other]
20.15.9
Logical operator traits
[meta.
logical]
20.15.10
Member relationships
[meta.
member]
20.15.11
Constant evaluation context
[meta.
const.
eval]
20.16
Compile-time rational arithmetic
[ratio]
20.16.1
In general
[ratio.
general]
20.16.2
Header
<ratio>
synopsis
[ratio.
syn]
20.16.3
Class template
ratio
[ratio.
ratio]
20.16.4
Arithmetic on
ratio
s
[ratio.
arithmetic]
20.16.5
Comparison of
ratio
s
[ratio.
comparison]
20.16.6
SI types for
ratio
[ratio.
si]
20.17
Class
type_index
[type.
index]
20.17.1
Header
<typeindex>
synopsis
[type.
index.
synopsis]
20.17.2
type_index
overview
[type.
index.
overview]
20.17.3
type_index
members
[type.
index.
members]
20.17.4
Hash support
[type.
index.
hash]
20.18
Execution policies
[execpol]
20.18.1
In general
[execpol.
general]
20.18.2
Header
<execution>
synopsis
[execution.
syn]
20.18.3
Execution policy type trait
[execpol.
type]
20.18.4
Sequenced execution policy
[execpol.
seq]
20.18.5
Parallel execution policy
[execpol.
par]
20.18.6
Parallel and unsequenced execution policy
[execpol.
parunseq]
20.18.7
Unsequenced execution policy
[execpol.
unseq]
20.18.8
Execution policy objects
[execpol.
objects]
20.19
Primitive numeric conversions
[charconv]
20.19.1
Header
<charconv>
synopsis
[charconv.
syn]
20.19.2
Primitive numeric output conversion
[charconv.
to.
chars]
20.19.3
Primitive numeric input conversion
[charconv.
from.
chars]
20.20
Formatting
[format]
20.20.1
Header
<format>
synopsis
[format.
syn]
20.20.2
Format string
[format.
string]
20.20.2.1
In general
[format.
string.
general]
20.20.2.2
Standard format specifiers
[format.
string.
std]
20.20.3
Error reporting
[format.
err.
report]
20.20.4
Formatting functions
[format.
functions]
20.20.5
Formatter
[format.
formatter]
20.20.5.1
Formatter requirements
[formatter.
requirements]
20.20.5.2
Formatter specializations
[format.
formatter.
spec]
20.20.5.3
Class template
basic_format_parse_context
[format.
parse.
ctx]
20.20.5.4
Class template
basic_format_context
[format.
context]
20.20.6
Arguments
[format.
arguments]
20.20.6.1
Class template
basic_format_arg
[format.
arg]
20.20.6.2
Class template
format-arg-store
[format.
arg.
store]
20.20.6.3
Class template
basic_format_args
[format.
args]
20.20.7
Class
format_error
[format.
error]
21
Strings library
[strings]
[strings]
21.1
General
[strings.
general]
21.2
Character traits
[char.
traits]
21.2.1
General
[char.
traits.
general]
21.2.2
Character traits requirements
[char.
traits.
require]
21.2.3
Traits typedefs
[char.
traits.
typedefs]
21.2.4
char_traits
specializations
[char.
traits.
specializations]
21.2.4.1
General
[char.
traits.
specializations.
general]
21.2.4.2
struct char_traits<char>
[char.
traits.
specializations.
char]
21.2.4.3
struct char_traits<char8_t>
[char.
traits.
specializations.
char8.
t]
21.2.4.4
struct char_traits<char16_t>
[char.
traits.
specializations.
char16.
t]
21.2.4.5
struct char_traits<char32_t>
[char.
traits.
specializations.
char32.
t]
21.2.4.6
struct char_traits<wchar_t>
[char.
traits.
specializations.
wchar.
t]
21.3
String classes
[string.
classes]
21.3.1
General
[string.
classes.
general]
21.3.2
Header
<string>
synopsis
[string.
syn]
21.3.3
Class template
basic_string
[basic.
string]
21.3.3.1
General
[basic.
string.
general]
21.3.3.2
General requirements
[string.
require]
21.3.3.3
Constructors and assignment operators
[string.
cons]
21.3.3.4
Iterator support
[string.
iterators]
21.3.3.5
Capacity
[string.
capacity]
21.3.3.6
Element access
[string.
access]
21.3.3.7
Modifiers
[string.
modifiers]
21.3.3.7.1
basic_string::operator+=
[string.
op.
append]
21.3.3.7.2
basic_string::append
[string.
append]
21.3.3.7.3
basic_string::assign
[string.
assign]
21.3.3.7.4
basic_string::insert
[string.
insert]
21.3.3.7.5
basic_string::erase
[string.
erase]
21.3.3.7.6
basic_string::replace
[string.
replace]
21.3.3.7.7
basic_string::copy
[string.
copy]
21.3.3.7.8
basic_string::swap
[string.
swap]
21.3.3.8
String operations
[string.
ops]
21.3.3.8.1
Accessors
[string.
accessors]
21.3.3.8.2
Searching
[string.
find]
21.3.3.8.3
basic_string::substr
[string.
substr]
21.3.3.8.4
basic_string::compare
[string.
compare]
21.3.3.8.5
basic_string::starts_with
[string.
starts.
with]
21.3.3.8.6
basic_string::ends_with
[string.
ends.
with]
21.3.4
Non-member functions
[string.
nonmembers]
21.3.4.1
operator+
[string.
op.
plus]
21.3.4.2
Non-member comparison operator functions
[string.
cmp]
21.3.4.3
swap
[string.
special]
21.3.4.4
Inserters and extractors
[string.
io]
21.3.4.5
Erasure
[string.
erasure]
21.3.5
Numeric conversions
[string.
conversions]
21.3.6
Hash support
[basic.
string.
hash]
21.3.7
Suffix for
basic_string
literals
[basic.
string.
literals]
21.4
String view classes
[string.
view]
21.4.1
General
[string.
view.
general]
21.4.2
Header
<string_view>
synopsis
[string.
view.
synop]
21.4.3
Class template
basic_string_view
[string.
view.
template]
21.4.3.1
General
[string.
view.
template.
general]
21.4.3.2
Construction and assignment
[string.
view.
cons]
21.4.3.3
Iterator support
[string.
view.
iterators]
21.4.3.4
Capacity
[string.
view.
capacity]
21.4.3.5
Element access
[string.
view.
access]
21.4.3.6
Modifiers
[string.
view.
modifiers]
21.4.3.7
String operations
[string.
view.
ops]
21.4.3.8
Searching
[string.
view.
find]
21.4.4
Deduction guide
[string.
view.
deduct]
21.4.5
Non-member comparison functions
[string.
view.
comparison]
21.4.6
Inserters and extractors
[string.
view.
io]
21.4.7
Hash support
[string.
view.
hash]
21.4.8
Suffix for
basic_string_view
literals
[string.
view.
literals]
21.5
Null-terminated sequence utilities
[c.
strings]
21.5.1
Header
<cctype>
synopsis
[cctype.
syn]
21.5.2
Header
<cwctype>
synopsis
[cwctype.
syn]
21.5.3
Header
<cstring>
synopsis
[cstring.
syn]
21.5.4
Header
<cwchar>
synopsis
[cwchar.
syn]
21.5.5
Header
<cuchar>
synopsis
[cuchar.
syn]
21.5.6
Multibyte / wide string and character conversion functions
[c.
mb.
wcs]
22
Containers library
[containers]
[containers]
22.1
General
[containers.
general]
22.2
Container requirements
[container.
requirements]
22.2.1
General container requirements
[container.
requirements.
general]
22.2.2
Container data races
[container.
requirements.
dataraces]
22.2.3
Sequence containers
[sequence.
reqmts]
22.2.4
Node handles
[container.
node]
22.2.4.1
Overview
[container.
node.
overview]
22.2.4.2
Constructors, copy, and assignment
[container.
node.
cons]
22.2.4.3
Destructor
[container.
node.
dtor]
22.2.4.4
Observers
[container.
node.
observers]
22.2.4.5
Modifiers
[container.
node.
modifiers]
22.2.5
Insert return type
[container.
insert.
return]
22.2.6
Associative containers
[associative.
reqmts]
22.2.6.1
General
[associative.
reqmts.
general]
22.2.6.2
Exception safety guarantees
[associative.
reqmts.
except]
22.2.7
Unordered associative containers
[unord.
req]
22.2.7.1
General
[unord.
req.
general]
22.2.7.2
Exception safety guarantees
[unord.
req.
except]
22.3
Sequence containers
[sequences]
22.3.1
In general
[sequences.
general]
22.3.2
Header
<array>
synopsis
[array.
syn]
22.3.3
Header
<deque>
synopsis
[deque.
syn]
22.3.4
Header
<forward_list>
synopsis
[forward.
list.
syn]
22.3.5
Header
<list>
synopsis
[list.
syn]
22.3.6
Header
<vector>
synopsis
[vector.
syn]
22.3.7
Class template
array
[array]
22.3.7.1
Overview
[array.
overview]
22.3.7.2
Constructors, copy, and assignment
[array.
cons]
22.3.7.3
Member functions
[array.
members]
22.3.7.4
Specialized algorithms
[array.
special]
22.3.7.5
Zero-sized arrays
[array.
zero]
22.3.7.6
Array creation functions
[array.
creation]
22.3.7.7
Tuple interface
[array.
tuple]
22.3.8
Class template
deque
[deque]
22.3.8.1
Overview
[deque.
overview]
22.3.8.2
Constructors, copy, and assignment
[deque.
cons]
22.3.8.3
Capacity
[deque.
capacity]
22.3.8.4
Modifiers
[deque.
modifiers]
22.3.8.5
Erasure
[deque.
erasure]
22.3.9
Class template
forward_list
[forwardlist]
22.3.9.1
Overview
[forwardlist.
overview]
22.3.9.2
Constructors, copy, and assignment
[forwardlist.
cons]
22.3.9.3
Iterators
[forwardlist.
iter]
22.3.9.4
Element access
[forwardlist.
access]
22.3.9.5
Modifiers
[forwardlist.
modifiers]
22.3.9.6
Operations
[forwardlist.
ops]
22.3.9.7
Erasure
[forward.
list.
erasure]
22.3.10
Class template
list
[list]
22.3.10.1
Overview
[list.
overview]
22.3.10.2
Constructors, copy, and assignment
[list.
cons]
22.3.10.3
Capacity
[list.
capacity]
22.3.10.4
Modifiers
[list.
modifiers]
22.3.10.5
Operations
[list.
ops]
22.3.10.6
Erasure
[list.
erasure]
22.3.11
Class template
vector
[vector]
22.3.11.1
Overview
[vector.
overview]
22.3.11.2
Constructors
[vector.
cons]
22.3.11.3
Capacity
[vector.
capacity]
22.3.11.4
Data
[vector.
data]
22.3.11.5
Modifiers
[vector.
modifiers]
22.3.11.6
Erasure
[vector.
erasure]
22.3.12
Class
vector<bool>
[vector.
bool]
22.4
Associative containers
[associative]
22.4.1
In general
[associative.
general]
22.4.2
Header
<map>
synopsis
[associative.
map.
syn]
22.4.3
Header
<set>
synopsis
[associative.
set.
syn]
22.4.4
Class template
map
[map]
22.4.4.1
Overview
[map.
overview]
22.4.4.2
Constructors, copy, and assignment
[map.
cons]
22.4.4.3
Element access
[map.
access]
22.4.4.4
Modifiers
[map.
modifiers]
22.4.4.5
Erasure
[map.
erasure]
22.4.5
Class template
multimap
[multimap]
22.4.5.1
Overview
[multimap.
overview]
22.4.5.2
Constructors
[multimap.
cons]
22.4.5.3
Modifiers
[multimap.
modifiers]
22.4.5.4
Erasure
[multimap.
erasure]
22.4.6
Class template
set
[set]
22.4.6.1
Overview
[set.
overview]
22.4.6.2
Constructors, copy, and assignment
[set.
cons]
22.4.6.3
Erasure
[set.
erasure]
22.4.7
Class template
multiset
[multiset]
22.4.7.1
Overview
[multiset.
overview]
22.4.7.2
Constructors
[multiset.
cons]
22.4.7.3
Erasure
[multiset.
erasure]
22.5
Unordered associative containers
[unord]
22.5.1
In general
[unord.
general]
22.5.2
Header
<unordered_map>
synopsis
[unord.
map.
syn]
22.5.3
Header
<unordered_set>
synopsis
[unord.
set.
syn]
22.5.4
Class template
unordered_map
[unord.
map]
22.5.4.1
Overview
[unord.
map.
overview]
22.5.4.2
Constructors
[unord.
map.
cnstr]
22.5.4.3
Element access
[unord.
map.
elem]
22.5.4.4
Modifiers
[unord.
map.
modifiers]
22.5.4.5
Erasure
[unord.
map.
erasure]
22.5.5
Class template
unordered_multimap
[unord.
multimap]
22.5.5.1
Overview
[unord.
multimap.
overview]
22.5.5.2
Constructors
[unord.
multimap.
cnstr]
22.5.5.3
Modifiers
[unord.
multimap.
modifiers]
22.5.5.4
Erasure
[unord.
multimap.
erasure]
22.5.6
Class template
unordered_set
[unord.
set]
22.5.6.1
Overview
[unord.
set.
overview]
22.5.6.2
Constructors
[unord.
set.
cnstr]
22.5.6.3
Erasure
[unord.
set.
erasure]
22.5.7
Class template
unordered_multiset
[unord.
multiset]
22.5.7.1
Overview
[unord.
multiset.
overview]
22.5.7.2
Constructors
[unord.
multiset.
cnstr]
22.5.7.3
Erasure
[unord.
multiset.
erasure]
22.6
Container adaptors
[container.
adaptors]
22.6.1
In general
[container.
adaptors.
general]
22.6.2
Header
<queue>
synopsis
[queue.
syn]
22.6.3
Header
<stack>
synopsis
[stack.
syn]
22.6.4
Class template
queue
[queue]
22.6.4.1
Definition
[queue.
defn]
22.6.4.2
Constructors
[queue.
cons]
22.6.4.3
Constructors with allocators
[queue.
cons.
alloc]
22.6.4.4
Operators
[queue.
ops]
22.6.4.5
Specialized algorithms
[queue.
special]
22.6.5
Class template
priority_queue
[priority.
queue]
22.6.5.1
Overview
[priqueue.
overview]
22.6.5.2
Constructors
[priqueue.
cons]
22.6.5.3
Constructors with allocators
[priqueue.
cons.
alloc]
22.6.5.4
Members
[priqueue.
members]
22.6.5.5
Specialized algorithms
[priqueue.
special]
22.6.6
Class template
stack
[stack]
22.6.6.1
General
[stack.
general]
22.6.6.2
Definition
[stack.
defn]
22.6.6.3
Constructors
[stack.
cons]
22.6.6.4
Constructors with allocators
[stack.
cons.
alloc]
22.6.6.5
Operators
[stack.
ops]
22.6.6.6
Specialized algorithms
[stack.
special]
22.7
Views
[views]
22.7.1
General
[views.
general]
22.7.2
Header
<span>
synopsis
[span.
syn]
22.7.3
Class template
span
[views.
span]
22.7.3.1
Overview
[span.
overview]
22.7.3.2
Constructors, copy, and assignment
[span.
cons]
22.7.3.3
Deduction guides
[span.
deduct]
22.7.3.4
Subviews
[span.
sub]
22.7.3.5
Observers
[span.
obs]
22.7.3.6
Element access
[span.
elem]
22.7.3.7
Iterator support
[span.
iterators]
22.7.3.8
Views of object representation
[span.
objectrep]
23
Iterators library
[iterators]
[iterators]
23.1
General
[iterators.
general]
23.2
Header
<iterator>
synopsis
[iterator.
synopsis]
23.3
Iterator requirements
[iterator.
requirements]
23.3.1
In general
[iterator.
requirements.
general]
23.3.2
Associated types
[iterator.
assoc.
types]
23.3.2.1
Incrementable traits
[incrementable.
traits]
23.3.2.2
Indirectly readable traits
[readable.
traits]
23.3.2.3
Iterator traits
[iterator.
traits]
23.3.3
Customization point objects
[iterator.
cust]
23.3.3.1
ranges::iter_move
[iterator.
cust.
move]
23.3.3.2
ranges::iter_swap
[iterator.
cust.
swap]
23.3.4
Iterator concepts
[iterator.
concepts]
23.3.4.1
General
[iterator.
concepts.
general]
23.3.4.2
Concept
indirectly_readable
[iterator.
concept.
readable]
23.3.4.3
Concept
indirectly_writable
[iterator.
concept.
writable]
23.3.4.4
Concept
weakly_incrementable
[iterator.
concept.
winc]
23.3.4.5
Concept
incrementable
[iterator.
concept.
inc]
23.3.4.6
Concept
input_or_output_iterator
[iterator.
concept.
iterator]
23.3.4.7
Concept
sentinel_for
[iterator.
concept.
sentinel]
23.3.4.8
Concept
sized_sentinel_for
[iterator.
concept.
sizedsentinel]
23.3.4.9
Concept
input_iterator
[iterator.
concept.
input]
23.3.4.10
Concept
output_iterator
[iterator.
concept.
output]
23.3.4.11
Concept
forward_iterator
[iterator.
concept.
forward]
23.3.4.12
Concept
bidirectional_iterator
[iterator.
concept.
bidir]
23.3.4.13
Concept
random_access_iterator
[iterator.
concept.
random.
access]
23.3.4.14
Concept
contiguous_iterator
[iterator.
concept.
contiguous]
23.3.5
C++17 iterator requirements
[iterator.
cpp17]
23.3.5.1
General
[iterator.
cpp17.
general]
23.3.5.2
Cpp17Iterator
[iterator.
iterators]
23.3.5.3
Input iterators
[input.
iterators]
23.3.5.4
Output iterators
[output.
iterators]
23.3.5.5
Forward iterators
[forward.
iterators]
23.3.5.6
Bidirectional iterators
[bidirectional.
iterators]
23.3.5.7
Random access iterators
[random.
access.
iterators]
23.3.6
Indirect callable requirements
[indirectcallable]
23.3.6.1
General
[indirectcallable.
general]
23.3.6.2
Indirect callables
[indirectcallable.
indirectinvocable]
23.3.6.3
Class template
projected
[projected]
23.3.7
Common algorithm requirements
[alg.
req]
23.3.7.1
General
[alg.
req.
general]
23.3.7.2
Concept
indirectly_movable
[alg.
req.
ind.
move]
23.3.7.3
Concept
indirectly_copyable
[alg.
req.
ind.
copy]
23.3.7.4
Concept
indirectly_swappable
[alg.
req.
ind.
swap]
23.3.7.5
Concept
indirectly_comparable
[alg.
req.
ind.
cmp]
23.3.7.6
Concept
permutable
[alg.
req.
permutable]
23.3.7.7
Concept
mergeable
[alg.
req.
mergeable]
23.3.7.8
Concept
sortable
[alg.
req.
sortable]
23.4
Iterator primitives
[iterator.
primitives]
23.4.1
General
[iterator.
primitives.
general]
23.4.2
Standard iterator tags
[std.
iterator.
tags]
23.4.3
Iterator operations
[iterator.
operations]
23.4.4
Range iterator operations
[range.
iter.
ops]
23.4.4.1
General
[range.
iter.
ops.
general]
23.4.4.2
ranges::advance
[range.
iter.
op.
advance]
23.4.4.3
ranges::distance
[range.
iter.
op.
distance]
23.4.4.4
ranges::next
[range.
iter.
op.
next]
23.4.4.5
ranges::prev
[range.
iter.
op.
prev]
23.5
Iterator adaptors
[predef.
iterators]
23.5.1
Reverse iterators
[reverse.
iterators]
23.5.1.1
General
[reverse.
iterators.
general]
23.5.1.2
Class template
reverse_iterator
[reverse.
iterator]
23.5.1.3
Requirements
[reverse.
iter.
requirements]
23.5.1.4
Construction and assignment
[reverse.
iter.
cons]
23.5.1.5
Conversion
[reverse.
iter.
conv]
23.5.1.6
Element access
[reverse.
iter.
elem]
23.5.1.7
Navigation
[reverse.
iter.
nav]
23.5.1.8
Comparisons
[reverse.
iter.
cmp]
23.5.1.9
Non-member functions
[reverse.
iter.
nonmember]
23.5.2
Insert iterators
[insert.
iterators]
23.5.2.1
General
[insert.
iterators.
general]
23.5.2.2
Class template
back_insert_iterator
[back.
insert.
iterator]
23.5.2.2.1
Operations
[back.
insert.
iter.
ops]
23.5.2.2.2
back_inserter
[back.
inserter]
23.5.2.3
Class template
front_insert_iterator
[front.
insert.
iterator]
23.5.2.3.1
Operations
[front.
insert.
iter.
ops]
23.5.2.3.2
front_inserter
[front.
inserter]
23.5.2.4
Class template
insert_iterator
[insert.
iterator]
23.5.2.4.1
Operations
[insert.
iter.
ops]
23.5.2.4.2
inserter
[inserter]
23.5.3
Move iterators and sentinels
[move.
iterators]
23.5.3.1
General
[move.
iterators.
general]
23.5.3.2
Class template
move_iterator
[move.
iterator]
23.5.3.3
Requirements
[move.
iter.
requirements]
23.5.3.4
Construction and assignment
[move.
iter.
cons]
23.5.3.5
Conversion
[move.
iter.
op.
conv]
23.5.3.6
Element access
[move.
iter.
elem]
23.5.3.7
Navigation
[move.
iter.
nav]
23.5.3.8
Comparisons
[move.
iter.
op.
comp]
23.5.3.9
Non-member functions
[move.
iter.
nonmember]
23.5.3.10
Class template
move_sentinel
[move.
sentinel]
23.5.3.11
Operations
[move.
sent.
ops]
23.5.4
Common iterators
[iterators.
common]
23.5.4.1
Class template
common_iterator
[common.
iterator]
23.5.4.2
Associated types
[common.
iter.
types]
23.5.4.3
Constructors and conversions
[common.
iter.
const]
23.5.4.4
Accessors
[common.
iter.
access]
23.5.4.5
Navigation
[common.
iter.
nav]
23.5.4.6
Comparisons
[common.
iter.
cmp]
23.5.4.7
Customizations
[common.
iter.
cust]
23.5.5
Default sentinel
[default.
sentinel]
23.5.6
Counted iterators
[iterators.
counted]
23.5.6.1
Class template
counted_iterator
[counted.
iterator]
23.5.6.2
Constructors and conversions
[counted.
iter.
const]
23.5.6.3
Accessors
[counted.
iter.
access]
23.5.6.4
Element access
[counted.
iter.
elem]
23.5.6.5
Navigation
[counted.
iter.
nav]
23.5.6.6
Comparisons
[counted.
iter.
cmp]
23.5.6.7
Customizations
[counted.
iter.
cust]
23.5.7
Unreachable sentinel
[unreachable.
sentinel]
23.6
Stream iterators
[stream.
iterators]
23.6.1
General
[stream.
iterators.
general]
23.6.2
Class template
istream_iterator
[istream.
iterator]
23.6.2.1
General
[istream.
iterator.
general]
23.6.2.2
Constructors and destructor
[istream.
iterator.
cons]
23.6.2.3
Operations
[istream.
iterator.
ops]
23.6.3
Class template
ostream_iterator
[ostream.
iterator]
23.6.3.1
General
[ostream.
iterator.
general]
23.6.3.2
Constructors and destructor
[ostream.
iterator.
cons.
des]
23.6.3.3
Operations
[ostream.
iterator.
ops]
23.6.4
Class template
istreambuf_iterator
[istreambuf.
iterator]
23.6.4.1
General
[istreambuf.
iterator.
general]
23.6.4.2
Class
istreambuf_iterator::
proxy
[istreambuf.
iterator.
proxy]
23.6.4.3
Constructors
[istreambuf.
iterator.
cons]
23.6.4.4
Operations
[istreambuf.
iterator.
ops]
23.6.5
Class template
ostreambuf_iterator
[ostreambuf.
iterator]
23.6.5.1
General
[ostreambuf.
iterator.
general]
23.6.5.2
Constructors
[ostreambuf.
iter.
cons]
23.6.5.3
Operations
[ostreambuf.
iter.
ops]
23.7
Range access
[iterator.
range]
24
Ranges library
[ranges]
[ranges]
24.1
General
[ranges.
general]
24.2
Header
<ranges>
synopsis
[ranges.
syn]
24.3
Range access
[range.
access]
24.3.1
General
[range.
access.
general]
24.3.2
ranges::begin
[range.
access.
begin]
24.3.3
ranges::end
[range.
access.
end]
24.3.4
ranges::cbegin
[range.
access.
cbegin]
24.3.5
ranges::cend
[range.
access.
cend]
24.3.6
ranges::rbegin
[range.
access.
rbegin]
24.3.7
ranges::rend
[range.
access.
rend]
24.3.8
ranges::crbegin
[range.
access.
crbegin]
24.3.9
ranges::crend
[range.
access.
crend]
24.3.10
ranges::size
[range.
prim.
size]
24.3.11
ranges::ssize
[range.
prim.
ssize]
24.3.12
ranges::empty
[range.
prim.
empty]
24.3.13
ranges::data
[range.
prim.
data]
24.3.14
ranges::cdata
[range.
prim.
cdata]
24.4
Range requirements
[range.
req]
24.4.1
General
[range.
req.
general]
24.4.2
Ranges
[range.
range]
24.4.3
Sized ranges
[range.
sized]
24.4.4
Views
[range.
view]
24.4.5
Other range refinements
[range.
refinements]
24.5
Range utilities
[range.
utility]
24.5.1
General
[range.
utility.
general]
24.5.2
Helper concepts
[range.
utility.
helpers]
24.5.3
View interface
[view.
interface]
24.5.3.1
General
[view.
interface.
general]
24.5.3.2
Members
[view.
interface.
members]
24.5.4
Sub-ranges
[range.
subrange]
24.5.4.1
General
[range.
subrange.
general]
24.5.4.2
Constructors and conversions
[range.
subrange.
ctor]
24.5.4.3
Accessors
[range.
subrange.
access]
24.5.5
Dangling iterator handling
[range.
dangling]
24.6
Range factories
[range.
factories]
24.6.1
General
[range.
factories.
general]
24.6.2
Empty view
[range.
empty]
24.6.2.1
Overview
[range.
empty.
overview]
24.6.2.2
Class template
empty_view
[range.
empty.
view]
24.6.3
Single view
[range.
single]
24.6.3.1
Overview
[range.
single.
overview]
24.6.3.2
Class template
single_view
[range.
single.
view]
24.6.4
Iota view
[range.
iota]
24.6.4.1
Overview
[range.
iota.
overview]
24.6.4.2
Class template
iota_view
[range.
iota.
view]
24.6.4.3
Class
iota_view::
iterator
[range.
iota.
iterator]
24.6.4.4
Class
iota_view::
sentinel
[range.
iota.
sentinel]
24.6.5
Istream view
[range.
istream]
24.6.5.1
Overview
[range.
istream.
overview]
24.6.5.2
Class template
basic_istream_view
[range.
istream.
view]
24.6.5.3
Class template
basic_istream_view::
iterator
[range.
istream.
iterator]
24.7
Range adaptors
[range.
adaptors]
24.7.1
General
[range.
adaptors.
general]
24.7.2
Range adaptor objects
[range.
adaptor.
object]
24.7.3
Semiregular wrapper
[range.
semi.
wrap]
24.7.4
All view
[range.
all]
24.7.4.1
General
[range.
all.
general]
24.7.4.2
Class template
ref_view
[range.
ref.
view]
24.7.5
Filter view
[range.
filter]
24.7.5.1
Overview
[range.
filter.
overview]
24.7.5.2
Class template
filter_view
[range.
filter.
view]
24.7.5.3
Class
filter_view::
iterator
[range.
filter.
iterator]
24.7.5.4
Class
filter_view::
sentinel
[range.
filter.
sentinel]
24.7.6
Transform view
[range.
transform]
24.7.6.1
Overview
[range.
transform.
overview]
24.7.6.2
Class template
transform_view
[range.
transform.
view]
24.7.6.3
Class template
transform_view::
iterator
[range.
transform.
iterator]
24.7.6.4
Class template
transform_view::
sentinel
[range.
transform.
sentinel]
24.7.7
Take view
[range.
take]
24.7.7.1
Overview
[range.
take.
overview]
24.7.7.2
Class template
take_view
[range.
take.
view]
24.7.7.3
Class template
take_view::
sentinel
[range.
take.
sentinel]
24.7.8
Take while view
[range.
take.
while]
24.7.8.1
Overview
[range.
take.
while.
overview]
24.7.8.2
Class template
take_while_view
[range.
take.
while.
view]
24.7.8.3
Class template
take_while_view::
sentinel
[range.
take.
while.
sentinel]
24.7.9
Drop view
[range.
drop]
24.7.9.1
Overview
[range.
drop.
overview]
24.7.9.2
Class template
drop_view
[range.
drop.
view]
24.7.10
Drop while view
[range.
drop.
while]
24.7.10.1
Overview
[range.
drop.
while.
overview]
24.7.10.2
Class template
drop_while_view
[range.
drop.
while.
view]
24.7.11
Join view
[range.
join]
24.7.11.1
Overview
[range.
join.
overview]
24.7.11.2
Class template
join_view
[range.
join.
view]
24.7.11.3
Class template
join_view::
iterator
[range.
join.
iterator]
24.7.11.4
Class template
join_view::
sentinel
[range.
join.
sentinel]
24.7.12
Split view
[range.
split]
24.7.12.1
Overview
[range.
split.
overview]
24.7.12.2
Class template
split_view
[range.
split.
view]
24.7.12.3
Class template
split_view::
outer-iterator
[range.
split.
outer]
24.7.12.4
Class
split_view::
outer-iterator
::value_type
[range.
split.
outer.
value]
24.7.12.5
Class template
split_view::
inner-iterator
[range.
split.
inner]
24.7.13
Counted view
[range.
counted]
24.7.14
Common view
[range.
common]
24.7.14.1
Overview
[range.
common.
overview]
24.7.14.2
Class template
common_view
[range.
common.
view]
24.7.15
Reverse view
[range.
reverse]
24.7.15.1
Overview
[range.
reverse.
overview]
24.7.15.2
Class template
reverse_view
[range.
reverse.
view]
24.7.16
Elements view
[range.
elements]
24.7.16.1
Overview
[range.
elements.
overview]
24.7.16.2
Class template
elements_view
[range.
elements.
view]
24.7.16.3
Class template
elements_view::
iterator
[range.
elements.
iterator]
24.7.16.4
Class template
elements_view::
sentinel
[range.
elements.
sentinel]
25
Algorithms library
[algorithms]
[algorithms]
25.1
General
[algorithms.
general]
25.2
Algorithms requirements
[algorithms.
requirements]
25.3
Parallel algorithms
[algorithms.
parallel]
25.3.1
Preamble
[algorithms.
parallel.
defns]
25.3.2
Requirements on user-provided function objects
[algorithms.
parallel.
user]
25.3.3
Effect of execution policies on algorithm execution
[algorithms.
parallel.
exec]
25.3.4
Parallel algorithm exceptions
[algorithms.
parallel.
exceptions]
25.3.5
ExecutionPolicy
algorithm overloads
[algorithms.
parallel.
overloads]
25.4
Header
<algorithm>
synopsis
[algorithm.
syn]
25.5
Algorithm result types
[algorithms.
results]
25.6
Non-modifying sequence operations
[alg.
nonmodifying]
25.6.1
All of
[alg.
all.
of]
25.6.2
Any of
[alg.
any.
of]
25.6.3
None of
[alg.
none.
of]
25.6.4
For each
[alg.
foreach]
25.6.5
Find
[alg.
find]
25.6.6
Find end
[alg.
find.
end]
25.6.7
Find first
[alg.
find.
first.
of]
25.6.8
Adjacent find
[alg.
adjacent.
find]
25.6.9
Count
[alg.
count]
25.6.10
Mismatch
[mismatch]
25.6.11
Equal
[alg.
equal]
25.6.12
Is permutation
[alg.
is.
permutation]
25.6.13
Search
[alg.
search]
25.7
Mutating sequence operations
[alg.
modifying.
operations]
25.7.1
Copy
[alg.
copy]
25.7.2
Move
[alg.
move]
25.7.3
Swap
[alg.
swap]
25.7.4
Transform
[alg.
transform]
25.7.5
Replace
[alg.
replace]
25.7.6
Fill
[alg.
fill]
25.7.7
Generate
[alg.
generate]
25.7.8
Remove
[alg.
remove]
25.7.9
Unique
[alg.
unique]
25.7.10
Reverse
[alg.
reverse]
25.7.11
Rotate
[alg.
rotate]
25.7.12
Sample
[alg.
random.
sample]
25.7.13
Shuffle
[alg.
random.
shuffle]
25.7.14
Shift
[alg.
shift]
25.8
Sorting and related operations
[alg.
sorting]
25.8.1
General
[alg.
sorting.
general]
25.8.2
Sorting
[alg.
sort]
25.8.2.1
sort
[sort]
25.8.2.2
stable_sort
[stable.
sort]
25.8.2.3
partial_sort
[partial.
sort]
25.8.2.4
partial_sort_copy
[partial.
sort.
copy]
25.8.2.5
is_sorted
[is.
sorted]
25.8.3
Nth element
[alg.
nth.
element]
25.8.4
Binary search
[alg.
binary.
search]
25.8.4.1
General
[alg.
binary.
search.
general]
25.8.4.2
lower_bound
[lower.
bound]
25.8.4.3
upper_bound
[upper.
bound]
25.8.4.4
equal_range
[equal.
range]
25.8.4.5
binary_search
[binary.
search]
25.8.5
Partitions
[alg.
partitions]
25.8.6
Merge
[alg.
merge]
25.8.7
Set operations on sorted structures
[alg.
set.
operations]
25.8.7.1
General
[alg.
set.
operations.
general]
25.8.7.2
includes
[includes]
25.8.7.3
set_union
[set.
union]
25.8.7.4
set_intersection
[set.
intersection]
25.8.7.5
set_difference
[set.
difference]
25.8.7.6
set_symmetric_difference
[set.
symmetric.
difference]
25.8.8
Heap operations
[alg.
heap.
operations]
25.8.8.1
General
[alg.
heap.
operations.
general]
25.8.8.2
push_heap
[push.
heap]
25.8.8.3
pop_heap
[pop.
heap]
25.8.8.4
make_heap
[make.
heap]
25.8.8.5
sort_heap
[sort.
heap]
25.8.8.6
is_heap
[is.
heap]
25.8.9
Minimum and maximum
[alg.
min.
max]
25.8.10
Bounded value
[alg.
clamp]
25.8.11
Lexicographical comparison
[alg.
lex.
comparison]
25.8.12
Three-way comparison algorithms
[alg.
three.
way]
25.8.13
Permutation generators
[alg.
permutation.
generators]
25.9
Header
<numeric>
synopsis
[numeric.
ops.
overview]
25.10
Generalized numeric operations
[numeric.
ops]
25.10.1
General
[numeric.
ops.
general]
25.10.2
Definitions
[numerics.
defns]
25.10.3
Accumulate
[accumulate]
25.10.4
Reduce
[reduce]
25.10.5
Inner product
[inner.
product]
25.10.6
Transform reduce
[transform.
reduce]
25.10.7
Partial sum
[partial.
sum]
25.10.8
Exclusive scan
[exclusive.
scan]
25.10.9
Inclusive scan
[inclusive.
scan]
25.10.10
Transform exclusive scan
[transform.
exclusive.
scan]
25.10.11
Transform inclusive scan
[transform.
inclusive.
scan]
25.10.12
Adjacent difference
[adjacent.
difference]
25.10.13
Iota
[numeric.
iota]
25.10.14
Greatest common divisor
[numeric.
ops.
gcd]
25.10.15
Least common multiple
[numeric.
ops.
lcm]
25.10.16
Midpoint
[numeric.
ops.
midpoint]
25.11
Specialized
<memory>
algorithms
[specialized.
algorithms]
25.11.1
General
[specialized.
algorithms.
general]
25.11.2
Special memory concepts
[special.
mem.
concepts]
25.11.3
uninitialized_default_construct
[uninitialized.
construct.
default]
25.11.4
uninitialized_value_construct
[uninitialized.
construct.
value]
25.11.5
uninitialized_copy
[uninitialized.
copy]
25.11.6
uninitialized_move
[uninitialized.
move]
25.11.7
uninitialized_fill
[uninitialized.
fill]
25.11.8
construct_at
[specialized.
construct]
25.11.9
destroy
[specialized.
destroy]
25.12
C library algorithms
[alg.
c.
library]
26
Numerics library
[numerics]
[numerics]
26.1
General
[numerics.
general]
26.2
Numeric type requirements
[numeric.
requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header
<cfenv>
synopsis
[cfenv.
syn]
26.3.2
Threads
[cfenv.
thread]
26.4
Complex numbers
[complex.
numbers]
26.4.1
General
[complex.
numbers.
general]
26.4.2
Header
<complex>
synopsis
[complex.
syn]
26.4.3
Class template
complex
[complex]
26.4.4
Specializations
[complex.
special]
26.4.5
Member functions
[complex.
members]
26.4.6
Member operators
[complex.
member.
ops]
26.4.7
Non-member operations
[complex.
ops]
26.4.8
Value operations
[complex.
value.
ops]
26.4.9
Transcendentals
[complex.
transcendentals]
26.4.10
Additional overloads
[cmplx.
over]
26.4.11
Suffixes for complex number literals
[complex.
literals]
26.5
Bit manipulation
[bit]
26.5.1
General
[bit.
general]
26.5.2
Header
<bit>
synopsis
[bit.
syn]
26.5.3
Function template
bit_cast
[bit.
cast]
26.5.4
Integral powers of 2
[bit.
pow.
two]
26.5.5
Rotating
[bit.
rotate]
26.5.6
Counting
[bit.
count]
26.5.7
Endian
[bit.
endian]
26.6
Random number generation
[rand]
26.6.1
General
[rand.
general]
26.6.2
Header
<random>
synopsis
[rand.
synopsis]
26.6.3
Requirements
[rand.
req]
26.6.3.1
General requirements
[rand.
req.
genl]
26.6.3.2
Seed sequence requirements
[rand.
req.
seedseq]
26.6.3.3
Uniform random bit generator requirements
[rand.
req.
urng]
26.6.3.4
Random number engine requirements
[rand.
req.
eng]
26.6.3.5
Random number engine adaptor requirements
[rand.
req.
adapt]
26.6.3.6
Random number distribution requirements
[rand.
req.
dist]
26.6.4
Random number engine class templates
[rand.
eng]
26.6.4.1
General
[rand.
eng.
general]
26.6.4.2
Class template
linear_congruential_engine
[rand.
eng.
lcong]
26.6.4.3
Class template
mersenne_twister_engine
[rand.
eng.
mers]
26.6.4.4
Class template
subtract_with_carry_engine
[rand.
eng.
sub]
26.6.5
Random number engine adaptor class templates
[rand.
adapt]
26.6.5.1
In general
[rand.
adapt.
general]
26.6.5.2
Class template
discard_block_engine
[rand.
adapt.
disc]
26.6.5.3
Class template
independent_bits_engine
[rand.
adapt.
ibits]
26.6.5.4
Class template
shuffle_order_engine
[rand.
adapt.
shuf]
26.6.6
Engines and engine adaptors with predefined parameters
[rand.
predef]
26.6.7
Class
random_device
[rand.
device]
26.6.8
Utilities
[rand.
util]
26.6.8.1
Class
seed_seq
[rand.
util.
seedseq]
26.6.8.2
Function template
generate_canonical
[rand.
util.
canonical]
26.6.9
Random number distribution class templates
[rand.
dist]
26.6.9.1
In general
[rand.
dist.
general]
26.6.9.2
Uniform distributions
[rand.
dist.
uni]
26.6.9.2.1
Class template
uniform_int_distribution
[rand.
dist.
uni.
int]
26.6.9.2.2
Class template
uniform_real_distribution
[rand.
dist.
uni.
real]
26.6.9.3
Bernoulli distributions
[rand.
dist.
bern]
26.6.9.3.1
Class
bernoulli_distribution
[rand.
dist.
bern.
bernoulli]
26.6.9.3.2
Class template
binomial_distribution
[rand.
dist.
bern.
bin]
26.6.9.3.3
Class template
geometric_distribution
[rand.
dist.
bern.
geo]
26.6.9.3.4
Class template
negative_binomial_distribution
[rand.
dist.
bern.
negbin]
26.6.9.4
Poisson distributions
[rand.
dist.
pois]
26.6.9.4.1
Class template
poisson_distribution
[rand.
dist.
pois.
poisson]
26.6.9.4.2
Class template
exponential_distribution
[rand.
dist.
pois.
exp]
26.6.9.4.3
Class template
gamma_distribution
[rand.
dist.
pois.
gamma]
26.6.9.4.4
Class template
weibull_distribution
[rand.
dist.
pois.
weibull]
26.6.9.4.5
Class template
extreme_value_distribution
[rand.
dist.
pois.
extreme]
26.6.9.5
Normal distributions
[rand.
dist.
norm]
26.6.9.5.1
Class template
normal_distribution
[rand.
dist.
norm.
normal]
26.6.9.5.2
Class template
lognormal_distribution
[rand.
dist.
norm.
lognormal]
26.6.9.5.3
Class template
chi_squared_distribution
[rand.
dist.
norm.
chisq]
26.6.9.5.4
Class template
cauchy_distribution
[rand.
dist.
norm.
cauchy]
26.6.9.5.5
Class template
fisher_f_distribution
[rand.
dist.
norm.
f]
26.6.9.5.6
Class template
student_t_distribution
[rand.
dist.
norm.
t]
26.6.9.6
Sampling distributions
[rand.
dist.
samp]
26.6.9.6.1
Class template
discrete_distribution
[rand.
dist.
samp.
discrete]
26.6.9.6.2
Class template
piecewise_constant_distribution
[rand.
dist.
samp.
pconst]
26.6.9.6.3
Class template
piecewise_linear_distribution
[rand.
dist.
samp.
plinear]
26.6.10
Low-quality random number generation
[c.
math.
rand]
26.7
Numeric arrays
[numarray]
26.7.1
Header
<valarray>
synopsis
[valarray.
syn]
26.7.2
Class template
valarray
[template.
valarray]
26.7.2.1
Overview
[template.
valarray.
overview]
26.7.2.2
Constructors
[valarray.
cons]
26.7.2.3
Assignment
[valarray.
assign]
26.7.2.4
Element access
[valarray.
access]
26.7.2.5
Subset operations
[valarray.
sub]
26.7.2.6
Unary operators
[valarray.
unary]
26.7.2.7
Compound assignment
[valarray.
cassign]
26.7.2.8
Member functions
[valarray.
members]
26.7.3
valarray
non-member operations
[valarray.
nonmembers]
26.7.3.1
Binary operators
[valarray.
binary]
26.7.3.2
Logical operators
[valarray.
comparison]
26.7.3.3
Transcendentals
[valarray.
transcend]
26.7.3.4
Specialized algorithms
[valarray.
special]
26.7.4
Class
slice
[class.
slice]
26.7.4.1
Overview
[class.
slice.
overview]
26.7.4.2
Constructors
[cons.
slice]
26.7.4.3
Access functions
[slice.
access]
26.7.4.4
Operators
[slice.
ops]
26.7.5
Class template
slice_array
[template.
slice.
array]
26.7.5.1
Overview
[template.
slice.
array.
overview]
26.7.5.2
Assignment
[slice.
arr.
assign]
26.7.5.3
Compound assignment
[slice.
arr.
comp.
assign]
26.7.5.4
Fill function
[slice.
arr.
fill]
26.7.6
The
gslice
class
[class.
gslice]
26.7.6.1
Overview
[class.
gslice.
overview]
26.7.6.2
Constructors
[gslice.
cons]
26.7.6.3
Access functions
[gslice.
access]
26.7.7
Class template
gslice_array
[template.
gslice.
array]
26.7.7.1
Overview
[template.
gslice.
array.
overview]
26.7.7.2
Assignment
[gslice.
array.
assign]
26.7.7.3
Compound assignment
[gslice.
array.
comp.
assign]
26.7.7.4
Fill function
[gslice.
array.
fill]
26.7.8
Class template
mask_array
[template.
mask.
array]
26.7.8.1
Overview
[template.
mask.
array.
overview]
26.7.8.2
Assignment
[mask.
array.
assign]
26.7.8.3
Compound assignment
[mask.
array.
comp.
assign]
26.7.8.4
Fill function
[mask.
array.
fill]
26.7.9
Class template
indirect_array
[template.
indirect.
array]
26.7.9.1
Overview
[template.
indirect.
array.
overview]
26.7.9.2
Assignment
[indirect.
array.
assign]
26.7.9.3
Compound assignment
[indirect.
array.
comp.
assign]
26.7.9.4
Fill function
[indirect.
array.
fill]
26.7.10
valarray
range access
[valarray.
range]
26.8
Mathematical functions for floating-point types
[c.
math]
26.8.1
Header
<cmath>
synopsis
[cmath.
syn]
26.8.2
Absolute values
[c.
math.
abs]
26.8.3
Three-dimensional hypotenuse
[c.
math.
hypot3]
26.8.4
Linear interpolation
[c.
math.
lerp]
26.8.5
Classification / comparison functions
[c.
math.
fpclass]
26.8.6
Mathematical special functions
[sf.
cmath]
26.8.6.1
General
[sf.
cmath.
general]
26.8.6.2
Associated Laguerre polynomials
[sf.
cmath.
assoc.
laguerre]
26.8.6.3
Associated Legendre functions
[sf.
cmath.
assoc.
legendre]
26.8.6.4
Beta function
[sf.
cmath.
beta]
26.8.6.5
Complete elliptic integral of the first kind
[sf.
cmath.
comp.
ellint.
1]
26.8.6.6
Complete elliptic integral of the second kind
[sf.
cmath.
comp.
ellint.
2]
26.8.6.7
Complete elliptic integral of the third kind
[sf.
cmath.
comp.
ellint.
3]
26.8.6.8
Regular modified cylindrical Bessel functions
[sf.
cmath.
cyl.
bessel.
i]
26.8.6.9
Cylindrical Bessel functions of the first kind
[sf.
cmath.
cyl.
bessel.
j]
26.8.6.10
Irregular modified cylindrical Bessel functions
[sf.
cmath.
cyl.
bessel.
k]
26.8.6.11
Cylindrical Neumann functions
[sf.
cmath.
cyl.
neumann]
26.8.6.12
Incomplete elliptic integral of the first kind
[sf.
cmath.
ellint.
1]
26.8.6.13
Incomplete elliptic integral of the second kind
[sf.
cmath.
ellint.
2]
26.8.6.14
Incomplete elliptic integral of the third kind
[sf.
cmath.
ellint.
3]
26.8.6.15
Exponential integral
[sf.
cmath.
expint]
26.8.6.16
Hermite polynomials
[sf.
cmath.
hermite]
26.8.6.17
Laguerre polynomials
[sf.
cmath.
laguerre]
26.8.6.18
Legendre polynomials
[sf.
cmath.
legendre]
26.8.6.19
Riemann zeta function
[sf.
cmath.
riemann.
zeta]
26.8.6.20
Spherical Bessel functions of the first kind
[sf.
cmath.
sph.
bessel]
26.8.6.21
Spherical associated Legendre functions
[sf.
cmath.
sph.
legendre]
26.8.6.22
Spherical Neumann functions
[sf.
cmath.
sph.
neumann]
26.9
Numbers
[numbers]
26.9.1
Header
<numbers>
synopsis
[numbers.
syn]
26.9.2
Mathematical constants
[math.
constants]
27
Time library
[time]
[time]
27.1
General
[time.
general]
27.2
Header
<chrono>
synopsis
[time.
syn]
27.3
Cpp17Clock
requirements
[time.
clock.
req]
27.4
Time-related traits
[time.
traits]
27.4.1
treat_as_floating_point
[time.
traits.
is.
fp]
27.4.2
duration_values
[time.
traits.
duration.
values]
27.4.3
Specializations of
common_type
[time.
traits.
specializations]
27.4.4
Class template
is_clock
[time.
traits.
is.
clock]
27.5
Class template
duration
[time.
duration]
27.5.1
General
[time.
duration.
general]
27.5.2
Constructors
[time.
duration.
cons]
27.5.3
Observer
[time.
duration.
observer]
27.5.4
Arithmetic
[time.
duration.
arithmetic]
27.5.5
Special values
[time.
duration.
special]
27.5.6
Non-member arithmetic
[time.
duration.
nonmember]
27.5.7
Comparisons
[time.
duration.
comparisons]
27.5.8
Conversions
[time.
duration.
cast]
27.5.9
Suffixes for duration literals
[time.
duration.
literals]
27.5.10
Algorithms
[time.
duration.
alg]
27.5.11
I/O
[time.
duration.
io]
27.6
Class template
time_point
[time.
point]
27.6.1
General
[time.
point.
general]
27.6.2
Constructors
[time.
point.
cons]
27.6.3
Observer
[time.
point.
observer]
27.6.4
Arithmetic
[time.
point.
arithmetic]
27.6.5
Special values
[time.
point.
special]
27.6.6
Non-member arithmetic
[time.
point.
nonmember]
27.6.7
Comparisons
[time.
point.
comparisons]
27.6.8
Conversions
[time.
point.
cast]
27.7
Clocks
[time.
clock]
27.7.1
General
[time.
clock.
general]
27.7.2
Class
system_clock
[time.
clock.
system]
27.7.2.1
Overview
[time.
clock.
system.
overview]
27.7.2.2
Members
[time.
clock.
system.
members]
27.7.2.3
Non-member functions
[time.
clock.
system.
nonmembers]
27.7.3
Class
utc_clock
[time.
clock.
utc]
27.7.3.1
Overview
[time.
clock.
utc.
overview]
27.7.3.2
Member functions
[time.
clock.
utc.
members]
27.7.3.3
Non-member functions
[time.
clock.
utc.
nonmembers]
27.7.4
Class
tai_clock
[time.
clock.
tai]
27.7.4.1
Overview
[time.
clock.
tai.
overview]
27.7.4.2
Member functions
[time.
clock.
tai.
members]
27.7.4.3
Non-member functions
[time.
clock.
tai.
nonmembers]
27.7.5
Class
gps_clock
[time.
clock.
gps]
27.7.5.1
Overview
[time.
clock.
gps.
overview]
27.7.5.2
Member functions
[time.
clock.
gps.
members]
27.7.5.3
Non-member functions
[time.
clock.
gps.
nonmembers]
27.7.6
Type
file_clock
[time.
clock.
file]
27.7.6.1
Overview
[time.
clock.
file.
overview]
27.7.6.2
Member functions
[time.
clock.
file.
members]
27.7.6.3
Non-member functions
[time.
clock.
file.
nonmembers]
27.7.7
Class
steady_clock
[time.
clock.
steady]
27.7.8
Class
high_resolution_clock
[time.
clock.
hires]
27.7.9
Local time
[time.
clock.
local]
27.7.10
time_point
conversions
[time.
clock.
cast]
27.7.10.1
Class template
clock_time_conversion
[time.
clock.
conv]
27.7.10.2
Identity conversions
[time.
clock.
cast.
id]
27.7.10.3
Conversions between
system_clock
and
utc_clock
[time.
clock.
cast.
sys.
utc]
27.7.10.4
Conversions between
system_clock
and other clocks
[time.
clock.
cast.
sys]
27.7.10.5
Conversions between
utc_clock
and other clocks
[time.
clock.
cast.
utc]
27.7.10.6
Function template
clock_cast
[time.
clock.
cast.
fn]
27.8
The civil calendar
[time.
cal]
27.8.1
In general
[time.
cal.
general]
27.8.2
Class
last_spec
[time.
cal.
last]
27.8.3
Class
day
[time.
cal.
day]
27.8.3.1
Overview
[time.
cal.
day.
overview]
27.8.3.2
Member functions
[time.
cal.
day.
members]
27.8.3.3
Non-member functions
[time.
cal.
day.
nonmembers]
27.8.4
Class
month
[time.
cal.
month]
27.8.4.1
Overview
[time.
cal.
month.
overview]
27.8.4.2
Member functions
[time.
cal.
month.
members]
27.8.4.3
Non-member functions
[time.
cal.
month.
nonmembers]
27.8.5
Class
year
[time.
cal.
year]
27.8.5.1
Overview
[time.
cal.
year.
overview]
27.8.5.2
Member functions
[time.
cal.
year.
members]
27.8.5.3
Non-member functions
[time.
cal.
year.
nonmembers]
27.8.6
Class
weekday
[time.
cal.
wd]
27.8.6.1
Overview
[time.
cal.
wd.
overview]
27.8.6.2
Member functions
[time.
cal.
wd.
members]
27.8.6.3
Non-member functions
[time.
cal.
wd.
nonmembers]
27.8.7
Class
weekday_indexed
[time.
cal.
wdidx]
27.8.7.1
Overview
[time.
cal.
wdidx.
overview]
27.8.7.2
Member functions
[time.
cal.
wdidx.
members]
27.8.7.3
Non-member functions
[time.
cal.
wdidx.
nonmembers]
27.8.8
Class
weekday_last
[time.
cal.
wdlast]
27.8.8.1
Overview
[time.
cal.
wdlast.
overview]
27.8.8.2
Member functions
[time.
cal.
wdlast.
members]
27.8.8.3
Non-member functions
[time.
cal.
wdlast.
nonmembers]
27.8.9
Class
month_day
[time.
cal.
md]
27.8.9.1
Overview
[time.
cal.
md.
overview]
27.8.9.2
Member functions
[time.
cal.
md.
members]
27.8.9.3
Non-member functions
[time.
cal.
md.
nonmembers]
27.8.10
Class
month_day_last
[time.
cal.
mdlast]
27.8.11
Class
month_weekday
[time.
cal.
mwd]
27.8.11.1
Overview
[time.
cal.
mwd.
overview]
27.8.11.2
Member functions
[time.
cal.
mwd.
members]
27.8.11.3
Non-member functions
[time.
cal.
mwd.
nonmembers]
27.8.12
Class
month_weekday_last
[time.
cal.
mwdlast]
27.8.12.1
Overview
[time.
cal.
mwdlast.
overview]
27.8.12.2
Member functions
[time.
cal.
mwdlast.
members]
27.8.12.3
Non-member functions
[time.
cal.
mwdlast.
nonmembers]
27.8.13
Class
year_month
[time.
cal.
ym]
27.8.13.1
Overview
[time.
cal.
ym.
overview]
27.8.13.2
Member functions
[time.
cal.
ym.
members]
27.8.13.3
Non-member functions
[time.
cal.
ym.
nonmembers]
27.8.14
Class
year_month_day
[time.
cal.
ymd]
27.8.14.1
Overview
[time.
cal.
ymd.
overview]
27.8.14.2
Member functions
[time.
cal.
ymd.
members]
27.8.14.3
Non-member functions
[time.
cal.
ymd.
nonmembers]
27.8.15
Class
year_month_day_last
[time.
cal.
ymdlast]
27.8.15.1
Overview
[time.
cal.
ymdlast.
overview]
27.8.15.2
Member functions
[time.
cal.
ymdlast.
members]
27.8.15.3
Non-member functions
[time.
cal.
ymdlast.
nonmembers]
27.8.16
Class
year_month_weekday
[time.
cal.
ymwd]
27.8.16.1
Overview
[time.
cal.
ymwd.
overview]
27.8.16.2
Member functions
[time.
cal.
ymwd.
members]
27.8.16.3
Non-member functions
[time.
cal.
ymwd.
nonmembers]
27.8.17
Class
year_month_weekday_last
[time.
cal.
ymwdlast]
27.8.17.1
Overview
[time.
cal.
ymwdlast.
overview]
27.8.17.2
Member functions
[time.
cal.
ymwdlast.
members]
27.8.17.3
Non-member functions
[time.
cal.
ymwdlast.
nonmembers]
27.8.18
Conventional syntax operators
[time.
cal.
operators]
27.9
Class template
hh_mm_ss
[time.
hms]
27.9.1
Overview
[time.
hms.
overview]
27.9.2
Members
[time.
hms.
members]
27.9.3
Non-members
[time.
hms.
nonmembers]
27.10
12/24 hours functions
[time.
12]
27.11
Time zones
[time.
zone]
27.11.1
In general
[time.
zone.
general]
27.11.2
Time zone database
[time.
zone.
db]
27.11.2.1
Class
tzdb
[time.
zone.
db.
tzdb]
27.11.2.2
Class
tzdb_list
[time.
zone.
db.
list]
27.11.2.3
Time zone database access
[time.
zone.
db.
access]
27.11.2.4
Remote time zone database support
[time.
zone.
db.
remote]
27.11.3
Exception classes
[time.
zone.
exception]
27.11.3.1
Class
nonexistent_local_time
[time.
zone.
exception.
nonexist]
27.11.3.2
Class
ambiguous_local_time
[time.
zone.
exception.
ambig]
27.11.4
Information classes
[time.
zone.
info]
27.11.4.1
Class
sys_info
[time.
zone.
info.
sys]
27.11.4.2
Class
local_info
[time.
zone.
info.
local]
27.11.5
Class
time_zone
[time.
zone.
timezone]
27.11.5.1
Overview
[time.
zone.
overview]
27.11.5.2
Member functions
[time.
zone.
members]
27.11.5.3
Non-member functions
[time.
zone.
nonmembers]
27.11.6
Class template
zoned_traits
[time.
zone.
zonedtraits]
27.11.7
Class template
zoned_time
[time.
zone.
zonedtime]
27.11.7.1
Overview
[time.
zone.
zonedtime.
overview]
27.11.7.2
Constructors
[time.
zone.
zonedtime.
ctor]
27.11.7.3
Member functions
[time.
zone.
zonedtime.
members]
27.11.7.4
Non-member functions
[time.
zone.
zonedtime.
nonmembers]
27.11.8
Class
leap_second
[time.
zone.
leap]
27.11.8.1
Overview
[time.
zone.
leap.
overview]
27.11.8.2
Member functions
[time.
zone.
leap.
members]
27.11.8.3
Non-member functions
[time.
zone.
leap.
nonmembers]
27.11.9
Class
time_zone_link
[time.
zone.
link]
27.11.9.1
Overview
[time.
zone.
link.
overview]
27.11.9.2
Member functions
[time.
zone.
link.
members]
27.11.9.3
Non-member functions
[time.
zone.
link.
nonmembers]
27.12
Formatting
[time.
format]
27.13
Parsing
[time.
parse]
27.14
Header
<ctime>
synopsis
[ctime.
syn]
28
Localization library
[localization]
[localization]
28.1
General
[localization.
general]
28.2
Header
<locale>
synopsis
[locale.
syn]
28.3
Locales
[locales]
28.3.1
Class
locale
[locale]
28.3.1.1
General
[locale.
general]
28.3.1.2
Types
[locale.
types]
28.3.1.2.1
Type
locale::category
[locale.
category]
28.3.1.2.2
Class
locale::facet
[locale.
facet]
28.3.1.2.3
Class
locale::id
[locale.
id]
28.3.1.3
Constructors and destructor
[locale.
cons]
28.3.1.4
Members
[locale.
members]
28.3.1.5
Operators
[locale.
operators]
28.3.1.6
Static members
[locale.
statics]
28.3.2
locale
globals
[locale.
global.
templates]
28.3.3
Convenience interfaces
[locale.
convenience]
28.3.3.1
Character classification
[classification]
28.3.3.2
Character conversions
[conversions.
character]
28.4
Standard
locale
categories
[locale.
categories]
28.4.1
General
[locale.
categories.
general]
28.4.2
The
ctype
category
[category.
ctype]
28.4.2.1
General
[category.
ctype.
general]
28.4.2.2
Class template
ctype
[locale.
ctype]
28.4.2.2.1
General
[locale.
ctype.
general]
28.4.2.2.2
ctype
members
[locale.
ctype.
members]
28.4.2.2.3
ctype
virtual functions
[locale.
ctype.
virtuals]
28.4.2.3
Class template
ctype_byname
[locale.
ctype.
byname]
28.4.2.4
ctype<char>
specialization
[facet.
ctype.
special]
28.4.2.4.1
General
[facet.
ctype.
special.
general]
28.4.2.4.2
Destructor
[facet.
ctype.
char.
dtor]
28.4.2.4.3
Members
[facet.
ctype.
char.
members]
28.4.2.4.4
Static members
[facet.
ctype.
char.
statics]
28.4.2.4.5
Virtual functions
[facet.
ctype.
char.
virtuals]
28.4.2.5
Class template
codecvt
[locale.
codecvt]
28.4.2.5.1
General
[locale.
codecvt.
general]
28.4.2.5.2
Members
[locale.
codecvt.
members]
28.4.2.5.3
Virtual functions
[locale.
codecvt.
virtuals]
28.4.2.6
Class template
codecvt_byname
[locale.
codecvt.
byname]
28.4.3
The numeric category
[category.
numeric]
28.4.3.1
General
[category.
numeric.
general]
28.4.3.2
Class template
num_get
[locale.
num.
get]
28.4.3.2.1
General
[locale.
num.
get.
general]
28.4.3.2.2
Members
[facet.
num.
get.
members]
28.4.3.2.3
Virtual functions
[facet.
num.
get.
virtuals]
28.4.3.3
Class template
num_put
[locale.
nm.
put]
28.4.3.3.1
General
[locale.
nm.
put.
general]
28.4.3.3.2
Members
[facet.
num.
put.
members]
28.4.3.3.3
Virtual functions
[facet.
num.
put.
virtuals]
28.4.4
The numeric punctuation facet
[facet.
numpunct]
28.4.4.1
Class template
numpunct
[locale.
numpunct]
28.4.4.1.1
General
[locale.
numpunct.
general]
28.4.4.1.2
Members
[facet.
numpunct.
members]
28.4.4.1.3
Virtual functions
[facet.
numpunct.
virtuals]
28.4.4.2
Class template
numpunct_byname
[locale.
numpunct.
byname]
28.4.5
The collate category
[category.
collate]
28.4.5.1
Class template
collate
[locale.
collate]
28.4.5.1.1
General
[locale.
collate.
general]
28.4.5.1.2
Members
[locale.
collate.
members]
28.4.5.1.3
Virtual functions
[locale.
collate.
virtuals]
28.4.5.2
Class template
collate_byname
[locale.
collate.
byname]
28.4.6
The time category
[category.
time]
28.4.6.1
General
[category.
time.
general]
28.4.6.2
Class template
time_get
[locale.
time.
get]
28.4.6.2.1
General
[locale.
time.
get.
general]
28.4.6.2.2
Members
[locale.
time.
get.
members]
28.4.6.2.3
Virtual functions
[locale.
time.
get.
virtuals]
28.4.6.3
Class template
time_get_byname
[locale.
time.
get.
byname]
28.4.6.4
Class template
time_put
[locale.
time.
put]
28.4.6.4.1
Members
[locale.
time.
put.
members]
28.4.6.4.2
Virtual functions
[locale.
time.
put.
virtuals]
28.4.6.5
Class template
time_put_byname
[locale.
time.
put.
byname]
28.4.7
The monetary category
[category.
monetary]
28.4.7.1
General
[category.
monetary.
general]
28.4.7.2
Class template
money_get
[locale.
money.
get]
28.4.7.2.1
Members
[locale.
money.
get.
members]
28.4.7.2.2
Virtual functions
[locale.
money.
get.
virtuals]
28.4.7.3
Class template
money_put
[locale.
money.
put]
28.4.7.3.1
Members
[locale.
money.
put.
members]
28.4.7.3.2
Virtual functions
[locale.
money.
put.
virtuals]
28.4.7.4
Class template
moneypunct
[locale.
moneypunct]
28.4.7.4.1
General
[locale.
moneypunct.
general]
28.4.7.4.2
Members
[locale.
moneypunct.
members]
28.4.7.4.3
Virtual functions
[locale.
moneypunct.
virtuals]
28.4.7.5
Class template
moneypunct_byname
[locale.
moneypunct.
byname]
28.4.8
The message retrieval category
[category.
messages]
28.4.8.1
General
[category.
messages.
general]
28.4.8.2
Class template
messages
[locale.
messages]
28.4.8.2.1
General
[locale.
messages.
general]
28.4.8.2.2
Members
[locale.
messages.
members]
28.4.8.2.3
Virtual functions
[locale.
messages.
virtuals]
28.4.8.3
Class template
messages_byname
[locale.
messages.
byname]
28.5
C library locales
[c.
locales]
28.5.1
Header
<clocale>
synopsis
[clocale.
syn]
28.5.2
Data races
[clocale.
data.
races]
29
Input/output library
[input.output]
[input.
output]
29.1
General
[input.
output.
general]
29.2
Iostreams requirements
[iostreams.
requirements]
29.2.1
Imbue limitations
[iostream.
limits.
imbue]
29.2.2
Positioning type limitations
[iostreams.
limits.
pos]
29.2.3
Thread safety
[iostreams.
threadsafety]
29.3
Forward declarations
[iostream.
forward]
29.3.1
Header
<iosfwd>
synopsis
[iosfwd.
syn]
29.3.2
Overview
[iostream.
forward.
overview]
29.4
Standard iostream objects
[iostream.
objects]
29.4.1
Header
<iostream>
synopsis
[iostream.
syn]
29.4.2
Overview
[iostream.
objects.
overview]
29.4.3
Narrow stream objects
[narrow.
stream.
objects]
29.4.4
Wide stream objects
[wide.
stream.
objects]
29.5
Iostreams base classes
[iostreams.
base]
29.5.1
Header
<ios>
synopsis
[ios.
syn]
29.5.2
Types
[stream.
types]
29.5.3
Class
ios_base
[ios.
base]
29.5.3.1
General
[ios.
base.
general]
29.5.3.2
Types
[ios.
types]
29.5.3.2.1
Class
ios_base::failure
[ios.
failure]
29.5.3.2.2
Type
ios_base::fmtflags
[ios.
fmtflags]
29.5.3.2.3
Type
ios_base::iostate
[ios.
iostate]
29.5.3.2.4
Type
ios_base::openmode
[ios.
openmode]
29.5.3.2.5
Type
ios_base::seekdir
[ios.
seekdir]
29.5.3.2.6
Class
ios_base::Init
[ios.
init]
29.5.3.3
State functions
[fmtflags.
state]
29.5.3.4
Functions
[ios.
base.
locales]
29.5.3.5
Static members
[ios.
members.
static]
29.5.3.6
Storage functions
[ios.
base.
storage]
29.5.3.7
Callbacks
[ios.
base.
callback]
29.5.3.8
Constructors and destructor
[ios.
base.
cons]
29.5.4
Class template
fpos
[fpos]
29.5.4.1
Members
[fpos.
members]
29.5.4.2
Requirements
[fpos.
operations]
29.5.5
Class template
basic_ios
[ios]
29.5.5.1
Overview
[ios.
overview]
29.5.5.2
Constructors
[basic.
ios.
cons]
29.5.5.3
Member functions
[basic.
ios.
members]
29.5.5.4
Flags functions
[iostate.
flags]
29.5.6
ios_base
manipulators
[std.
ios.
manip]
29.5.6.1
fmtflags
manipulators
[fmtflags.
manip]
29.5.6.2
adjustfield
manipulators
[adjustfield.
manip]
29.5.6.3
basefield
manipulators
[basefield.
manip]
29.5.6.4
floatfield
manipulators
[floatfield.
manip]
29.5.7
Error reporting
[error.
reporting]
29.6
Stream buffers
[stream.
buffers]
29.6.1
Header
<streambuf>
synopsis
[streambuf.
syn]
29.6.2
Stream buffer requirements
[streambuf.
reqts]
29.6.3
Class template
basic_streambuf
[streambuf]
29.6.3.1
General
[streambuf.
general]
29.6.3.2
Constructors
[streambuf.
cons]
29.6.3.3
Public member functions
[streambuf.
members]
29.6.3.3.1
Locales
[streambuf.
locales]
29.6.3.3.2
Buffer management and positioning
[streambuf.
buffer]
29.6.3.3.3
Get area
[streambuf.
pub.
get]
29.6.3.3.4
Putback
[streambuf.
pub.
pback]
29.6.3.3.5
Put area
[streambuf.
pub.
put]
29.6.3.4
Protected member functions
[streambuf.
protected]
29.6.3.4.1
Assignment
[streambuf.
assign]
29.6.3.4.2
Get area access
[streambuf.
get.
area]
29.6.3.4.3
Put area access
[streambuf.
put.
area]
29.6.3.5
Virtual functions
[streambuf.
virtuals]
29.6.3.5.1
Locales
[streambuf.
virt.
locales]
29.6.3.5.2
Buffer management and positioning
[streambuf.
virt.
buffer]
29.6.3.5.3
Get area
[streambuf.
virt.
get]
29.6.3.5.4
Putback
[streambuf.
virt.
pback]
29.6.3.5.5
Put area
[streambuf.
virt.
put]
29.7
Formatting and manipulators
[iostream.
format]
29.7.1
Header
<istream>
synopsis
[istream.
syn]
29.7.2
Header
<ostream>
synopsis
[ostream.
syn]
29.7.3
Header
<iomanip>
synopsis
[iomanip.
syn]
29.7.4
Input streams
[input.
streams]
29.7.4.1
General
[input.
streams.
general]
29.7.4.2
Class template
basic_istream
[istream]
29.7.4.2.1
General
[istream.
general]
29.7.4.2.2
Constructors
[istream.
cons]
29.7.4.2.3
Assignment and swap
[istream.
assign]
29.7.4.2.4
Class
basic_istream::sentry
[istream.
sentry]
29.7.4.3
Formatted input functions
[istream.
formatted]
29.7.4.3.1
Common requirements
[istream.
formatted.
reqmts]
29.7.4.3.2
Arithmetic extractors
[istream.
formatted.
arithmetic]
29.7.4.3.3
basic_istream::operator>>
[istream.
extractors]
29.7.4.4
Unformatted input functions
[istream.
unformatted]
29.7.4.5
Standard
basic_istream
manipulators
[istream.
manip]
29.7.4.6
Rvalue stream extraction
[istream.
rvalue]
29.7.4.7
Class template
basic_iostream
[iostreamclass]
29.7.4.7.1
General
[iostreamclass.
general]
29.7.4.7.2
Constructors
[iostream.
cons]
29.7.4.7.3
Destructor
[iostream.
dest]
29.7.4.7.4
Assignment and swap
[iostream.
assign]
29.7.5
Output streams
[output.
streams]
29.7.5.1
General
[output.
streams.
general]
29.7.5.2
Class template
basic_ostream
[ostream]
29.7.5.2.1
General
[ostream.
general]
29.7.5.2.2
Constructors
[ostream.
cons]
29.7.5.2.3
Assignment and swap
[ostream.
assign]
29.7.5.2.4
Class
basic_ostream::sentry
[ostream.
sentry]
29.7.5.2.5
Seek members
[ostream.
seeks]
29.7.5.3
Formatted output functions
[ostream.
formatted]
29.7.5.3.1
Common requirements
[ostream.
formatted.
reqmts]
29.7.5.3.2
Arithmetic inserters
[ostream.
inserters.
arithmetic]
29.7.5.3.3
basic_ostream::operator<<
[ostream.
inserters]
29.7.5.3.4
Character inserter function templates
[ostream.
inserters.
character]
29.7.5.4
Unformatted output functions
[ostream.
unformatted]
29.7.5.5
Standard manipulators
[ostream.
manip]
29.7.5.6
Rvalue stream insertion
[ostream.
rvalue]
29.7.6
Standard manipulators
[std.
manip]
29.7.7
Extended manipulators
[ext.
manip]
29.7.8
Quoted manipulators
[quoted.
manip]
29.8
String-based streams
[string.
streams]
29.8.1
Header
<sstream>
synopsis
[sstream.
syn]
29.8.2
Class template
basic_stringbuf
[stringbuf]
29.8.2.1
General
[stringbuf.
general]
29.8.2.2
Constructors
[stringbuf.
cons]
29.8.2.3
Assignment and swap
[stringbuf.
assign]
29.8.2.4
Member functions
[stringbuf.
members]
29.8.2.5
Overridden virtual functions
[stringbuf.
virtuals]
29.8.3
Class template
basic_istringstream
[istringstream]
29.8.3.1
General
[istringstream.
general]
29.8.3.2
Constructors
[istringstream.
cons]
29.8.3.3
Assignment and swap
[istringstream.
assign]
29.8.3.4
Member functions
[istringstream.
members]
29.8.4
Class template
basic_ostringstream
[ostringstream]
29.8.4.1
General
[ostringstream.
general]
29.8.4.2
Constructors
[ostringstream.
cons]
29.8.4.3
Assignment and swap
[ostringstream.
assign]
29.8.4.4
Member functions
[ostringstream.
members]
29.8.5
Class template
basic_stringstream
[stringstream]
29.8.5.1
General
[stringstream.
general]
29.8.5.2
Constructors
[stringstream.
cons]
29.8.5.3
Assignment and swap
[stringstream.
assign]
29.8.5.4
Member functions
[stringstream.
members]
29.9
File-based streams
[file.
streams]
29.9.1
Header
<fstream>
synopsis
[fstream.
syn]
29.9.2
Class template
basic_filebuf
[filebuf]
29.9.2.1
General
[filebuf.
general]
29.9.2.2
Constructors
[filebuf.
cons]
29.9.2.3
Assignment and swap
[filebuf.
assign]
29.9.2.4
Member functions
[filebuf.
members]
29.9.2.5
Overridden virtual functions
[filebuf.
virtuals]
29.9.3
Class template
basic_ifstream
[ifstream]
29.9.3.1
General
[ifstream.
general]
29.9.3.2
Constructors
[ifstream.
cons]
29.9.3.3
Assignment and swap
[ifstream.
assign]
29.9.3.4
Member functions
[ifstream.
members]
29.9.4
Class template
basic_ofstream
[ofstream]
29.9.4.1
General
[ofstream.
general]
29.9.4.2
Constructors
[ofstream.
cons]
29.9.4.3
Assignment and swap
[ofstream.
assign]
29.9.4.4
Member functions
[ofstream.
members]
29.9.5
Class template
basic_fstream
[fstream]
29.9.5.1
General
[fstream.
general]
29.9.5.2
Constructors
[fstream.
cons]
29.9.5.3
Assignment and swap
[fstream.
assign]
29.9.5.4
Member functions
[fstream.
members]
29.10
Synchronized output streams
[syncstream]
29.10.1
Header
<syncstream>
synopsis
[syncstream.
syn]
29.10.2
Class template
basic_syncbuf
[syncstream.
syncbuf]
29.10.2.1
Overview
[syncstream.
syncbuf.
overview]
29.10.2.2
Construction and destruction
[syncstream.
syncbuf.
cons]
29.10.2.3
Assignment and swap
[syncstream.
syncbuf.
assign]
29.10.2.4
Member functions
[syncstream.
syncbuf.
members]
29.10.2.5
Overridden virtual functions
[syncstream.
syncbuf.
virtuals]
29.10.2.6
Specialized algorithms
[syncstream.
syncbuf.
special]
29.10.3
Class template
basic_osyncstream
[syncstream.
osyncstream]
29.10.3.1
Overview
[syncstream.
osyncstream.
overview]
29.10.3.2
Construction and destruction
[syncstream.
osyncstream.
cons]
29.10.3.3
Member functions
[syncstream.
osyncstream.
members]
29.11
File systems
[filesystems]
29.11.1
General
[fs.
general]
29.11.2
Conformance
[fs.
conformance]
29.11.2.1
General
[fs.
conformance.
general]
29.11.2.2
POSIX conformance
[fs.
conform.
9945]
29.11.2.3
Operating system dependent behavior conformance
[fs.
conform.
os]
29.11.2.4
File system race behavior
[fs.
race.
behavior]
29.11.3
Requirements
[fs.
req]
29.11.3.1
General
[fs.
req.
general]
29.11.3.2
Namespaces and headers
[fs.
req.
namespace]
29.11.4
Header
<filesystem>
synopsis
[fs.
filesystem.
syn]
29.11.5
Error reporting
[fs.
err.
report]
29.11.6
Class
path
[fs.
class.
path]
29.11.6.1
General
[fs.
class.
path.
general]
29.11.6.2
Generic pathname format
[fs.
path.
generic]
29.11.6.3
Conversions
[fs.
path.
cvt]
29.11.6.3.1
Argument format conversions
[fs.
path.
fmt.
cvt]
29.11.6.3.2
Type and encoding conversions
[fs.
path.
type.
cvt]
29.11.6.4
Requirements
[fs.
path.
req]
29.11.6.5
Members
[fs.
path.
member]
29.11.6.5.1
Constructors
[fs.
path.
construct]
29.11.6.5.2
Assignments
[fs.
path.
assign]
29.11.6.5.3
Appends
[fs.
path.
append]
29.11.6.5.4
Concatenation
[fs.
path.
concat]
29.11.6.5.5
Modifiers
[fs.
path.
modifiers]
29.11.6.5.6
Native format observers
[fs.
path.
native.
obs]
29.11.6.5.7
Generic format observers
[fs.
path.
generic.
obs]
29.11.6.5.8
Compare
[fs.
path.
compare]
29.11.6.5.9
Decomposition
[fs.
path.
decompose]
29.11.6.5.10
Query
[fs.
path.
query]
29.11.6.5.11
Generation
[fs.
path.
gen]
29.11.6.6
Iterators
[fs.
path.
itr]
29.11.6.7
Inserter and extractor
[fs.
path.
io]
29.11.6.8
Non-member functions
[fs.
path.
nonmember]
29.11.7
Class
filesystem_error
[fs.
class.
filesystem.
error]
29.11.7.1
General
[fs.
class.
filesystem.
error.
general]
29.11.7.2
Members
[fs.
filesystem.
error.
members]
29.11.8
Enumerations
[fs.
enum]
29.11.8.1
Enum
path::format
[fs.
enum.
path.
format]
29.11.8.2
Enum class
file_type
[fs.
enum.
file.
type]
29.11.8.3
Enum class
copy_options
[fs.
enum.
copy.
opts]
29.11.8.4
Enum class
perms
[fs.
enum.
perms]
29.11.8.5
Enum class
perm_options
[fs.
enum.
perm.
opts]
29.11.8.6
Enum class
directory_options
[fs.
enum.
dir.
opts]
29.11.9
Class
file_status
[fs.
class.
file.
status]
29.11.9.1
General
[fs.
class.
file.
status.
general]
29.11.9.2
Constructors
[fs.
file.
status.
cons]
29.11.9.3
Observers
[fs.
file.
status.
obs]
29.11.9.4
Modifiers
[fs.
file.
status.
mods]
29.11.10
Class
directory_entry
[fs.
class.
directory.
entry]
29.11.10.1
General
[fs.
class.
directory.
entry.
general]
29.11.10.2
Constructors
[fs.
dir.
entry.
cons]
29.11.10.3
Modifiers
[fs.
dir.
entry.
mods]
29.11.10.4
Observers
[fs.
dir.
entry.
obs]
29.11.11
Class
directory_iterator
[fs.
class.
directory.
iterator]
29.11.11.1
General
[fs.
class.
directory.
iterator.
general]
29.11.11.2
Members
[fs.
dir.
itr.
members]
29.11.11.3
Non-member functions
[fs.
dir.
itr.
nonmembers]
29.11.12
Class
recursive_directory_iterator
[fs.
class.
rec.
dir.
itr]
29.11.12.1
General
[fs.
class.
rec.
dir.
itr.
general]
29.11.12.2
Members
[fs.
rec.
dir.
itr.
members]
29.11.12.3
Non-member functions
[fs.
rec.
dir.
itr.
nonmembers]
29.11.13
Filesystem operation functions
[fs.
op.
funcs]
29.11.13.1
General
[fs.
op.
funcs.
general]
29.11.13.2
Absolute
[fs.
op.
absolute]
29.11.13.3
Canonical
[fs.
op.
canonical]
29.11.13.4
Copy
[fs.
op.
copy]
29.11.13.5
Copy file
[fs.
op.
copy.
file]
29.11.13.6
Copy symlink
[fs.
op.
copy.
symlink]
29.11.13.7
Create directories
[fs.
op.
create.
directories]
29.11.13.8
Create directory
[fs.
op.
create.
directory]
29.11.13.9
Create directory symlink
[fs.
op.
create.
dir.
symlk]
29.11.13.10
Create hard link
[fs.
op.
create.
hard.
lk]
29.11.13.11
Create symlink
[fs.
op.
create.
symlink]
29.11.13.12
Current path
[fs.
op.
current.
path]
29.11.13.13
Equivalent
[fs.
op.
equivalent]
29.11.13.14
Exists
[fs.
op.
exists]
29.11.13.15
File size
[fs.
op.
file.
size]
29.11.13.16
Hard link count
[fs.
op.
hard.
lk.
ct]
29.11.13.17
Is block file
[fs.
op.
is.
block.
file]
29.11.13.18
Is character file
[fs.
op.
is.
char.
file]
29.11.13.19
Is directory
[fs.
op.
is.
directory]
29.11.13.20
Is empty
[fs.
op.
is.
empty]
29.11.13.21
Is fifo
[fs.
op.
is.
fifo]
29.11.13.22
Is other
[fs.
op.
is.
other]
29.11.13.23
Is regular file
[fs.
op.
is.
regular.
file]
29.11.13.24
Is socket
[fs.
op.
is.
socket]
29.11.13.25
Is symlink
[fs.
op.
is.
symlink]
29.11.13.26
Last write time
[fs.
op.
last.
write.
time]
29.11.13.27
Permissions
[fs.
op.
permissions]
29.11.13.28
Proximate
[fs.
op.
proximate]
29.11.13.29
Read symlink
[fs.
op.
read.
symlink]
29.11.13.30
Relative
[fs.
op.
relative]
29.11.13.31
Remove
[fs.
op.
remove]
29.11.13.32
Remove all
[fs.
op.
remove.
all]
29.11.13.33
Rename
[fs.
op.
rename]
29.11.13.34
Resize file
[fs.
op.
resize.
file]
29.11.13.35
Space
[fs.
op.
space]
29.11.13.36
Status
[fs.
op.
status]
29.11.13.37
Status known
[fs.
op.
status.
known]
29.11.13.38
Symlink status
[fs.
op.
symlink.
status]
29.11.13.39
Temporary directory path
[fs.
op.
temp.
dir.
path]
29.11.13.40
Weakly canonical
[fs.
op.
weakly.
canonical]
29.12
C library files
[c.
files]
29.12.1
Header
<cstdio>
synopsis
[cstdio.
syn]
29.12.2
Header
<cinttypes>
synopsis
[cinttypes.
syn]
30
Regular expressions library
[re]
[re]
30.1
General
[re.
general]
30.2
Requirements
[re.
req]
30.3
Header
<regex>
synopsis
[re.
syn]
30.4
Namespace
std::regex_constants
[re.
const]
30.4.1
General
[re.
const.
general]
30.4.2
Bitmask type
syntax_option_type
[re.
synopt]
30.4.3
Bitmask type
match_flag_type
[re.
matchflag]
30.4.4
Implementation-defined
error_type
[re.
err]
30.5
Class
regex_error
[re.
badexp]
30.6
Class template
regex_traits
[re.
traits]
30.7
Class template
basic_regex
[re.
regex]
30.7.1
General
[re.
regex.
general]
30.7.2
Constructors
[re.
regex.
construct]
30.7.3
Assignment
[re.
regex.
assign]
30.7.4
Constant operations
[re.
regex.
operations]
30.7.5
Locale
[re.
regex.
locale]
30.7.6
Swap
[re.
regex.
swap]
30.7.7
Non-member functions
[re.
regex.
nonmemb]
30.8
Class template
sub_match
[re.
submatch]
30.8.1
General
[re.
submatch.
general]
30.8.2
Members
[re.
submatch.
members]
30.8.3
Non-member operators
[re.
submatch.
op]
30.9
Class template
match_results
[re.
results]
30.9.1
General
[re.
results.
general]
30.9.2
Constructors
[re.
results.
const]
30.9.3
State
[re.
results.
state]
30.9.4
Size
[re.
results.
size]
30.9.5
Element access
[re.
results.
acc]
30.9.6
Formatting
[re.
results.
form]
30.9.7
Allocator
[re.
results.
all]
30.9.8
Swap
[re.
results.
swap]
30.9.9
Non-member functions
[re.
results.
nonmember]
30.10
Regular expression algorithms
[re.
alg]
30.10.1
Exceptions
[re.
except]
30.10.2
regex_match
[re.
alg.
match]
30.10.3
regex_search
[re.
alg.
search]
30.10.4
regex_replace
[re.
alg.
replace]
30.11
Regular expression iterators
[re.
iter]
30.11.1
Class template
regex_iterator
[re.
regiter]
30.11.1.1
General
[re.
regiter.
general]
30.11.1.2
Constructors
[re.
regiter.
cnstr]
30.11.1.3
Comparisons
[re.
regiter.
comp]
30.11.1.4
Indirection
[re.
regiter.
deref]
30.11.1.5
Increment
[re.
regiter.
incr]
30.11.2
Class template
regex_token_iterator
[re.
tokiter]
30.11.2.1
General
[re.
tokiter.
general]
30.11.2.2
Constructors
[re.
tokiter.
cnstr]
30.11.2.3
Comparisons
[re.
tokiter.
comp]
30.11.2.4
Indirection
[re.
tokiter.
deref]
30.11.2.5
Increment
[re.
tokiter.
incr]
30.12
Modified ECMAScript regular expression grammar
[re.
grammar]
31
Atomic operations library
[atomics]
[atomics]
31.1
General
[atomics.
general]
31.2
Header
<atomic>
synopsis
[atomics.
syn]
31.3
Type aliases
[atomics.
alias]
31.4
Order and consistency
[atomics.
order]
31.5
Lock-free property
[atomics.
lockfree]
31.6
Waiting and notifying
[atomics.
wait]
31.7
Class template
atomic_ref
[atomics.
ref.
generic]
31.7.1
General
[atomics.
ref.
generic.
general]
31.7.2
Operations
[atomics.
ref.
ops]
31.7.3
Specializations for integral types
[atomics.
ref.
int]
31.7.4
Specializations for floating-point types
[atomics.
ref.
float]
31.7.5
Partial specialization for pointers
[atomics.
ref.
pointer]
31.7.6
Member operators common to integers and pointers to objects
[atomics.
ref.
memop]
31.8
Class template
atomic
[atomics.
types.
generic]
31.8.1
General
[atomics.
types.
generic.
general]
31.8.2
Operations on atomic types
[atomics.
types.
operations]
31.8.3
Specializations for integers
[atomics.
types.
int]
31.8.4
Specializations for floating-point types
[atomics.
types.
float]
31.8.5
Partial specialization for pointers
[atomics.
types.
pointer]
31.8.6
Member operators common to integers and pointers to objects
[atomics.
types.
memop]
31.8.7
Partial specializations for smart pointers
[util.
smartptr.
atomic]
31.8.7.1
General
[util.
smartptr.
atomic.
general]
31.8.7.2
Partial specialization for
shared_ptr
[util.
smartptr.
atomic.
shared]
31.8.7.3
Partial specialization for
weak_ptr
[util.
smartptr.
atomic.
weak]
31.9
Non-member functions
[atomics.
nonmembers]
31.10
Flag type and operations
[atomics.
flag]
31.11
Fences
[atomics.
fences]
32
Thread support library
[thread]
[thread]
32.1
General
[thread.
general]
32.2
Requirements
[thread.
req]
32.2.1
Template parameter names
[thread.
req.
paramname]
32.2.2
Exceptions
[thread.
req.
exception]
32.2.3
Native handles
[thread.
req.
native]
32.2.4
Timing specifications
[thread.
req.
timing]
32.2.5
Requirements for
Cpp17Lockable
types
[thread.
req.
lockable]
32.2.5.1
In general
[thread.
req.
lockable.
general]
32.2.5.2
Cpp17BasicLockable
requirements
[thread.
req.
lockable.
basic]
32.2.5.3
Cpp17Lockable
requirements
[thread.
req.
lockable.
req]
32.2.5.4
Cpp17TimedLockable
requirements
[thread.
req.
lockable.
timed]
32.3
Stop tokens
[thread.
stoptoken]
32.3.1
Introduction
[thread.
stoptoken.
intro]
32.3.2
Header
<stop_token>
synopsis
[thread.
stoptoken.
syn]
32.3.3
Class
stop_token
[stoptoken]
32.3.3.1
General
[stoptoken.
general]
32.3.3.2
Constructors, copy, and assignment
[stoptoken.
cons]
32.3.3.3
Members
[stoptoken.
mem]
32.3.3.4
Non-member functions
[stoptoken.
nonmembers]
32.3.4
Class
stop_source
[stopsource]
32.3.4.1
General
[stopsource.
general]
32.3.4.2
Constructors, copy, and assignment
[stopsource.
cons]
32.3.4.3
Members
[stopsource.
mem]
32.3.4.4
Non-member functions
[stopsource.
nonmembers]
32.3.5
Class template
stop_callback
[stopcallback]
32.3.5.1
General
[stopcallback.
general]
32.3.5.2
Constructors and destructor
[stopcallback.
cons]
32.4
Threads
[thread.
threads]
32.4.1
General
[thread.
threads.
general]
32.4.2
Header
<thread>
synopsis
[thread.
syn]
32.4.3
Class
thread
[thread.
thread.
class]
32.4.3.1
General
[thread.
thread.
class.
general]
32.4.3.2
Class
thread::id
[thread.
thread.
id]
32.4.3.3
Constructors
[thread.
thread.
constr]
32.4.3.4
Destructor
[thread.
thread.
destr]
32.4.3.5
Assignment
[thread.
thread.
assign]
32.4.3.6
Members
[thread.
thread.
member]
32.4.3.7
Static members
[thread.
thread.
static]
32.4.3.8
Specialized algorithms
[thread.
thread.
algorithm]
32.4.4
Class
jthread
[thread.
jthread.
class]
32.4.4.1
General
[thread.
jthread.
class.
general]
32.4.4.2
Constructors, move, and assignment
[thread.
jthread.
cons]
32.4.4.3
Members
[thread.
jthread.
mem]
32.4.4.4
Stop token handling
[thread.
jthread.
stop]
32.4.4.5
Specialized algorithms
[thread.
jthread.
special]
32.4.4.6
Static members
[thread.
jthread.
static]
32.4.5
Namespace
this_thread
[thread.
thread.
this]
32.5
Mutual exclusion
[thread.
mutex]
32.5.1
General
[thread.
mutex.
general]
32.5.2
Header
<mutex>
synopsis
[mutex.
syn]
32.5.3
Header
<shared_mutex>
synopsis
[shared.
mutex.
syn]
32.5.4
Mutex requirements
[thread.
mutex.
requirements]
32.5.4.1
In general
[thread.
mutex.
requirements.
general]
32.5.4.2
Mutex types
[thread.
mutex.
requirements.
mutex]
32.5.4.2.1
General
[thread.
mutex.
requirements.
mutex.
general]
32.5.4.2.2
Class
mutex
[thread.
mutex.
class]
32.5.4.2.3
Class
recursive_mutex
[thread.
mutex.
recursive]
32.5.4.3
Timed mutex types
[thread.
timedmutex.
requirements]
32.5.4.3.1
General
[thread.
timedmutex.
requirements.
general]
32.5.4.3.2
Class
timed_mutex
[thread.
timedmutex.
class]
32.5.4.3.3
Class
recursive_timed_mutex
[thread.
timedmutex.
recursive]
32.5.4.4
Shared mutex types
[thread.
sharedmutex.
requirements]
32.5.4.4.1
General
[thread.
sharedmutex.
requirements.
general]
32.5.4.4.2
Class
shared_mutex
[thread.
sharedmutex.
class]
32.5.4.5
Shared timed mutex types
[thread.
sharedtimedmutex.
requirements]
32.5.4.5.1
General
[thread.
sharedtimedmutex.
requirements.
general]
32.5.4.5.2
Class
shared_timed_mutex
[thread.
sharedtimedmutex.
class]
32.5.5
Locks
[thread.
lock]
32.5.5.1
General
[thread.
lock.
general]
32.5.5.2
Class template
lock_guard
[thread.
lock.
guard]
32.5.5.3
Class template
scoped_lock
[thread.
lock.
scoped]
32.5.5.4
Class template
unique_lock
[thread.
lock.
unique]
32.5.5.4.1
General
[thread.
lock.
unique.
general]
32.5.5.4.2
Constructors, destructor, and assignment
[thread.
lock.
unique.
cons]
32.5.5.4.3
Locking
[thread.
lock.
unique.
locking]
32.5.5.4.4
Modifiers
[thread.
lock.
unique.
mod]
32.5.5.4.5
Observers
[thread.
lock.
unique.
obs]
32.5.5.5
Class template
shared_lock
[thread.
lock.
shared]
32.5.5.5.1
General
[thread.
lock.
shared.
general]
32.5.5.5.2
Constructors, destructor, and assignment
[thread.
lock.
shared.
cons]
32.5.5.5.3
Locking
[thread.
lock.
shared.
locking]
32.5.5.5.4
Modifiers
[thread.
lock.
shared.
mod]
32.5.5.5.5
Observers
[thread.
lock.
shared.
obs]
32.5.6
Generic locking algorithms
[thread.
lock.
algorithm]
32.5.7
Call once
[thread.
once]
32.5.7.1
Struct
once_flag
[thread.
once.
onceflag]
32.5.7.2
Function
call_once
[thread.
once.
callonce]
32.6
Condition variables
[thread.
condition]
32.6.1
General
[thread.
condition.
general]
32.6.2
Header
<condition_variable>
synopsis
[condition.
variable.
syn]
32.6.3
Non-member functions
[thread.
condition.
nonmember]
32.6.4
Class
condition_variable
[thread.
condition.
condvar]
32.6.5
Class
condition_variable_any
[thread.
condition.
condvarany]
32.6.5.1
General
[thread.
condition.
condvarany.
general]
32.6.5.2
Noninterruptible waits
[thread.
condvarany.
wait]
32.6.5.3
Interruptible waits
[thread.
condvarany.
intwait]
32.7
Semaphore
[thread.
sema]
32.7.1
General
[thread.
sema.
general]
32.7.2
Header
<semaphore>
synopsis
[semaphore.
syn]
32.7.3
Class template
counting_semaphore
[thread.
sema.
cnt]
32.8
Coordination types
[thread.
coord]
32.8.1
General
[thread.
coord.
general]
32.8.2
Latches
[thread.
latch]
32.8.2.1
General
[thread.
latch.
general]
32.8.2.2
Header
<latch>
synopsis
[latch.
syn]
32.8.2.3
Class
latch
[thread.
latch.
class]
32.8.3
Barriers
[thread.
barrier]
32.8.3.1
General
[thread.
barrier.
general]
32.8.3.2
Header
<barrier>
synopsis
[barrier.
syn]
32.8.3.3
Class template
barrier
[thread.
barrier.
class]
32.9
Futures
[futures]
32.9.1
Overview
[futures.
overview]
32.9.2
Header
<future>
synopsis
[future.
syn]
32.9.3
Error handling
[futures.
errors]
32.9.4
Class
future_error
[futures.
future.
error]
32.9.5
Shared state
[futures.
state]
32.9.6
Class template
promise
[futures.
promise]
32.9.7
Class template
future
[futures.
unique.
future]
32.9.8
Class template
shared_future
[futures.
shared.
future]
32.9.9
Function template
async
[futures.
async]
32.9.10
Class template
packaged_task
[futures.
task]
32.9.10.1
General
[futures.
task.
general]
32.9.10.2
Member functions
[futures.
task.
members]
32.9.10.3
Globals
[futures.
task.
nonmembers]
Annex A (informative)
Grammar summary
[gram]
[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++ 2017
[diff.
cpp17]
C.1.1
General
[diff.
cpp17.
general]
C.1.2
[lex]
: lexical conventions
[diff.
cpp17.
lex]
C.1.3
[basic]
: basics
[diff.
cpp17.
basic]
C.1.4
[expr]
: expressions
[diff.
cpp17.
expr]
C.1.5
[dcl.
dcl]
: declarations
[diff.
cpp17.
dcl.
dcl]
C.1.6
[class]
: classes
[diff.
cpp17.
class]
C.1.7
[over]
: overloading
[diff.
cpp17.
over]
C.1.8
[temp]
: templates
[diff.
cpp17.
temp]
C.1.9
[except]
: exception handling
[diff.
cpp17.
except]
C.1.10
[library]
: library introduction
[diff.
cpp17.
library]
C.1.11
[containers]
: containers library
[diff.
cpp17.
containers]
C.1.12
[iterators]
: iterators library
[diff.
cpp17.
iterators]
C.1.13
[algorithms]
: algorithms library
[diff.
cpp17.
alg.
reqs]
C.1.14
[input.
output]
: input/output library
[diff.
cpp17.
input.
output]
C.1.15
[depr]
: compatibility features
[diff.
cpp17.
depr]
C.2
C++ and ISO C++ 2014
[diff.
cpp14]
C.2.1
General
[diff.
cpp14.
general]
C.2.2
[lex]
: lexical conventions
[diff.
cpp14.
lex]
C.2.3
[expr]
: expressions
[diff.
cpp14.
expr]
C.2.4
[dcl.
dcl]
: declarations
[diff.
cpp14.
dcl.
dcl]
C.2.5
[class]
: classes
[diff.
cpp14.
class]
C.2.6
[temp]
: templates
[diff.
cpp14.
temp]
C.2.7
[except]
: exception handling
[diff.
cpp14.
except]
C.2.8
[library]
: library introduction
[diff.
cpp14.
library]
C.2.9
[utilities]
: general utilities library
[diff.
cpp14.
utilities]
C.2.10
[strings]
: strings library
[diff.
cpp14.
string]
C.2.11
[containers]
: containers library
[diff.
cpp14.
containers]
C.2.12
[depr]
: compatibility features
[diff.
cpp14.
depr]
C.3
C++ and ISO C++ 2011
[diff.
cpp11]
C.3.1
General
[diff.
cpp11.
general]
C.3.2
[lex]
: lexical conventions
[diff.
cpp11.
lex]
C.3.3
[basic]
: basics
[diff.
cpp11.
basic]
C.3.4
[expr]
: expressions
[diff.
cpp11.
expr]
C.3.5
[dcl.
dcl]
: declarations
[diff.
cpp11.
dcl.
dcl]
C.3.6
[library]
: library introduction
[diff.
cpp11.
library]
C.3.7
[input.
output]
: input/output library
[diff.
cpp11.
input.
output]
C.4
C++ and ISO C++ 2003
[diff.
cpp03]
C.4.1
General
[diff.
cpp03.
general]
C.4.2
[lex]
: lexical conventions
[diff.
cpp03.
lex]
C.4.3
[expr]
: expressions
[diff.
cpp03.
expr]
C.4.4
[dcl.
dcl]
: declarations
[diff.
cpp03.
dcl.
dcl]
C.4.5
[class]
: classes
[diff.
cpp03.
class]
C.4.6
[temp]
: templates
[diff.
cpp03.
temp]
C.4.7
[library]
: library introduction
[diff.
cpp03.
library]
C.4.8
[support]
: language support library
[diff.
cpp03.
language.
support]
C.4.9
[diagnostics]
: diagnostics library
[diff.
cpp03.
diagnostics]
C.4.10
[utilities]
: general utilities library
[diff.
cpp03.
utilities]
C.4.11
[strings]
: strings library
[diff.
cpp03.
strings]
C.4.12
[containers]
: containers library
[diff.
cpp03.
containers]
C.4.13
[algorithms]
: algorithms library
[diff.
cpp03.
algorithms]
C.4.14
[numerics]
: numerics library
[diff.
cpp03.
numerics]
C.4.15
[input.
output]
: input/output library
[diff.
cpp03.
input.
output]
C.5
C++ and ISO C
[diff.
iso]
C.5.1
General
[diff.
iso.
general]
C.5.2
[lex]
: lexical conventions
[diff.
lex]
C.5.3
[basic]
: basics
[diff.
basic]
C.5.4
[expr]
: expressions
[diff.
expr]
C.5.5
[stmt.
stmt]
: statements
[diff.
stat]
C.5.6
[dcl.
dcl]
: declarations
[diff.
dcl]
C.5.7
[class]
: classes
[diff.
class]
C.5.8
[cpp]
: preprocessing directives
[diff.
cpp]
C.6
C standard library
[diff.
library]
C.6.1
General
[diff.
library.
general]
C.6.2
Modifications to headers
[diff.
mods.
to.
headers]
C.6.3
Modifications to definitions
[diff.
mods.
to.
definitions]
C.6.3.1
Types
char16_t
and
char32_t
[diff.
char16]
C.6.3.2
Type
wchar_t
[diff.
wchar.
t]
C.6.3.3
Header
<assert.h>
[diff.
header.
assert.
h]
C.6.3.4
Header
<iso646.h>
[diff.
header.
iso646.
h]
C.6.3.5
Header
<stdalign.h>
[diff.
header.
stdalign.
h]
C.6.3.6
Header
<stdbool.h>
[diff.
header.
stdbool.
h]
C.6.3.7
Macro
NULL
[diff.
null]
C.6.4
Modifications to declarations
[diff.
mods.
to.
declarations]
C.6.5
Modifications to behavior
[diff.
mods.
to.
behavior]
C.6.5.1
General
[diff.
mods.
to.
behavior.
general]
C.6.5.2
Macro
offsetof(
type
,
member-designator
)
[diff.
offsetof]
C.6.5.3
Memory allocation functions
[diff.
malloc]
Annex D (normative)
Compatibility features
[depr]
[depr]
D.1
General
[depr.
general]
D.2
Arithmetic conversion on enumerations
[depr.
arith.
conv.
enum]
D.3
Implicit capture of
*this
by reference
[depr.
capture.
this]
D.4
Comma operator in subscript expressions
[depr.
comma.
subscript]
D.5
Array comparisons
[depr.
array.
comp]
D.6
Deprecated
volatile
types
[depr.
volatile.
type]
D.7
Redeclaration of
static constexpr
data members
[depr.
static.
constexpr]
D.8
Non-local use of TU-local entities
[depr.
local]
D.9
Implicit declaration of copy functions
[depr.
impldec]
D.10
C headers
[depr.
c.
headers]
D.10.1
General
[depr.
c.
headers.
general]
D.10.2
Header
<complex.h>
synopsis
[depr.
complex.
h.
syn]
D.10.3
Header
<iso646.h>
synopsis
[depr.
iso646.
h.
syn]
D.10.4
Header
<stdalign.h>
synopsis
[depr.
stdalign.
h.
syn]
D.10.5
Header
<stdbool.h>
synopsis
[depr.
stdbool.
h.
syn]
D.10.6
Header
<tgmath.h>
synopsis
[depr.
tgmath.
h.
syn]
D.10.7
Other C headers
[depr.
c.
headers.
other]
D.11
Requires paragraph
[depr.
res.
on.
required]
D.12
Relational operators
[depr.
relops]
D.13
char*
streams
[depr.
str.
strstreams]
D.13.1
Header
<strstream>
synopsis
[depr.
strstream.
syn]
D.13.2
Class
strstreambuf
[depr.
strstreambuf]
D.13.2.1
General
[depr.
strstreambuf.
general]
D.13.2.2
strstreambuf
constructors
[depr.
strstreambuf.
cons]
D.13.2.3
Member functions
[depr.
strstreambuf.
members]
D.13.2.4
strstreambuf
overridden virtual functions
[depr.
strstreambuf.
virtuals]
D.13.3
Class
istrstream
[depr.
istrstream]
D.13.3.1
General
[depr.
istrstream.
general]
D.13.3.2
istrstream
constructors
[depr.
istrstream.
cons]
D.13.3.3
Member functions
[depr.
istrstream.
members]
D.13.4
Class
ostrstream
[depr.
ostrstream]
D.13.4.1
General
[depr.
ostrstream.
general]
D.13.4.2
ostrstream
constructors
[depr.
ostrstream.
cons]
D.13.4.3
Member functions
[depr.
ostrstream.
members]
D.13.5
Class
strstream
[depr.
strstream]
D.13.5.1
General
[depr.
strstream.
general]
D.13.5.2
strstream
constructors
[depr.
strstream.
cons]
D.13.5.3
strstream
destructor
[depr.
strstream.
dest]
D.13.5.4
strstream
operations
[depr.
strstream.
oper]
D.14
Deprecated type traits
[depr.
meta.
types]
D.15
Tuple
[depr.
tuple]
D.16
Variant
[depr.
variant]
D.17
Deprecated
iterator
class template
[depr.
iterator]
D.18
Deprecated
move_iterator
access
[depr.
move.
iter.
elem]
D.19
Deprecated
shared_ptr
atomic access
[depr.
util.
smartptr.
shared.
atomic]
D.20
Deprecated
basic_string
capacity
[depr.
string.
capacity]
D.21
Deprecated standard code conversion facets
[depr.
locale.
stdcvt]
D.21.1
General
[depr.
locale.
stdcvt.
general]
D.21.2
Header
<codecvt>
synopsis
[depr.
codecvt.
syn]
D.21.3
Requirements
[depr.
locale.
stdcvt.
req]
D.22
Deprecated convenience conversion interfaces
[depr.
conversions]
D.22.1
General
[depr.
conversions.
general]
D.22.2
Class template
wstring_convert
[depr.
conversions.
string]
D.22.3
Class template
wbuffer_convert
[depr.
conversions.
buffer]
D.23
Deprecated locale category facets
[depr.
locale.
category]
D.24
Deprecated filesystem path factory functions
[depr.
fs.
path.
factory]
D.25
Deprecated atomic operations
[depr.
atomics]
D.25.1
General
[depr.
atomics.
general]
D.25.2
Volatile access
[depr.
atomics.
volatile]
D.25.3
Non-member functions
[depr.
atomics.
nonmembers]
D.25.4
Operations on atomic types
[depr.
atomics.
types.
operations]
D.25.5
Flag type and operations
[depr.
atomics.
flag]
Index
Index of grammar productions
Index of library headers
Index of library names
Index of library concepts
Index of implementation-defined behavior