settings:
standard version:
result type:

⚠ The "index item term"s in C23 are not yet included.

⚠ The "index item term"s in C working draft are not yet included.

FAQ

What does this program do?

Given a user-input string ("needle"), perform a fuzzy search on a set of strings ("haystack"s) extracted from the draft versions of the C++ standard. The results are sorted by insert-substitute-delete distance from the "needle". The search time depends only on the length of the needle, and is independent of the number or length of the haystacks.

Total size of "haystack"s: 39173517B.

Size of "the index": 102022025B.

Number of "the index" bytes per "haystack" byte: 2.604362151.

What doesn't this program do?

The program only searches the text, not the semantics. For example, if you want to know the last C++ standard that supports one's complement representation of integers, you might search for "one's complement", but the exact wording is "1's complement".

Which strings are indexed as "haystack"s, and which are not?

"Haystack"s include:

term of index items (e.g. "pack expansion");

section number (e.g. "4.1", "Annex D (normative)");

section title (e.g. "Implementation compliance", "Compatibility features");

section abbreviation (e.g. "[intro.compliance]", "[depr]");

text of body text (e.g. "Although this document states only requirements on C++ implementations, those requirements are often easier to understand if they are phrased as requirements on programs, parts of programs, or execution of programs. Such requirements have the following meaning:");

text of footnote (e.g. "“Correct execution” can include undefined behavior and erroneous behavior, depending on the data being processed; see [intro.defs] and [intro.execution].").

"Haystack"s don't include:

href of any links;

text of link of index items (e.g. "[temp.variadic]");

number of body text (e.g. "1", "(2.3.1)");

number of footnote (e.g. "3)").

How to search for non-plain-text content, such as math formula and images?

Math formula are replaced by their Node: textContent property (not HTMLElement: innerText property to avoid unwanted "\n"s) before going into "the index".

"^" is inserted before each superscript and "_" is inserted before each subscript. For example, search for "P_ℓ^m" instead of "Pℓm", "T_j" instead of "Tj".

Images are replaced by their HTMLImageElement: alt property before going into "the index". For example, search for "\frac" or "\sum".

How to save a search? / How to create a link to a search?

The query parameters q, filter_standard_version and filter_result_type can be used to control the "needle" and the settings, e.g.

Search for "compatible type" in C working drafts: https://jhcarl0814.github.io/cpp_working_drafts/cpp_working_drafts.html?filter_standard_version=c_N3220,c_working_draft&filter_result_type=index_item_term,section_number,section_title,section_abbreviation,body_text_content,footnote_content&q=compatible%20type;

Search for "to_underlying" in C++ working drafts: https://jhcarl0814.github.io/cpp_working_drafts/cpp_working_drafts.html?filter_standard_version=N3337,N4140,N4618,N4659,N4861,N4868,N4950,working_draft&filter_result_type=index_item_term,section_number,section_title,section_abbreviation,body_text_content,footnote_content&q=to_underlying;

Search for "overlap" in C and C++ working drafts: https://jhcarl0814.github.io/cpp_working_drafts/cpp_working_drafts.html?filter_standard_version=c_N3220,c_working_draft,N3337,N4140,N4618,N4659,N4861,N4868,N4950,working_draft&filter_result_type=index_item_term,section_number,section_title,section_abbreviation,body_text_content,footnote_content&q=overlap;

If any filter_* appears in the query parameters, the unmentioned settings will be set to their default values instead of using the local settings.

Visiting links that contain query parameters that affect settings will never modify local settings. Local settings are only modified when the user interacts with form controls.

Why is the webpage lagging?

Currently the time consumed by the program can be divided into these parts:

C++ (compiled to Wasm):

Searching (u8"needle" -> { haystack_index }) takes 0.0~0.2s.

Formatting ({ haystack_index } -> u8"html") takes ~0.05s.

Browser:

Parsing (Element: setHTMLUnsafe()) takes ~0.3s.

Rendering takes ~0.3s.

Ideally the time consumed by the program should be divided into these parts:

C++ (compiled to Wasm):

Searching (u8"needle" -> { haystack_index }) takes 0.0~0.2s.

Manipulating DOM ({ haystack_index } -> operations on DOM).

Browser:

Rendering.

See Why is WebAssembly a second-class language on the web? - Mozilla Hacks - the Web developer blog.

Source

Generated on 2026-08-11 07:49:44+12:00 (2026-08-10 19:49:44+00:00), content from:

eisenwave/isoc-html:

C standard drafts:

cstd.eisie.net/n3220.html;

cstd.eisie.net/c2y.html;

timsong-cpp/cppwp:

14882: Contents (N3337 (C++11 + editorial fixes));

14882: Contents (N4140 (C++14 + editorial fixes));

14882: Contents (N4659 (March 2017 post-Kona working draft/C++17 DIS));

Draft C++ Standard: Contents (N4861 (March 2020 post-Prague working draft/C++20 DIS));

Draft C++ Standard: Contents (N4868 (October 2020 pre-virtual-plenary working draft/C++20 plus editorial changes));

Draft C++ Standard: Contents (N4950 with editorial changes (C++23 DIS));

Draft C++ Standard: Contents (Tip of trunk);

Eelis/cxxdraft-htmlgen:

Draft C++ Standard: Contents;

C23 (N3220)
Foreword
Foreword
Foreword
Introduction
Introduction
Introduction
1
Scope
Scope
2
Normative references
Normative references
3
Terms, definitions, and symbols
Terms, definitions, and symbols
3.1
access (verb)
access (verb)
3.2
alignment
alignment
3.3
argument
argument
3.4
arithmetically negate
arithmetically negate
3.5
behavior
behavior
3.5.1
implementation-defined behavior
implementation-defined behavior
3.5.2
locale-specific behavior
locale-specific behavior
3.5.3
undefined behavior
undefined behavior
3.5.4
unspecified behavior
unspecified behavior
3.6
bit
bit
3.7
byte
byte
3.8
low-order bit
low-order bit
3.9
high-order bit
high-order bit
3.10
character
character
3.10.1
character
character
3.10.2
multibyte character
multibyte character
3.10.3
wide character
wide character
3.11
constraint
constraint
3.12
correctly rounded result
correctly rounded result
3.13
diagnostic message
diagnostic message
3.14
forward reference
forward reference
3.15
implementation
implementation
3.16
implementation limit
implementation limit
3.17
memory location
memory location
3.18
object
object
3.19
parameter
parameter
3.20
recommended practice
recommended practice
3.21
runtime-constraint
runtime-constraint
3.22
value
value
3.22.1
implementation-defined value
implementation-defined value
3.22.2
unspecified value
unspecified value
3.23
indeterminate representation
indeterminate representation
3.24
non-value representation
non-value representation
3.25
perform a trap
perform a trap
3.26
⌈x⌉
⌈x⌉
3.27
⌊x⌋
⌊x⌋
3.28
wraparound
wraparound
4
Conformance
Conformance
5
Environment
Environment
5.1
Conceptual models
Conceptual models
5.1.1
Translation environment
Translation environment
5.1.1.1
Program structure
Program structure
5.1.1.2
Translation phases
Translation phases
5.1.1.3
Diagnostics
Diagnostics
5.1.2
Execution environments
Execution environments
5.1.2.1
General
General
5.1.2.2
Freestanding environment
Freestanding environment
5.1.2.3
Hosted environment
Hosted environment
5.1.2.3.1
General
General
5.1.2.3.2
Program startup
Program startup
5.1.2.3.3
Program execution
Program execution
5.1.2.3.4
Program termination
Program termination
5.1.2.4
Program semantics
Program semantics
5.1.2.5
Multi-threaded executions and data races
Multi-threaded executions and data races
5.2.2
Multibyte characters
Multibyte characters
5.2.3
Character display semantics
Character display semantics
5.2.4
Signals and interrupts
Signals and interrupts
5.2.5
Environmental limits
Environmental limits
5.2.5.1
General
General
5.2.5.2
Translation limits
Translation limits
5.2.5.3
Numerical limits
Numerical limits
5.2.5.3.1
General
General
5.2.5.3.2
Characteristics of integer types
Characteristics of integer types
5.2.5.3.3
Characteristics of floating types
Characteristics of floating types
5.2.5.3.4
Characteristics of decimal floating types in
Characteristics of decimal floating types in
6
Language
Language
6.1
Notation
Notation
6.2
Concepts
Concepts
6.2.1
Scopes of identifiers, type names, and compound literals
Scopes of identifiers, type names, and compound literals
6.2.2
Linkages of identifiers
Linkages of identifiers
6.2.3
Name spaces of identifiers
Name spaces of identifiers
6.2.4
Storage durations of objects
Storage durations of objects
6.2.5
Types
Types
6.2.6
Representations of types
Representations of types
6.2.6.1
General
General
6.2.6.2
Integer types
Integer types
6.2.7
Compatible type and composite type
Compatible type and composite type
6.2.8
Alignment of objects
Alignment of objects
6.2.9
Encodings
Encodings
6.3
Conversions
Conversions
6.3.1
Arithmetic operands
Arithmetic operands
6.3.1.1
Boolean, characters, and integers
Boolean, characters, and integers
6.3.1.2
Boolean type
Boolean type
6.3.1.3
Signed and unsigned integers
Signed and unsigned integers
6.3.1.4
Real floating and integer
Real floating and integer
6.3.1.5
Real floating types
Real floating types
6.3.1.6
Complex types
Complex types
6.3.1.7
Real and complex
Real and complex
6.3.1.8
Usual arithmetic conversions
Usual arithmetic conversions
6.3.2
Other operands
Other operands
6.3.2.1
Lvalues, arrays, and function designators
Lvalues, arrays, and function designators
6.3.2.2
void
void
6.3.2.3
Pointers
Pointers
6.3.2.4
nullptr_t
nullptr_t
6.4
Lexical elements
Lexical elements
6.4.1
Keywords
Keywords
6.4.2
Identifiers
Identifiers
6.4.2.1
General
General
6.4.2.2
Predefined identifiers
Predefined identifiers
6.4.3
Universal character names
Universal character names
6.4.4
Constants
Constants
6.4.4.1
General
General
6.4.4.2
Integer constants
Integer constants
6.4.4.3
Floating constants
Floating constants
6.4.4.4
Enumeration constants
Enumeration constants
6.4.4.5
Character constants
Character constants
6.4.4.6
Predefined constants
Predefined constants
6.4.5
String literals
String literals
6.4.6
Punctuators
Punctuators
6.4.7
Header names
Header names
6.4.8
Preprocessing numbers
Preprocessing numbers
6.4.9
Comments
Comments
6.5
Expressions
Expressions
6.5.1
General
General
6.5.2
Primary expressions
Primary expressions
6.5.2.1
Generic selection
Generic selection
6.5.3
Postfix operators
Postfix operators
6.5.3.1
General
General
6.5.3.2
Array subscripting
Array subscripting
6.5.3.3
Function calls
Function calls
6.5.3.4
Structure and union members
Structure and union members
6.5.3.5
Postfix increment and decrement operators
Postfix increment and decrement operators
6.5.3.6
Compound literals
Compound literals
6.5.4
Unary operators
Unary operators
6.5.4.1
Prefix increment and decrement operators
Prefix increment and decrement operators
6.5.4.2
Address and indirection operators
Address and indirection operators
6.5.4.3
Unary arithmetic operators
Unary arithmetic operators
6.5.4.4
The sizeof and alignof operators
The sizeof and alignof operators
6.5.5
Cast operators
Cast operators
6.5.6
Multiplicative operators
Multiplicative operators
6.5.7
Additive operators
Additive operators
6.5.8
Bitwise shift operators
Bitwise shift operators
6.5.9
Relational operators
Relational operators
6.5.10
Equality operators
Equality operators
6.5.11
Bitwise AND operator
Bitwise AND operator
6.5.12
Bitwise exclusive OR operator
Bitwise exclusive OR operator
6.5.13
Bitwise inclusive OR operator
Bitwise inclusive OR operator
6.5.14
Logical AND operator
Logical AND operator
6.5.15
Logical OR operator
Logical OR operator
6.5.16
Conditional operator
Conditional operator
6.5.17
Assignment operators
Assignment operators
6.5.17.1
General
General
6.5.17.2
Simple assignment
Simple assignment
6.5.18
Comma operator
Comma operator
6.6
Constant expressions
Constant expressions
6.7
Declarations
Declarations
6.7.1
General
General
6.7.2
Storage-class specifiers
Storage-class specifiers
6.7.3
Type specifiers
Type specifiers
6.7.3.1
General
General
6.7.3.2
Structure and union specifiers
Structure and union specifiers
6.7.3.3
Enumeration specifiers
Enumeration specifiers
6.7.3.4
Tags
Tags
6.7.3.5
Atomic type specifiers
Atomic type specifiers
6.7.3.6
Typeof specifiers
Typeof specifiers
6.7.4
Type qualifiers
Type qualifiers
6.7.4.1
General
General
6.7.4.2
Formal definition of restrict
Formal definition of restrict
6.7.5
Function specifiers
Function specifiers
6.7.6
Alignment specifier
Alignment specifier
6.7.7
Declarators
Declarators
6.7.7.1
General
General
6.7.7.2
Pointer declarators
Pointer declarators
6.7.7.3
Array declarators
Array declarators
6.7.7.4
Function declarators
Function declarators
6.7.8
Type names
Type names
6.7.9
Type definitions
Type definitions
6.7.10
Type inference
Type inference
6.7.11
Initialization
Initialization
6.7.12
Static assertions
Static assertions
6.7.13
Attributes
Attributes
6.7.13.1
Introduction
Introduction
6.7.13.2
General
General
6.7.13.3
The nodiscard attribute
The nodiscard attribute
6.7.13.4
The maybe_unused attribute
The maybe_unused attribute
6.7.13.5
The deprecated attribute
The deprecated attribute
6.7.13.6
The fallthrough attribute
The fallthrough attribute
6.7.13.7
The noreturn and _Noreturn attributes
The noreturn and _Noreturn attributes
6.7.13.8
Standard attributes for function types
Standard attributes for function types
6.7.13.8.1
General
General
6.7.13.8.2
The reproducible type attribute
The reproducible type attribute
6.7.13.8.3
The unsequenced type attribute
The unsequenced type attribute
6.8
Statements and blocks
Statements and blocks
6.8.1
General
General
6.8.2
Labeled statements
Labeled statements
6.8.3
Compound statement
Compound statement
6.8.4
Expression and null statements
Expression and null statements
6.8.5
Selection statements
Selection statements
6.8.5.1
General
General
6.8.5.2
The if statement
The if statement
6.8.5.3
The switch statement
The switch statement
6.8.6
Iteration statements
Iteration statements
6.8.6.1
General
General
6.8.6.2
The while statement
The while statement
6.8.6.3
The do statement
The do statement
6.8.6.4
The for statement
The for statement
6.8.7
Jump statements
Jump statements
6.8.7.1
General
General
6.8.7.2
The goto statement
The goto statement
6.8.7.3
The continue statement
The continue statement
6.8.7.4
The break statement
The break statement
6.8.7.5
The return statement
The return statement
6.9
External definitions
External definitions
6.9.1
General
General
6.9.2
Function definitions
Function definitions
6.9.3
External object definitions
External object definitions
6.10
Preprocessing directives
Preprocessing directives
6.10.1
General
General
6.10.2
Conditional inclusion
Conditional inclusion
6.10.3
Source file inclusion
Source file inclusion
6.10.4
Binary resource inclusion
Binary resource inclusion
6.10.4.1
#embed preprocessing directive
#embed preprocessing directive
6.10.4.2
limit parameter
limit parameter
6.10.4.3
suffix parameter
suffix parameter
6.10.4.4
prefix parameter
prefix parameter
6.10.4.5
if_empty parameter
if_empty parameter
6.10.5
Macro replacement
Macro replacement
6.10.5.1
Argument substitution
Argument substitution
6.10.5.2
The # operator
The # operator
6.10.5.3
The ## operator
The ## operator
6.10.5.4
Rescanning and further replacement
Rescanning and further replacement
6.10.5.5
Scope of macro definitions
Scope of macro definitions
6.10.6
Line control
Line control
6.10.7
Diagnostic directives
Diagnostic directives
6.10.8
Pragma directive
Pragma directive
6.10.9
Null directive
Null directive
6.10.10
Predefined macro names
Predefined macro names
6.10.10.1
General
General
6.10.10.2
Mandatory macros
Mandatory macros
6.10.10.3
Environment macros
Environment macros
6.10.10.4
Conditional feature macros
Conditional feature macros
6.10.11
Pragma operator
Pragma operator
6.11
Future language directions
Future language directions
6.11.1
Floating types
Floating types
6.11.2
Linkages of identifiers
Linkages of identifiers
6.11.3
External names
External names
6.11.4
Character escape sequences
Character escape sequences
6.11.5
Storage-class specifiers
Storage-class specifiers
6.11.6
Pragma directives
Pragma directives
6.11.7
Predefined macro names
Predefined macro names
7
Library
Library
7.1
Introduction
Introduction
7.1.1
Definitions of terms
Definitions of terms
7.1.2
Standard headers
Standard headers
7.1.3
Reserved identifiers
Reserved identifiers
7.1.4
Use of library functions
Use of library functions
7.2
Diagnostics
Diagnostics
7.2.1
General
General
7.2.2
Program diagnostics
Program diagnostics
7.2.2.1
The assert macro
The assert macro
7.3
Complex arithmetic
Complex arithmetic
7.3.1
Introduction
Introduction
7.3.2
Conventions
Conventions
7.3.3
Branch cuts
Branch cuts
7.3.4
The CX_LIMITED_RANGE pragma
The CX_LIMITED_RANGE pragma
7.3.5
Trigonometric functions
Trigonometric functions
7.3.5.1
The cacos functions
The cacos functions
7.3.5.2
The casin functions
The casin functions
7.3.5.3
The catan functions
The catan functions
7.3.5.6
The ctan functions
The ctan functions
7.3.6
Hyperbolic functions
Hyperbolic functions
7.3.6.1
The cacosh functions
The cacosh functions
7.3.6.2
The casinh functions
The casinh functions
7.3.6.4
The ccosh functions
The ccosh functions
7.3.6.5
The csinh functions
The csinh functions
7.3.6.6
The ctanh functions
The ctanh functions
7.3.7
Exponential and logarithmic functions
Exponential and logarithmic functions
7.3.7.1
The cexp functions
The cexp functions
7.3.7.2
The clog functions
The clog functions
7.3.8
Power and absolute-value functions
Power and absolute-value functions
7.3.8.1
The cabs functions
The cabs functions
7.3.8.2
The cpow functions
The cpow functions
7.3.8.3
The csqrt functions
The csqrt functions
7.3.9
Manipulation functions
Manipulation functions
7.3.9.1
The carg functions
The carg functions
7.3.9.2
The cimag functions
The cimag functions
7.3.9.3
The CMPLX macros
The CMPLX macros
7.3.9.4
The conj functions
The conj functions
7.3.9.5
The cproj functions
The cproj functions
7.3.9.6
The creal functions
The creal functions
7.4
Character handling
Character handling
7.4.1
General
General
7.4.2
Character classification functions
Character classification functions
7.4.2.1
The isalnum function
The isalnum function
7.4.2.2
The isalpha function
The isalpha function
7.4.2.3
The isblank function
The isblank function
7.4.2.4
The iscntrl function
The iscntrl function
7.4.2.5
The isdigit function
The isdigit function
7.4.2.6
The isgraph function
The isgraph function
7.4.2.7
The islower function
The islower function
7.4.2.8
The isprint function
The isprint function
7.4.2.9
The ispunct function
The ispunct function
7.4.2.10
The isspace function
The isspace function
7.4.2.11
The isupper function
The isupper function
7.4.2.12
The isxdigit function
The isxdigit function
7.4.3
Character case mapping functions
Character case mapping functions
7.4.3.1
The tolower function
The tolower function
7.4.3.2
The toupper function
The toupper function
7.5
Errors
Errors
7.6
Floating-point environment
Floating-point environment
7.6.1
The FENV_ACCESS pragma
The FENV_ACCESS pragma
7.6.2
The FENV_ROUND pragma
The FENV_ROUND pragma
7.6.3
The FENV_DEC_ROUND pragma
The FENV_DEC_ROUND pragma
7.6.4
Floating-point exceptions
Floating-point exceptions
7.6.4.1
The feclearexcept function
The feclearexcept function
7.6.4.2
The fegetexceptflag function
The fegetexceptflag function
7.6.4.3
The feraiseexcept function
The feraiseexcept function
7.6.4.4
The fesetexcept function
The fesetexcept function
7.6.4.5
The fesetexceptflag function
The fesetexceptflag function
7.6.4.6
The fetestexceptflag function
The fetestexceptflag function
7.6.4.7
The fetestexcept function
The fetestexcept function
7.6.5
Rounding and other control modes
Rounding and other control modes
7.6.5.1
The fegetmode function
The fegetmode function
7.6.5.2
The fegetround function
The fegetround function
7.6.5.3
The fe_dec_getround function
The fe_dec_getround function
7.6.5.4
The fesetmode function
The fesetmode function
7.6.5.5
The fesetround function
The fesetround function
7.6.5.6
The fe_dec_setround function
The fe_dec_setround function
7.6.6
Environment
Environment
7.6.6.1
The fegetenv function
The fegetenv function
7.6.6.2
The feholdexcept function
The feholdexcept function
7.6.6.3
The fesetenv function
The fesetenv function
7.6.6.4
The feupdateenv function
The feupdateenv function
7.7
Characteristics of floating types
Characteristics of floating types
7.8
Format conversion of integer types
Format conversion of integer types
7.8.1
Macros for format specifiers
Macros for format specifiers
7.8.2
Functions for greatest-width integer types
Functions for greatest-width integer types
7.8.2.1
The imaxabs function
The imaxabs function
7.8.2.2
The imaxdiv function
The imaxdiv function
7.8.2.3
The strtoimax and strtoumax functions
The strtoimax and strtoumax functions
7.8.2.4
The wcstoimax and wcstoumax functions
The wcstoimax and wcstoumax functions
7.9
Alternative spellings
Alternative spellings
7.10
Characteristics of integer types
Characteristics of integer types
7.11
Localization
Localization
7.11.1
Locale control
Locale control
7.11.1.1
The setlocale function
The setlocale function
7.11.2
Numeric formatting convention inquiry
Numeric formatting convention inquiry
7.11.2.1
The localeconv function
The localeconv function
7.12
Mathematics
Mathematics
7.12.1
Treatment of error conditions
Treatment of error conditions
7.12.2
The FP_CONTRACT pragma
The FP_CONTRACT pragma
7.12.3
Classification macros
Classification macros
7.12.3.1
The fpclassify macro
The fpclassify macro
7.12.3.2
The iscanonical macro
The iscanonical macro
7.12.3.3
The isfinite macro
The isfinite macro
7.12.3.4
The isinf macro
The isinf macro
7.12.3.5
The isnan macro
The isnan macro
7.12.3.6
The isnormal macro
The isnormal macro
7.12.3.7
The signbit macro
The signbit macro
7.12.3.8
The issignaling macro
The issignaling macro
7.12.3.9
The issubnormal macro
The issubnormal macro
7.12.3.10
The iszero macro
The iszero macro
7.12.4
Trigonometric functions
Trigonometric functions
7.12.4.1
The acos functions
The acos functions
7.12.4.2
The asin functions
The asin functions
7.12.4.3
The atan functions
The atan functions
7.12.4.5
The cos functions
The cos functions
7.12.4.6
The sin functions
The sin functions
7.12.4.7
The tan functions
The tan functions
7.12.4.8
The acospi functions
The acospi functions
7.12.4.9
The asinpi functions
The asinpi functions
7.12.4.11
The atan2pi functions
The atan2pi functions
7.12.4.14
The tanpi functions
The tanpi functions
7.12.5
Hyperbolic functions
Hyperbolic functions
7.12.5.1
The acosh functions
The acosh functions
7.12.5.2
The asinh functions
The asinh functions
7.12.5.3
The atanh functions
The atanh functions
7.12.5.4
The cosh functions
The cosh functions
7.12.5.5
The sinh functions
The sinh functions
7.12.5.6
The tanh functions
The tanh functions
7.12.6
Exponential and logarithmic functions
Exponential and logarithmic functions
7.12.6.1
The exp functions
The exp functions
7.12.6.2
The exp10 functions
The exp10 functions
7.12.6.3
The exp10m1 functions
The exp10m1 functions
7.12.6.4
The exp2 functions
The exp2 functions
7.12.6.5
The exp2m1 functions
The exp2m1 functions
7.12.6.6
The expm1 functions
The expm1 functions
7.12.6.7
The frexp functions
The frexp functions
7.12.6.8
The ilogb functions
The ilogb functions
7.12.6.9
The ldexp functions
The ldexp functions
7.12.6.10
The llogb functions
The llogb functions
7.12.6.11
The log functions
The log functions
7.12.6.12
The log10 functions
The log10 functions
7.12.6.13
The log10p1 functions
The log10p1 functions
7.12.6.14
The log1p and logp1 functions
The log1p and logp1 functions
7.12.6.15
The log2 functions
The log2 functions
7.12.6.16
The log2p1 functions
The log2p1 functions
7.12.6.17
The logb functions
The logb functions
7.12.6.18
The modf functions
The modf functions
7.12.6.19
The scalbn and scalbln functions
The scalbn and scalbln functions
7.12.7
Power and absolute-value functions
Power and absolute-value functions
7.12.7.1
The cbrt functions
The cbrt functions
7.12.7.2
The compoundn functions
The compoundn functions
7.12.7.3
The fabs functions
The fabs functions
7.12.7.4
The hypot functions
The hypot functions
7.12.7.5
The pow functions
The pow functions
7.12.7.6
The pown functions
The pown functions
7.12.7.7
The powr functions
The powr functions
7.12.7.8
The rootn functions
The rootn functions
7.12.7.9
The rsqrt functions
The rsqrt functions
7.12.7.10
The sqrt functions
The sqrt functions
7.12.8
Error and gamma functions
Error and gamma functions
7.12.8.1
The erf functions
The erf functions
7.12.8.2
The erfc functions
The erfc functions
7.12.8.3
The lgamma functions
The lgamma functions
7.12.8.4
The tgamma functions
The tgamma functions
7.12.9
Nearest integer functions
Nearest integer functions
7.12.9.1
The ceil functions
The ceil functions
7.12.9.2
The floor functions
The floor functions
7.12.9.3
The nearbyint functions
The nearbyint functions
7.12.9.4
The rint functions
The rint functions
7.12.9.5
The lrint and llrint functions
The lrint and llrint functions
7.12.9.6
The round functions
The round functions
7.12.9.7
The lround and llround functions
The lround and llround functions
7.12.9.8
The roundeven functions
The roundeven functions
7.12.9.9
The trunc functions
The trunc functions
7.12.9.10
The fromfp and ufromfp functions
The fromfp and ufromfp functions
7.12.9.11
The fromfpx and ufromfpx functions
The fromfpx and ufromfpx functions
7.12.10
Remainder functions
Remainder functions
7.12.10.1
The fmod functions
The fmod functions
7.12.10.2
The remainder functions
The remainder functions
7.12.10.3
The remquo functions
The remquo functions
7.12.11
Manipulation functions
Manipulation functions
7.12.11.1
The copysign functions
The copysign functions
7.12.11.2
The nan functions
The nan functions
7.12.11.3
The nextafter functions
The nextafter functions
7.12.11.4
The nexttoward functions
The nexttoward functions
7.12.11.5
The nextup functions
The nextup functions
7.12.11.6
The nextdown functions
The nextdown functions
7.12.11.7
The canonicalize functions
The canonicalize functions
7.12.12
Maximum, minimum, and positive difference functions
Maximum, minimum, and positive difference functions
7.12.12.1
The fdim functions
The fdim functions
7.12.12.2
The fmax functions
The fmax functions
7.12.12.3
The fmin functions
The fmin functions
7.12.12.4
The fmaximum functions
The fmaximum functions
7.12.12.5
The fminimum functions
The fminimum functions
7.12.12.6
The fmaximum_mag functions
The fmaximum_mag functions
7.12.12.7
The fminimum_mag functions
The fminimum_mag functions
7.12.12.8
The fmaximum_num functions
The fmaximum_num functions
7.12.12.9
The fminimum_num functions
The fminimum_num functions
7.12.12.10
The fmaximum_mag_num functions
The fmaximum_mag_num functions
7.12.12.11
The fminimum_mag_num functions
The fminimum_mag_num functions
7.12.13
Fused multiply-add
Fused multiply-add
7.12.13.1
The fma functions
The fma functions
7.12.14
Functions that round result to narrower type
Functions that round result to narrower type
7.12.14.1
Add and round to narrower type
Add and round to narrower type
7.12.14.2
Subtract and round to narrower type
Subtract and round to narrower type
7.12.14.3
Multiply and round to narrower type
Multiply and round to narrower type
7.12.14.4
Divide and round to narrower type
Divide and round to narrower type
7.12.14.5
Fused multiply-add and round to narrower type
Fused multiply-add and round to narrower type
7.12.14.6
Square root rounded to narrower type
Square root rounded to narrower type
7.12.15
Quantum and quantum exponent functions
Quantum and quantum exponent functions
7.12.15.1
The quantizedN functions
The quantizedN functions
7.12.15.2
The samequantumdN functions
The samequantumdN functions
7.12.15.3
The quantumdN functions
The quantumdN functions
7.12.15.4
The llquantexpdN functions
The llquantexpdN functions
7.12.16
Decimal re-encoding functions
Decimal re-encoding functions
7.12.16.1
The encodedecdN functions
The encodedecdN functions
7.12.16.2
The decodedecdN functions
The decodedecdN functions
7.12.16.3
The encodebindN functions
The encodebindN functions
7.12.16.4
The decodebindN functions
The decodebindN functions
7.12.17
Comparison macros
Comparison macros
7.12.17.1
The isgreater macro
The isgreater macro
7.12.17.2
The isgreaterequal macro
The isgreaterequal macro
7.12.17.3
The isless macro
The isless macro
7.12.17.4
The islessequal macro
The islessequal macro
7.12.17.5
The islessgreater macro
The islessgreater macro
7.12.17.6
The isunordered macro
The isunordered macro
7.12.17.7
The iseqsig macro
The iseqsig macro
7.13
Non-local jumps
Non-local jumps
7.13.1
Save calling environment
Save calling environment
7.13.1.1
The setjmp macro
The setjmp macro
7.13.2
Restore calling environment
Restore calling environment
7.13.2.1
The longjmp function
The longjmp function
7.14
Signal handling
Signal handling
7.14.1
Specify signal handling
Specify signal handling
7.14.1.1
The signal function
The signal function
7.14.2
Send signal
Send signal
7.14.2.1
The raise function
The raise function
7.15
Alignment
Alignment
7.16
Variable arguments
Variable arguments
7.16.1
Variable argument list access macros
Variable argument list access macros
7.16.1.1
The va_arg macro
The va_arg macro
7.16.1.2
The va_copy macro
The va_copy macro
7.16.1.3
The va_end macro
The va_end macro
7.16.1.4
The va_start macro
The va_start macro
7.17
Atomics
Atomics
7.17.1
Introduction
Introduction
7.17.2
Initialization
Initialization
7.17.2.1
The atomic_init generic function
The atomic_init generic function
7.17.3
Order and consistency
Order and consistency
7.17.3.1
The kill_dependency macro
The kill_dependency macro
7.17.4
Fences
Fences
7.17.4.1
The atomic_thread_fence function
The atomic_thread_fence function
7.17.4.2
The atomic_signal_fence function
The atomic_signal_fence function
7.17.5
Lock-free property
Lock-free property
7.17.5.1
The atomic_is_lock_free generic function
The atomic_is_lock_free generic function
7.17.6
Atomic integer types
Atomic integer types
7.17.7
Operations on atomic types
Operations on atomic types
7.17.7.1
The atomic_store generic functions
The atomic_store generic functions
7.17.7.2
The atomic_load generic functions
The atomic_load generic functions
7.17.7.3
The atomic_exchange generic functions
The atomic_exchange generic functions
7.17.7.4
The atomic_compare_exchange generic functions
The atomic_compare_exchange generic functions
7.17.7.5
The atomic_fetch and modify generic functions
The atomic_fetch and modify generic functions
7.17.8
Atomic flag type and operations
Atomic flag type and operations
7.17.8.1
The atomic_flag_test_and_set functions
The atomic_flag_test_and_set functions
7.17.8.2
The atomic_flag_clear functions
The atomic_flag_clear functions
7.18
Bit and byte utilities
Bit and byte utilities
7.18.1
General
General
7.18.2
Endian
Endian
7.18.3
Count Leading Zeros
Count Leading Zeros
7.18.4
Count Leading Ones
Count Leading Ones
7.18.5
Count Trailing Zeros
Count Trailing Zeros
7.18.6
Count Trailing Ones
Count Trailing Ones
7.18.7
First Leading Zero
First Leading Zero
7.18.8
First Leading One
First Leading One
7.18.9
First Trailing Zero
First Trailing Zero
7.18.10
First Trailing One
First Trailing One
7.18.11
Count Zeros
Count Zeros
7.18.12
Count Ones
Count Ones
7.18.13
Single-bit Check
Single-bit Check
7.18.14
Bit Width
Bit Width
7.18.15
Bit Floor
Bit Floor
7.18.16
Bit Ceiling
Bit Ceiling
7.19
Boolean type and values
Boolean type and values
7.20
Checked Integer Arithmetic
Checked Integer Arithmetic
7.20.1
Checked Integer Operation Type-generic Macros
Checked Integer Operation Type-generic Macros
7.21
Common definitions
Common definitions
7.21.1
The unreachable macro
The unreachable macro
7.21.2
The nullptr_t type
The nullptr_t type
7.22
Integer types
Integer types
7.22.1
Integer types
Integer types
7.22.1.1
Exact-width integer types
Exact-width integer types
7.22.1.2
Minimum-width integer types
Minimum-width integer types
7.22.1.3
Fastest minimum-width integer types
Fastest minimum-width integer types
7.22.1.4
Integer types capable of holding object pointers
Integer types capable of holding object pointers
7.22.1.5
Greatest-width integer types
Greatest-width integer types
7.22.2
Widths of specified-width integer types
Widths of specified-width integer types
7.22.2.1
Width of exact-width integer types
Width of exact-width integer types
7.22.2.2
Width of minimum-width integer types
Width of minimum-width integer types
7.22.2.3
Width of fastest minimum-width integer types
Width of fastest minimum-width integer types
7.22.2.4
Width of integer types capable of holding object pointers
Width of integer types capable of holding object pointers
7.22.2.5
Width of greatest-width integer types
Width of greatest-width integer types
7.22.3
Width of other integer types
Width of other integer types
7.22.3.1
Width of ptrdiff_t
Width of ptrdiff_t
7.22.3.2
Width of sig_atomic_t
Width of sig_atomic_t
7.22.3.3
Width of size_t
Width of size_t
7.22.3.4
Width of wchar_t
Width of wchar_t
7.22.3.5
Width of wint_t
Width of wint_t
7.22.4
Macros for integer constants
Macros for integer constants
7.22.4.1
Macros for minimum-width integer constants
Macros for minimum-width integer constants
7.22.4.2
Macros for greatest-width integer constants
Macros for greatest-width integer constants
7.22.5
Maximal and minimal values of integer types
Maximal and minimal values of integer types
7.23
Input/output
Input/output
7.23.1
Introduction
Introduction
7.23.2
Streams
Streams
7.23.3
Files
Files
7.23.4
Operations on files
Operations on files
7.23.4.1
The remove function
The remove function
7.23.4.2
The rename function
The rename function
7.23.4.3
The tmpfile function
The tmpfile function
7.23.4.4
The tmpnam function
The tmpnam function
7.23.5
File access functions
File access functions
7.23.5.1
The fclose function
The fclose function
7.23.5.2
The fflush function
The fflush function
7.23.5.3
The fopen function
The fopen function
7.23.5.4
The freopen function
The freopen function
7.23.5.5
The setbuf function
The setbuf function
7.23.5.6
The setvbuf function
The setvbuf function
7.23.6
Formatted input/output functions
Formatted input/output functions
7.23.6.1
The fprintf function
The fprintf function
7.23.6.2
The fscanf function
The fscanf function
7.23.6.3
The printf function
The printf function
7.23.6.4
The scanf function
The scanf function
7.23.6.5
The snprintf function
The snprintf function
7.23.6.6
The sprintf function
The sprintf function
7.23.6.7
The sscanf function
The sscanf function
7.23.6.8
The vfprintf function
The vfprintf function
7.23.6.9
The vfscanf function
The vfscanf function
7.23.6.10
The vprintf function
The vprintf function
7.23.6.11
The vscanf function
The vscanf function
7.23.6.12
The vsnprintf function
The vsnprintf function
7.23.6.13
The vsprintf function
The vsprintf function
7.23.6.14
The vsscanf function
The vsscanf function
7.23.7
Character input/output functions
Character input/output functions
7.23.7.1
The fgetc function
The fgetc function
7.23.7.2
The fgets function
The fgets function
7.23.7.3
The fputc function
The fputc function
7.23.7.4
The fputs function
The fputs function
7.23.7.5
The getc function
The getc function
7.23.7.6
The getchar function
The getchar function
7.23.7.7
The putc function
The putc function
7.23.7.8
The putchar function
The putchar function
7.23.7.9
The puts function
The puts function
7.23.7.10
The ungetc function
The ungetc function
7.23.8
Direct input/output functions
Direct input/output functions
7.23.8.1
The fread function
The fread function
7.23.8.2
The fwrite function
The fwrite function
7.23.9
File positioning functions
File positioning functions
7.23.9.1
The fgetpos function
The fgetpos function
7.23.9.2
The fseek function
The fseek function
7.23.9.3
The fsetpos function
The fsetpos function
7.23.9.4
The ftell function
The ftell function
7.23.9.5
The rewind function
The rewind function
7.23.10
Error-handling functions
Error-handling functions
7.23.10.1
The clearerr function
The clearerr function
7.23.10.2
The feof function
The feof function
7.23.10.3
The ferror function
The ferror function
7.23.10.4
The perror function
The perror function
7.24
General utilities
General utilities
7.24.1
Numeric conversion functions
Numeric conversion functions
7.24.1.1
The atof function
The atof function
7.24.1.2
The atoi, atol, and atoll functions
The atoi, atol, and atoll functions
7.24.1.3
The strfromd, strfromf, and strfroml functions
The strfromd, strfromf, and strfroml functions
7.24.1.4
The strfromdN functions
The strfromdN functions
7.24.1.5
The strtod, strtof, and strtold functions
The strtod, strtof, and strtold functions
7.24.1.6
The strtodN functions
The strtodN functions
7.24.1.7
The strtol, strtoll, strtoul, and strtoull functions
The strtol, strtoll, strtoul, and strtoull functions
7.24.2
Pseudo-random sequence generation functions
Pseudo-random sequence generation functions
7.24.2.1
The rand function
The rand function
7.24.2.2
The srand function
The srand function
7.24.3
Memory management functions
Memory management functions
7.24.3.1
The aligned_alloc function
The aligned_alloc function
7.24.3.2
The calloc function
The calloc function
7.24.3.3
The free function
The free function
7.24.3.4
The free_sized function
The free_sized function
7.24.3.5
The free_aligned_sized function
The free_aligned_sized function
7.24.3.6
The malloc function
The malloc function
7.24.3.7
The realloc function
The realloc function
7.24.4
Communication with the environment
Communication with the environment
7.24.4.1
The abort function
The abort function
7.24.4.2
The atexit function
The atexit function
7.24.4.3
The at_quick_exit function
The at_quick_exit function
7.24.4.4
The exit function
The exit function
7.24.4.5
The _Exit function
The _Exit function
7.24.4.6
The getenv function
The getenv function
7.24.4.7
The quick_exit function
The quick_exit function
7.24.4.8
The system function
The system function
7.24.5
Searching and sorting utilities
Searching and sorting utilities
7.24.5.1
The bsearch generic function
The bsearch generic function
7.24.5.2
The qsort function
The qsort function
7.24.6
Integer arithmetic functions
Integer arithmetic functions
7.24.6.1
The abs, labs, and llabs functions
The abs, labs, and llabs functions
7.24.6.2
The div, ldiv, and lldiv functions
The div, ldiv, and lldiv functions
7.24.7
Multibyte/wide character conversion functions
Multibyte/wide character conversion functions
7.24.7.1
The mblen function
The mblen function
7.24.7.2
The mbtowc function
The mbtowc function
7.24.7.3
The wctomb function
The wctomb function
7.24.8
Multibyte/wide string conversion functions
Multibyte/wide string conversion functions
7.24.8.1
The mbstowcs function
The mbstowcs function
7.24.8.2
The wcstombs function
The wcstombs function
7.24.9
Alignment of memory
Alignment of memory
7.24.9.1
The memalignment function
The memalignment function
7.25
_Noreturn
_Noreturn
7.26
String handling
String handling
7.26.1
String function conventions
String function conventions
7.26.2
Copying functions
Copying functions
7.26.2.1
The memcpy function
The memcpy function
7.26.2.2
The memccpy function
The memccpy function
7.26.2.3
The memmove function
The memmove function
7.26.2.4
The strcpy function
The strcpy function
7.26.2.5
The strncpy function
The strncpy function
7.26.2.6
The strdup function
The strdup function
7.26.2.7
The strndup function
The strndup function
7.26.3
Concatenation functions
Concatenation functions
7.26.3.1
The strcat function
The strcat function
7.26.3.2
The strncat function
The strncat function
7.26.4
Comparison functions
Comparison functions
7.26.4.1
The memcmp function
The memcmp function
7.26.4.2
The strcmp function
The strcmp function
7.26.4.3
The strcoll function
The strcoll function
7.26.4.4
The strncmp function
The strncmp function
7.26.4.5
The strxfrm function
The strxfrm function
7.26.5
Search functions
Search functions
7.26.5.1
Introduction
Introduction
7.26.5.2
The memchr generic function
The memchr generic function
7.26.5.3
The strchr generic function
The strchr generic function
7.26.5.4
The strcspn function
The strcspn function
7.26.5.5
The strpbrk generic function
The strpbrk generic function
7.26.5.6
The strrchr generic function
The strrchr generic function
7.26.5.7
The strspn function
The strspn function
7.26.5.8
The strstr generic function
The strstr generic function
7.26.5.9
The strtok function
The strtok function
7.26.6
Miscellaneous functions
Miscellaneous functions
7.26.6.1
The memset function
The memset function
7.26.6.2
The memset_explicit function
The memset_explicit function
7.26.6.3
The strerror function
The strerror function
7.26.6.4
The strlen function
The strlen function
7.27
Type-generic math
Type-generic math
7.28
Threads
Threads
7.28.1
Introduction
Introduction
7.28.2
Initialization functions
Initialization functions
7.28.2.1
The call_once function
The call_once function
7.28.3
Condition variable functions
Condition variable functions
7.28.3.1
The cnd_broadcast function
The cnd_broadcast function
7.28.3.2
The cnd_destroy function
The cnd_destroy function
7.28.3.3
The cnd_init function
The cnd_init function
7.28.3.4
The cnd_signal function
The cnd_signal function
7.28.3.5
The cnd_timedwait function
The cnd_timedwait function
7.28.3.6
The cnd_wait function
The cnd_wait function
7.28.4
Mutex functions
Mutex functions
7.28.4.1
The mtx_destroy function
The mtx_destroy function
7.28.4.2
The mtx_init function
The mtx_init function
7.28.4.3
The mtx_lock function
The mtx_lock function
7.28.4.4
The mtx_timedlock function
The mtx_timedlock function
7.28.4.5
The mtx_trylock function
The mtx_trylock function
7.28.4.6
The mtx_unlock function
The mtx_unlock function
7.28.5
Thread functions
Thread functions
7.28.5.1
The thrd_create function
The thrd_create function
7.28.5.2
The thrd_current function
The thrd_current function
7.28.5.3
The thrd_detach function
The thrd_detach function
7.28.5.4
The thrd_equal function
The thrd_equal function
7.28.5.5
The thrd_exit function
The thrd_exit function
7.28.5.6
The thrd_join function
The thrd_join function
7.28.5.7
The thrd_sleep function
The thrd_sleep function
7.28.5.8
The thrd_yield function
The thrd_yield function
7.28.6
Thread-specific storage functions
Thread-specific storage functions
7.28.6.1
The tss_create function
The tss_create function
7.28.6.2
The tss_delete function
The tss_delete function
7.28.6.3
The tss_get function
The tss_get function
7.28.6.4
The tss_set function
The tss_set function
7.29
Date and time
Date and time
7.29.1
Components of time
Components of time
7.29.2
Time manipulation functions
Time manipulation functions
7.29.2.1
The clock function
The clock function
7.29.2.2
The difftime function
The difftime function
7.29.2.3
The mktime function
The mktime function
7.29.2.4
The timegm function
The timegm function
7.29.2.5
The time function
The time function
7.29.2.6
The timespec_get function
The timespec_get function
7.29.2.7
The timespec_getres function
The timespec_getres function
7.29.3
Time conversion functions
Time conversion functions
7.29.3.1
The asctime function
The asctime function
7.29.3.2
The ctime function
The ctime function
7.29.3.3
The gmtime functions
The gmtime functions
7.29.3.4
The localtime functions
The localtime functions
7.29.3.5
The strftime function
The strftime function
7.30
Unicode utilities
Unicode utilities
7.30.1
Restartable multibyte/wide character conversion functions
Restartable multibyte/wide character conversion functions
7.30.1.1
The mbrtoc8 function
The mbrtoc8 function
7.30.1.2
The c8rtomb function
The c8rtomb function
7.30.1.3
The mbrtoc16 function
The mbrtoc16 function
7.30.1.4
The c16rtomb function
The c16rtomb function
7.30.1.5
The mbrtoc32 function
The mbrtoc32 function
7.30.1.6
The c32rtomb function
The c32rtomb function
7.31
Extended multibyte and wide character utilities
Extended multibyte and wide character utilities
7.31.1
Introduction
Introduction
7.31.2
Formatted wide character input/output functions
Formatted wide character input/output functions
7.31.2.1
The fwprintf function
The fwprintf function
7.31.2.2
The fwscanf function
The fwscanf function
7.31.2.3
The swprintf function
The swprintf function
7.31.2.4
The swscanf function
The swscanf function
7.31.2.5
The vfwprintf function
The vfwprintf function
7.31.2.6
The vfwscanf function
The vfwscanf function
7.31.2.7
The vswprintf function
The vswprintf function
7.31.2.8
The vswscanf function
The vswscanf function
7.31.2.9
The vwprintf function
The vwprintf function
7.31.2.10
The vwscanf function
The vwscanf function
7.31.2.11
The wprintf function
The wprintf function
7.31.2.12
The wscanf function
The wscanf function
7.31.3
Wide character input/output functions
Wide character input/output functions
7.31.3.1
The fgetwc function
The fgetwc function
7.31.3.2
The fgetws function
The fgetws function
7.31.3.3
The fputwc function
The fputwc function
7.31.3.4
The fputws function
The fputws function
7.31.3.5
The fwide function
The fwide function
7.31.3.6
The getwc function
The getwc function
7.31.3.7
The getwchar function
The getwchar function
7.31.3.8
The putwc function
The putwc function
7.31.3.9
The putwchar function
The putwchar function
7.31.3.10
The ungetwc function
The ungetwc function
7.31.4
General wide string utilities
General wide string utilities
7.31.4.1
Wide string numeric conversion functions
Wide string numeric conversion functions
7.31.4.1.1
General
General
7.31.4.1.2
The wcstod, wcstof, and wcstold functions
The wcstod, wcstof, and wcstold functions
7.31.4.1.3
The wcstodN functions
The wcstodN functions
7.31.4.1.4
The wcstol, wcstoll, wcstoul, and wcstoull functions
The wcstol, wcstoll, wcstoul, and wcstoull functions
7.31.4.2
Wide string copying functions
Wide string copying functions
7.31.4.2.1
The wcscpy function
The wcscpy function
7.31.4.2.2
The wcsncpy function
The wcsncpy function
7.31.4.2.3
The wmemcpy function
The wmemcpy function
7.31.4.2.4
The wmemmove function
The wmemmove function
7.31.4.3
Wide string concatenation functions
Wide string concatenation functions
7.31.4.3.1
The wcscat function
The wcscat function
7.31.4.3.2
The wcsncat function
The wcsncat function
7.31.4.4
Wide string comparison functions
Wide string comparison functions
7.31.4.4.1
The wcscmp function
The wcscmp function
7.31.4.4.2
The wcscoll function
The wcscoll function
7.31.4.4.3
The wcsncmp function
The wcsncmp function
7.31.4.4.4
The wcsxfrm function
The wcsxfrm function
7.31.4.4.5
The wmemcmp function
The wmemcmp function
7.31.4.5
Wide string search functions
Wide string search functions
7.31.4.5.1
Introduction
Introduction
7.31.4.5.2
The wcschr generic function
The wcschr generic function
7.31.4.5.3
The wcscspn function
The wcscspn function
7.31.4.5.4
The wcspbrk generic function
The wcspbrk generic function
7.31.4.5.5
The wcsrchr generic function
The wcsrchr generic function
7.31.4.5.6
The wcsspn function
The wcsspn function
7.31.4.5.7
The wcsstr generic function
The wcsstr generic function
7.31.4.5.8
The wcstok function
The wcstok function
7.31.4.5.9
The wmemchr generic function
The wmemchr generic function
7.31.4.6
Miscellaneous functions
Miscellaneous functions
7.31.4.6.1
The wcslen function
The wcslen function
7.31.4.6.2
The wmemset function
The wmemset function
7.31.5
Wide character time conversion functions
Wide character time conversion functions
7.31.5.1
The wcsftime function
The wcsftime function
7.31.6
Extended multibyte/wide character conversion utilities
Extended multibyte/wide character conversion utilities
7.31.6.1
Single-byte/wide character conversion functions
Single-byte/wide character conversion functions
7.31.6.1.1
The btowc function
The btowc function
7.31.6.1.2
The wctob function
The wctob function
7.31.6.2
Conversion state functions
Conversion state functions
7.31.6.2.1
The mbsinit function
The mbsinit function
7.31.6.3
Restartable multibyte/wide character conversion functions
Restartable multibyte/wide character conversion functions
7.31.6.3.1
The mbrlen function
The mbrlen function
7.31.6.3.2
The mbrtowc function
The mbrtowc function
7.31.6.3.3
The wcrtomb function
The wcrtomb function
7.31.6.4
Restartable multibyte/wide string conversion functions
Restartable multibyte/wide string conversion functions
7.31.6.4.1
The mbsrtowcs function
The mbsrtowcs function
7.31.6.4.2
The wcsrtombs function
The wcsrtombs function
7.32
Wide character classification and mapping utilities
Wide character classification and mapping utilities
7.32.1
Introduction
Introduction
7.32.2
Wide character classification utilities
Wide character classification utilities
7.32.2.1
Wide character classification functions
Wide character classification functions
7.32.2.1.1
The iswalnum function
The iswalnum function
7.32.2.1.2
The iswalpha function
The iswalpha function
7.32.2.1.3
The iswblank function
The iswblank function
7.32.2.1.4
The iswcntrl function
The iswcntrl function
7.32.2.1.5
The iswdigit function
The iswdigit function
7.32.2.1.6
The iswgraph function
The iswgraph function
7.32.2.1.7
The iswlower function
The iswlower function
7.32.2.1.8
The iswprint function
The iswprint function
7.32.2.1.9
The iswpunct function
The iswpunct function
7.32.2.1.10
The iswspace function
The iswspace function
7.32.2.1.11
The iswupper function
The iswupper function
7.32.2.1.12
The iswxdigit function
The iswxdigit function
7.32.2.2
Extensible wide character classification functions
Extensible wide character classification functions
7.32.2.2.1
The iswctype function
The iswctype function
7.32.2.2.2
The wctype function
The wctype function
7.32.3
Wide character case mapping utilities
Wide character case mapping utilities
7.32.3.1
Wide character case mapping functions
Wide character case mapping functions
7.32.3.1.1
The towlower function
The towlower function
7.32.3.1.2
The towupper function
The towupper function
7.32.3.2
Extensible wide character case mapping functions
Extensible wide character case mapping functions
7.32.3.2.1
The towctrans function
The towctrans function
7.32.3.2.2
The wctrans function
The wctrans function
7.33
Future library directions
Future library directions
7.33.1
Complex arithmetic
Complex arithmetic
7.33.2
Character handling
Character handling
7.33.3
Errors
Errors
7.33.4
Floating-point environment
Floating-point environment
7.33.5
Characteristics of floating types
Characteristics of floating types
7.33.6
Format conversion of integer types
Format conversion of integer types
7.33.7
Localization
Localization
7.33.8
Mathematics
Mathematics
7.33.9
Signal handling
Signal handling
7.33.10
Atomics
Atomics
7.33.11
Boolean type and values
Boolean type and values
7.33.12
Bit and byte utilities
Bit and byte utilities
7.33.13
Checked Arithmetic Functions
Checked Arithmetic Functions
7.33.14
Integer types
Integer types
7.33.15
Input/output
Input/output
7.33.16
General utilities
General utilities
7.33.17
String handling
String handling
7.33.18
Date and time
Date and time
7.33.19
Threads
Threads
7.33.20
Extended multibyte and wide character utilities
Extended multibyte and wide character utilities
7.33.21
Wide character classification and mapping utilities
Wide character classification and mapping utilities
A
Language syntax summary
Language syntax summary
A.2
Lexical grammar
Lexical grammar
A.2.1
Lexical elements
Lexical elements
A.2.2
Keywords
Keywords
A.2.3
Identifiers
Identifiers
A.2.4
Universal character names
Universal character names
A.2.5
Constants
Constants
A.2.6
String literals
String literals
A.2.7
Punctuators
Punctuators
A.2.8
Header names
Header names
A.2.9
Preprocessing numbers
Preprocessing numbers
A.3
Phrase structure grammar
Phrase structure grammar
A.3.1
Expressions
Expressions
A.3.2
Declarations
Declarations
A.3.3
Statements
Statements
A.3.4
External definitions
External definitions
A.4
Preprocessing directives
Preprocessing directives
A.5
Floating-point subject sequence
Floating-point subject sequence
A.5.1
NaN char sequence
NaN char sequence
A.5.2
NaN wchar_t sequence
NaN wchar_t sequence
A.6
Decimal floating-point subject sequence
Decimal floating-point subject sequence
A.6.1
NaN decimal char sequence
NaN decimal char sequence
A.6.2
NaN decimal wchar_t sequence
NaN decimal wchar_t sequence
B
Library summary
Library summary
B.1
Diagnostics
Diagnostics
B.2
Complex
Complex
B.3
Character handling
Character handling
B.4
Errors
Errors
B.5
Floating-point environment
Floating-point environment
B.6
Characteristics of floating types
Characteristics of floating types
B.6.1
Macros
Macros
B.6.2
Characteristics of decimal floating types
Characteristics of decimal floating types
B.7
Format conversion of integer types
Format conversion of integer types
B.8
Alternative spellings
Alternative spellings
B.9
Sizes of integer types
Sizes of integer types
B.10
Localization
Localization
B.11
Mathematics
Mathematics
B.12
Non-local jumps
Non-local jumps
B.13
Signal handling
Signal handling
B.15
Variable arguments
Variable arguments
B.16
Atomics
Atomics
B.17
Bit and byte utilities
Bit and byte utilities
B.18
Boolean type and values
Boolean type and values
B.19
Checked Integer Operations
Checked Integer Operations
B.20
Common definitions
Common definitions
B.21
Integer types
Integer types
B.22
Input/output
Input/output
B.23
General utilities
General utilities
B.24
_Noreturn
_Noreturn
B.25
String handling
String handling
B.26
Type-generic math
Type-generic math
B.27
Threads
Threads
B.28
Date and time
Date and time
B.29
Unicode utilities
Unicode utilities
B.30
Extended multibyte/wide character utilities
Extended multibyte/wide character utilities
B.31
Wide character classification and mapping utilities
Wide character classification and mapping utilities
C
Sequence points
Sequence points
C.1
Known Sequence Points
Known Sequence Points
D
Universal character names for identifiers
Universal character names for identifiers
D.1
Introduction
Introduction
D.2
Default Identifiers
Default Identifiers
D.2.1
General
General
D.2.2
Restricted Format Characters
Restricted Format Characters
D.2.3
Stable Identifiers
Stable Identifiers
D.3
Immutable Identifiers
Immutable Identifiers
D.4
Pattern_White_Space and Pattern_Syntax Characters
Pattern_White_Space and Pattern_Syntax Characters
D.5
Equivalent Normalized Identifiers
Equivalent Normalized Identifiers
D.6
Equivalent Case-Insensitive Identifiers
Equivalent Case-Insensitive Identifiers
D.7
Filtered Normalized Identifiers
Filtered Normalized Identifiers
D.8
Filtered Case-Insensitive Identifiers
Filtered Case-Insensitive Identifiers
D.9
Hashtag Identifiers
Hashtag Identifiers
E
Implementation limits
Implementation limits
E.1
Introduction
Introduction
E.2
Minimum values
Minimum values
F
ISO/IEC 60559 floating-point arithmetic
ISO/IEC 60559 floating-point arithmetic
F.1
Introduction
Introduction
F.2
Types
Types
F.2.1
General
General
F.2.2
Infinities and NaNs
Infinities and NaNs
F.3
Operations
Operations
F.4
Floating to integer conversion
Floating to integer conversion
F.5
Conversions between binary floating types and decimal character sequences
Conversions between binary floating types and decimal character sequences
F.7
Contracted expressions
Contracted expressions
F.8
Floating-point environment
Floating-point environment
F.8.1
General
General
F.8.2
Environment management
Environment management
F.8.3
Translation
Translation
F.8.4
Execution
Execution
F.8.5
Constant expressions
Constant expressions
F.8.6
Initialization
Initialization
F.8.7
Changing the environment
Changing the environment
F.9
Optimization
Optimization
F.9.1
General
General
F.9.2
Global transformations
Global transformations
F.9.3
Expression transformations
Expression transformations
F.9.4
Relational operators
Relational operators
F.9.5
Constant arithmetic
Constant arithmetic
F.10
Mathematics and
Mathematics and
F.10.1
Trigonometric functions
Trigonometric functions
F.10.1.1
The acos functions
The acos functions
F.10.1.2
The asin functions
The asin functions
F.10.1.3
The atan functions
The atan functions
F.10.1.4
The atan2 functions
The atan2 functions
F.10.1.5
The cos functions
The cos functions
F.10.1.6
The sin functions
The sin functions
F.10.1.7
The tan functions
The tan functions
F.10.1.8
The acospi functions
The acospi functions
F.10.1.9
The asinpi functions
The asinpi functions
F.10.1.10
The atanpi functions
The atanpi functions
F.10.1.11
The atan2pi functions
The atan2pi functions
F.10.1.12
The cospi functions
The cospi functions
F.10.1.13
The sinpi functions
The sinpi functions
F.10.1.14
The tanpi functions
The tanpi functions
F.10.2
Hyperbolic functions
Hyperbolic functions
F.10.2.1
The acosh functions
The acosh functions
F.10.2.2
The asinh functions
The asinh functions
F.10.2.3
The atanh functions
The atanh functions
F.10.2.4
The cosh functions
The cosh functions
F.10.2.5
The sinh functions
The sinh functions
F.10.2.6
The tanh functions
The tanh functions
F.10.3
Exponential and logarithmic functions
Exponential and logarithmic functions
F.10.3.1
The exp functions
The exp functions
F.10.3.2
The exp10 functions
The exp10 functions
F.10.3.3
The exp10m1 functions
The exp10m1 functions
F.10.3.4
The exp2 functions
The exp2 functions
F.10.3.5
The exp2m1 functions
The exp2m1 functions
F.10.3.6
The expm1 functions
The expm1 functions
F.10.3.7
The frexp functions
The frexp functions
F.10.3.8
The ilogb functions
The ilogb functions
F.10.3.9
The ldexp functions
The ldexp functions
F.10.3.10
The llogb functions
The llogb functions
F.10.3.11
The log functions
The log functions
F.10.3.12
The log10 functions
The log10 functions
F.10.3.13
The log10p1 functions
The log10p1 functions
F.10.3.14
The log1p and logp1 functions
The log1p and logp1 functions
F.10.3.15
The log2 functions
The log2 functions
F.10.3.16
The log2p1 functions
The log2p1 functions
F.10.3.17
The logb functions
The logb functions
F.10.3.18
The modf functions
The modf functions
F.10.3.19
The scalbn and scalbln functions
The scalbn and scalbln functions
F.10.4
Power and absolute value functions
Power and absolute value functions
F.10.4.1
The cbrt functions
The cbrt functions
F.10.4.2
The compoundn functions
The compoundn functions
F.10.4.3
The fabs functions
The fabs functions
F.10.4.4
The hypot functions
The hypot functions
F.10.4.5
The pow functions
The pow functions
F.10.4.6
The pown functions
The pown functions
F.10.4.7
The powr functions
The powr functions
F.10.4.8
The rootn functions
The rootn functions
F.10.4.9
The rsqrt functions
The rsqrt functions
F.10.4.10
The sqrt functions
The sqrt functions
F.10.5
Error and gamma functions
Error and gamma functions
F.10.5.1
The erf functions
The erf functions
F.10.5.2
The erfc functions
The erfc functions
F.10.5.3
The lgamma functions
The lgamma functions
F.10.5.4
The tgamma functions
The tgamma functions
F.10.6
Nearest integer functions
Nearest integer functions
F.10.6.1
The ceil functions
The ceil functions
F.10.6.2
The floor functions
The floor functions
F.10.6.3
The nearbyint functions
The nearbyint functions
F.10.6.4
The rint functions
The rint functions
F.10.6.5
The lrint and llrint functions
The lrint and llrint functions
F.10.6.6
The round functions
The round functions
F.10.6.7
The lround and llround functions
The lround and llround functions
F.10.6.8
The roundeven functions
The roundeven functions
F.10.6.9
The trunc functions
The trunc functions
F.10.6.10
The fromfp and ufromfp functions
The fromfp and ufromfp functions
F.10.6.11
The fromfpx and ufromfpx functions
The fromfpx and ufromfpx functions
F.10.7
Remainder functions
Remainder functions
F.10.7.1
The fmod functions
The fmod functions
F.10.7.2
The remainder functions
The remainder functions
F.10.7.3
The remquo functions
The remquo functions
F.10.8
Manipulation functions
Manipulation functions
F.10.8.1
The copysign functions
The copysign functions
F.10.8.2
The nan functions
The nan functions
F.10.8.3
The nextafter functions
The nextafter functions
F.10.8.4
The nexttoward functions
The nexttoward functions
F.10.8.5
The nextup functions
The nextup functions
F.10.8.6
The nextdown functions
The nextdown functions
F.10.8.7
The canonicalize functions
The canonicalize functions
F.10.9
Maximum, minimum, and positive difference functions
Maximum, minimum, and positive difference functions
F.10.9.1
The fdim functions
The fdim functions
F.10.9.2
The fmax functions
The fmax functions
F.10.9.3
The fmin functions
The fmin functions
F.10.9.4
The fmaximum, fminimum, fmaximum_mag, and fminimum_mag functions
The fmaximum, fminimum, fmaximum_mag, and fminimum_mag functions
F.10.9.5
The fmaximum_num, fminimum_num, fmaximum_mag_num, and fminimum_mag_num func-
The fmaximum_num, fminimum_num, fmaximum_mag_num, and fminimum_mag_num func-
F.10.10
Fused multiply-add
Fused multiply-add
F.10.10.1
The fma functions
The fma functions
F.10.11
Functions that round result to narrower type
Functions that round result to narrower type
F.10.12
Total order functions
Total order functions
F.10.12.1
General
General
F.10.12.2
The totalorder functions
The totalorder functions
F.10.12.3
The totalordermag functions
The totalordermag functions
F.10.13
Payload functions
Payload functions
F.10.13.1
General
General
F.10.13.2
The getpayload functions
The getpayload functions
F.10.13.3
The setpayload functions
The setpayload functions
F.10.13.4
The setpayloadsig functions
The setpayloadsig functions
F.10.14
Comparison macros
Comparison macros
F.10.14.1
General
General
F.10.14.2
The iseqsig macro
The iseqsig macro
G
ISO/IEC 60559-compatible complex arithmetic
ISO/IEC 60559-compatible complex arithmetic
G.1
Introduction
Introduction
G.2
Types
Types
G.3
Conventions
Conventions
G.4
Conversions
Conversions
G.4.1
Imaginary types
Imaginary types
G.4.2
Real and imaginary
Real and imaginary
G.4.3
Imaginary and complex
Imaginary and complex
G.5
Binary operators
Binary operators
G.5.1
General
General
G.5.2
Multiplicative operators
Multiplicative operators
G.5.3
Additive operators
Additive operators
G.6.2
Trigonometric functions
Trigonometric functions
G.6.2.1
The cacos functions
The cacos functions
G.6.3
Hyperbolic functions
Hyperbolic functions
G.6.3.1
The cacosh functions
The cacosh functions
G.6.3.2
The casinh functions
The casinh functions
G.6.3.3
The catanh functions
The catanh functions
G.6.3.5
The csinh functions
The csinh functions
G.6.3.6
The ctanh functions
The ctanh functions
G.6.4
Exponential and logarithmic functions
Exponential and logarithmic functions
G.6.4.1
The cexp functions
The cexp functions
G.6.4.2
The clog functions
The clog functions
G.6.5
Power and absolute-value functions
Power and absolute-value functions
G.6.5.1
The cpow functions
The cpow functions
G.6.5.2
The csqrt functions
The csqrt functions
G.7
Type-generic math
Type-generic math
H
ISO/IEC 60559 interchange and extended types
ISO/IEC 60559 interchange and extended types
H.1
Introduction
Introduction
H.2
Types
Types
H.2.1
General
General
H.2.2
Interchange floating types
Interchange floating types
H.2.3
Non-arithmetic interchange formats
Non-arithmetic interchange formats
H.2.4
Extended floating types
Extended floating types
H.2.5
Classification of real floating types
Classification of real floating types
H.2.6
Complex types
Complex types
H.2.7
Imaginary types
Imaginary types
H.3
Characteristics in
Characteristics in
H.4
Conversions
Conversions
H.4.1
General
General
H.4.2
Real floating and integer
Real floating and integer
H.4.3
Usual arithmetic conversions
Usual arithmetic conversions
H.4.4
Arithmetic and non-arithmetic formats
Arithmetic and non-arithmetic formats
H.5
Lexical Elements
Lexical Elements
H.5.1
Keywords
Keywords
H.5.2
Constants
Constants
H.6
Expressions
Expressions
H.7
Declarations
Declarations
H.8
Identifiers in standard headers
Identifiers in standard headers
H.9
Complex arithmetic
Complex arithmetic
H.10
Floating-point environment
Floating-point environment
H.11
Mathematics
Mathematics
H.11.2
Functions
Functions
H.11.3
Encoding conversion functions
Encoding conversion functions
H.11.3.1
General
General
H.11.3.2
Encode and decode functions
Encode and decode functions
H.11.3.2.1
General
General
H.11.3.2.2
The encodefN functions
The encodefN functions
H.11.3.2.3
The decodefN functions
The decodefN functions
H.11.3.3
Encoding-to-encoding conversion functions
Encoding-to-encoding conversion functions
H.11.3.3.1
General
General
H.11.3.3.2
The fMencfN functions
The fMencfN functions
H.11.3.3.3
The dMencdecdN and dMencbindN functions
The dMencdecdN and dMencbindN functions
H.12
Numeric conversion functions
Numeric conversion functions
H.12.1
General
General
H.12.2
String from floating
String from floating
H.12.3
String to floating
String to floating
H.12.4
String from encoding
String from encoding
H.12.4.1
General
General
H.12.4.2
The strfromencfN functions
The strfromencfN functions
H.12.4.3
The strfromencdecdN and strfromencbindN functions
The strfromencdecdN and strfromencbindN functions
H.12.5
String to encoding
String to encoding
H.12.5.1
General
General
H.12.5.2
The strtoencfN functions
The strtoencfN functions
H.12.5.3
The wcstoencfN functions
The wcstoencfN functions
H.12.5.4
The strtoencdecdN and strtoencbindN functions
The strtoencdecdN and strtoencbindN functions
H.12.5.5
The wcstoencdecdN and wcstoencbindN functions
The wcstoencdecdN and wcstoencbindN functions
H.13
Type-generic macros
Type-generic macros
I
Common warnings
Common warnings
I.1
Introduction
Introduction
I.2
Common situations
Common situations
J
Portability issues
Portability issues
J.1
Unspecified behavior
Unspecified behavior
J.2
Undefined behavior
Undefined behavior
J.3
Implementation-defined behavior
Implementation-defined behavior
J.3.1
General
General
J.3.2
Translation
Translation
J.3.3
Environment
Environment
J.3.4
Identifiers
Identifiers
J.3.5
Characters
Characters
J.3.6
Integers
Integers
J.3.7
Floating-point
Floating-point
J.3.8
Arrays and pointers
Arrays and pointers
J.3.9
Hints
Hints
J.3.10
Structures, unions, enumerations, and bit-fields
Structures, unions, enumerations, and bit-fields
J.3.11
Qualifiers
Qualifiers
J.3.12
Preprocessing directives
Preprocessing directives
J.3.13
Library functions
Library functions
J.3.14
Architecture
Architecture
J.4
Locale-specific behavior
Locale-specific behavior
J.5
Common extensions
Common extensions
J.5.1
General
General
J.5.2
Environment arguments
Environment arguments
J.5.3
Specialized identifiers
Specialized identifiers
J.5.4
Lengths and cases of identifiers
Lengths and cases of identifiers
J.5.5
Scopes of identifiers
Scopes of identifiers
J.5.6
Writable string literals
Writable string literals
J.5.7
Other arithmetic types
Other arithmetic types
J.5.8
Function pointer casts
Function pointer casts
J.5.9
Extended bit-field types
Extended bit-field types
J.5.10
The fortran keyword
The fortran keyword
J.5.11
The asm keyword
The asm keyword
J.5.12
Type inference
Type inference
J.5.13
Multiple external definitions
Multiple external definitions
J.5.14
Predefined macro names
Predefined macro names
J.5.15
Floating-point status flags
Floating-point status flags
J.5.16
Extra arguments for signal handlers
Extra arguments for signal handlers
J.5.17
Additional stream types and file-opening modes
Additional stream types and file-opening modes
J.5.18
Defined file position indicator
Defined file position indicator
J.5.19
Math error reporting
Math error reporting
J.6
Reserved identifiers and keywords
Reserved identifiers and keywords
J.6.1
General
General
J.6.2
Rule based identifiers
Rule based identifiers
J.6.3
Particular identifiers or keywords
Particular identifiers or keywords
K
Bounds-checking interfaces
Bounds-checking interfaces
K.1
Background
Background
K.2
Scope
Scope
K.3
Library
Library
K.3.1
Introduction
Introduction
K.3.1.1
Standard headers
Standard headers
K.3.1.2
Reserved identifiers
Reserved identifiers
K.3.1.3
Use of errno
Use of errno
K.3.1.4
Runtime-constraint violations
Runtime-constraint violations
K.3.2
Errors
Errors
K.3.3
Common definitions
Common definitions
K.3.4
Integer types
Integer types
K.3.5
Input/output
Input/output
K.3.5.1
Operations on files
Operations on files
K.3.5.1.1
The tmpfile_s function
The tmpfile_s function
K.3.5.1.2
The tmpnam_s function
The tmpnam_s function
K.3.5.2
File access functions
File access functions
K.3.5.2.1
The fopen_s function
The fopen_s function
K.3.5.2.2
The freopen_s function
The freopen_s function
K.3.5.3
Formatted input/output functions
Formatted input/output functions
K.3.5.3.1
General
General
K.3.5.3.2
The fprintf_s function
The fprintf_s function
K.3.5.3.3
The fscanf_s function
The fscanf_s function
K.3.5.3.4
The printf_s function
The printf_s function
K.3.5.3.5
The scanf_s function
The scanf_s function
K.3.5.3.6
The snprintf_s function
The snprintf_s function
K.3.5.3.7
The sprintf_s function
The sprintf_s function
K.3.5.3.8
The sscanf_s function
The sscanf_s function
K.3.5.3.9
The vfprintf_s function
The vfprintf_s function
K.3.5.3.10
The vfscanf_s function
The vfscanf_s function
K.3.5.3.11
The vprintf_s function
The vprintf_s function
K.3.5.3.12
The vscanf_s function
The vscanf_s function
K.3.5.3.13
The vsnprintf_s function
The vsnprintf_s function
K.3.5.3.14
The vsprintf_s function
The vsprintf_s function
K.3.5.3.15
The vsscanf_s function
The vsscanf_s function
K.3.5.4
Character input/output functions
Character input/output functions
K.3.5.4.1
The gets_s function
The gets_s function
K.3.6
General utilities
General utilities
K.3.6.1
Runtime-constraint handling
Runtime-constraint handling
K.3.6.1.1
The set_constraint_handler_s function
The set_constraint_handler_s function
K.3.6.1.2
The abort_handler_s function
The abort_handler_s function
K.3.6.1.3
The ignore_handler_s function
The ignore_handler_s function
K.3.6.2
Communication with the environment
Communication with the environment
K.3.6.2.1
The getenv_s function
The getenv_s function
K.3.6.3
Searching and sorting utilities
Searching and sorting utilities
K.3.6.3.1
General
General
K.3.6.3.2
The bsearch_s generic function
The bsearch_s generic function
K.3.6.3.3
The qsort_s function
The qsort_s function
K.3.6.4
Multibyte/wide character conversion functions
Multibyte/wide character conversion functions
K.3.6.4.1
The wctomb_s function
The wctomb_s function
K.3.6.5
Multibyte/wide string conversion functions
Multibyte/wide string conversion functions
K.3.6.5.1
The mbstowcs_s function
The mbstowcs_s function
K.3.6.5.2
The wcstombs_s function
The wcstombs_s function
K.3.7
String handling
String handling
K.3.7.1
General
General
K.3.7.2
Copying functions
Copying functions
K.3.7.2.1
The memcpy_s function
The memcpy_s function
K.3.7.2.2
The memmove_s function
The memmove_s function
K.3.7.2.3
The strcpy_s function
The strcpy_s function
K.3.7.2.4
The strncpy_s function
The strncpy_s function
K.3.7.3
Concatenation functions
Concatenation functions
K.3.7.3.1
The strcat_s function
The strcat_s function
K.3.7.3.2
The strncat_s function
The strncat_s function
K.3.7.4
Search functions
Search functions
K.3.7.4.1
The strtok_s function
The strtok_s function
K.3.7.5
Miscellaneous functions
Miscellaneous functions
K.3.7.5.1
The memset_s function
The memset_s function
K.3.7.5.2
The strerror_s function
The strerror_s function
K.3.7.5.3
The strerrorlen_s function
The strerrorlen_s function
K.3.7.5.4
The strnlen_s function
The strnlen_s function
K.3.8
Date and time
Date and time
K.3.8.1
General
General
K.3.8.2
Components of time
Components of time
K.3.8.3
Time conversion functions
Time conversion functions
K.3.8.3.1
General
General
K.3.8.3.2
The asctime_s function
The asctime_s function
K.3.8.3.3
The ctime_s function
The ctime_s function
K.3.8.3.4
The gmtime_s function
The gmtime_s function
K.3.8.3.5
The localtime_s function
The localtime_s function
K.3.9
Extended multibyte and wide character utilities
Extended multibyte and wide character utilities
K.3.9.1
General
General
K.3.9.2
Formatted wide character input/output functions
Formatted wide character input/output functions
K.3.9.2.1
The fwprintf_s function
The fwprintf_s function
K.3.9.2.2
The fwscanf_s function
The fwscanf_s function
K.3.9.2.3
The snwprintf_s function
The snwprintf_s function
K.3.9.2.4
The swprintf_s function
The swprintf_s function
K.3.9.2.5
The swscanf_s function
The swscanf_s function
K.3.9.2.6
The vfwprintf_s function
The vfwprintf_s function
K.3.9.2.7
The vfwscanf_s function
The vfwscanf_s function
K.3.9.2.8
The vsnwprintf_s function
The vsnwprintf_s function
K.3.9.2.9
The vswprintf_s function
The vswprintf_s function
K.3.9.2.10
The vswscanf_s function
The vswscanf_s function
K.3.9.2.11
The vwprintf_s function
The vwprintf_s function
K.3.9.2.12
The vwscanf_s function
The vwscanf_s function
K.3.9.2.13
The wprintf_s function
The wprintf_s function
K.3.9.2.14
The wscanf_s function
The wscanf_s function
K.3.9.3
General wide string utilities
General wide string utilities
K.3.9.3.1
Wide string copying functions
Wide string copying functions
K.3.9.3.1.1
The wcscpy_s function
The wcscpy_s function
K.3.9.3.1.2
The wcsncpy_s function
The wcsncpy_s function
K.3.9.3.1.3
The wmemcpy_s function
The wmemcpy_s function
K.3.9.3.1.4
The wmemmove_s function
The wmemmove_s function
K.3.9.3.2
Wide string concatenation functions
Wide string concatenation functions
K.3.9.3.2.1
The wcscat_s function
The wcscat_s function
K.3.9.3.2.2
The wcsncat_s function
The wcsncat_s function
K.3.9.3.3
Wide string search functions
Wide string search functions
K.3.9.3.3.1
The wcstok_s function
The wcstok_s function
K.3.9.3.4
Miscellaneous functions
Miscellaneous functions
K.3.9.3.4.1
The wcsnlen_s function
The wcsnlen_s function
K.3.9.4
Extended multibyte/wide character conversion utilities
Extended multibyte/wide character conversion utilities
K.3.9.4.1
Restartable multibyte/wide character conversion functions
Restartable multibyte/wide character conversion functions
K.3.9.4.1.1
General
General
K.3.9.4.1.2
The wcrtomb_s function
The wcrtomb_s function
K.3.9.4.2
Restartable multibyte/wide string conversion functions
Restartable multibyte/wide string conversion functions
K.3.9.4.2.1
General
General
K.3.9.4.2.2
The mbsrtowcs_s function
The mbsrtowcs_s function
K.3.9.4.2.3
The wcsrtombs_s function
The wcsrtombs_s function
L
Analyzability
Analyzability
L.1
Scope
Scope
L.2
Definitions
Definitions
L.2.1
out-of-bounds store
out-of-bounds store
L.2.2
bounded undefined behavior
bounded undefined behavior
L.2.3
critical undefined behavior
critical undefined behavior
L.3
Requirements
Requirements
M
Change History
Change History
M.1
Attribute Changes
Attribute Changes
M.3
Fourth Edition
Fourth Edition
M.4
Third Edition
Third Edition
M.5
Second Edition
Second Edition
M.6
First Edition, Amendment 1
First Edition, Amendment 1
Bibliography
Bibliography
Bibliography
C WD (C working_draft)
Foreword
Foreword
Foreword
Introduction
Introduction
Introduction
1
Scope
Scope
2
Normative references
Normative references
3
Terms, definitions, and symbols
Terms, definitions, and symbols
3.1
access (verb)
access (verb)
3.2
alignment
alignment
3.3
argument
argument
3.4
arithmetically negate
arithmetically negate
3.5
behavior
behavior
3.5.1
implementation-defined behavior
implementation-defined behavior
3.5.2
locale-specific behavior
locale-specific behavior
3.5.3
undefined behavior
undefined behavior
3.5.4
unspecified behavior
unspecified behavior
3.6
bit
bit
3.7
byte
byte
3.8
byte array
byte array
3.9
byte type
byte type
3.10
low-order bit
low-order bit
3.11
high-order bit
high-order bit
3.12
character
character
3.12.1
character
character
3.12.2
multibyte character
multibyte character
3.12.3
wide character
wide character
3.13
constraint
constraint
3.14
correctly rounded result
correctly rounded result
3.15
diagnostic message
diagnostic message
3.16
forward reference
forward reference
3.17
implementation
implementation
3.18
implementation limit
implementation limit
3.19
memory location
memory location
3.20
object
object
3.21
parameter
parameter
3.22
recommended practice
recommended practice
3.23
runtime-constraint
runtime-constraint
3.24
value
value
3.24.1
implementation-defined value
implementation-defined value
3.24.2
unspecified value
unspecified value
3.25
indeterminate representation
indeterminate representation
3.26
non-value representation
non-value representation
3.27
perform a trap
perform a trap
3.28
⌈x⌉
⌈x⌉
3.29
⌊x⌋
⌊x⌋
3.30
wraparound
wraparound
3.31
out-of-bounds store
out-of-bounds store
3.32
bounded undefined behavior
bounded undefined behavior
3.33
critical undefined behavior
critical undefined behavior
4
Conformance
Conformance
5
Environment
Environment
5.1
Introduction
Introduction
5.2
Conceptual models
Conceptual models
5.2.1
Translation environment
Translation environment
5.2.1.1
Program structure
Program structure
5.2.1.2
Translation phases
Translation phases
5.2.1.3
Diagnostics
Diagnostics
5.2.2
Execution environments
Execution environments
5.2.2.1
General
General
5.2.2.2
Freestanding environment
Freestanding environment
5.2.2.3
Hosted environment
Hosted environment
5.2.2.3.1
General
General
5.2.2.3.2
Program startup
Program startup
5.2.2.3.3
Program execution
Program execution
5.2.2.3.4
Program termination
Program termination
5.2.2.4
Program semantics
Program semantics
5.2.2.5
Multi-threaded executions and data races
Multi-threaded executions and data races
5.3
Environmental considerations
Environmental considerations
5.3.1
Character sets
Character sets
5.3.2
Multibyte characters
Multibyte characters
5.3.3
Character display semantics
Character display semantics
5.3.4
Signals and interrupts
Signals and interrupts
5.3.5
Environmental limits
Environmental limits
5.3.5.1
General
General
5.3.5.2
Translation limits
Translation limits
5.3.5.3
Numerical limits
Numerical limits
5.3.5.3.1
General
General
5.3.5.3.2
Characteristics of integer types and
Characteristics of integer types and
5.3.5.3.3
Characteristics of floating types
Characteristics of floating types
5.3.5.3.4
Characteristics of decimal floating types in
Characteristics of decimal floating types in
6
Language
Language
6.1
Notation
Notation
6.2
Concepts
Concepts
6.2.1
Scopes of identifiers, type names, and compound literals
Scopes of identifiers, type names, and compound literals
6.2.2
Linkages of identifiers
Linkages of identifiers
6.2.3
Name spaces of identifiers
Name spaces of identifiers
6.2.4
Storage durations of objects
Storage durations of objects
6.2.5
Types
Types
6.2.6
Representations of types
Representations of types
6.2.6.1
General
General
6.2.6.2
Integer types
Integer types
6.2.6.3
Pointer types and nullptr_t
Pointer types and nullptr_t
6.2.7
Compatible type and composite type
Compatible type and composite type
6.2.8
Alignment of objects
Alignment of objects
6.2.9
Encodings
Encodings
6.3
Conversions
Conversions
6.3.1
Introduction
Introduction
6.3.2
Arithmetic operands
Arithmetic operands
6.3.2.1
Boolean, characters, and integers
Boolean, characters, and integers
6.3.2.2
Boolean type
Boolean type
6.3.2.3
Signed and unsigned integers
Signed and unsigned integers
6.3.2.4
Real floating and integer
Real floating and integer
6.3.2.5
Real floating types
Real floating types
6.3.2.6
Complex types
Complex types
6.3.2.7
Real and complex
Real and complex
6.3.2.8
Usual arithmetic conversions
Usual arithmetic conversions
6.3.3
Other operands
Other operands
6.3.3.1
Lvalues, arrays, and function designators
Lvalues, arrays, and function designators
6.3.3.2
void
void
6.3.3.3
Pointers
Pointers
6.3.3.4
nullptr_t
nullptr_t
6.4
Lexical elements
Lexical elements
6.4.1
General
General
6.4.2
Keywords
Keywords
6.4.3
Identifiers
Identifiers
6.4.3.1
General
General
6.4.3.2
Predefined identifiers
Predefined identifiers
6.4.4
Universal character names
Universal character names
6.4.5
Constants
Constants
6.4.5.1
General
General
6.4.5.2
Integer literals
Integer literals
6.4.5.3
Floating literals
Floating literals
6.4.5.4
Enumeration constants
Enumeration constants
6.4.5.5
Character literals
Character literals
6.4.5.6
Predefined constants
Predefined constants
6.4.6
String literals
String literals
6.4.7
Punctuators
Punctuators
6.4.8
Header names
Header names
6.4.9
Preprocessing numbers
Preprocessing numbers
6.4.10
Comments
Comments
6.5
Expressions
Expressions
6.5.1
General
General
6.5.2
Primary expressions
Primary expressions
6.5.2.1
Generic selection
Generic selection
6.5.3
Postfix operators
Postfix operators
6.5.3.1
General
General
6.5.3.2
Array subscripting
Array subscripting
6.5.3.3
Function calls
Function calls
6.5.3.4
Structure and union members
Structure and union members
6.5.3.5
Postfix increment and decrement operators
Postfix increment and decrement operators
6.5.3.6
Compound literals
Compound literals
6.5.4
Unary operators
Unary operators
6.5.4.1
General
General
6.5.4.2
Prefix increment and decrement operators
Prefix increment and decrement operators
6.5.4.3
Address and indirection operators
Address and indirection operators
6.5.4.4
Unary arithmetic operators
Unary arithmetic operators
6.5.4.5
The sizeof, _Countof, and alignof operators
The sizeof, _Countof, and alignof operators
6.5.4.6
Static assertions
Static assertions
6.5.5
Cast operators
Cast operators
6.5.6
Multiplicative operators
Multiplicative operators
6.5.7
Additive operators
Additive operators
6.5.8
Bitwise shift operators
Bitwise shift operators
6.5.9
Relational operators
Relational operators
6.5.10
Equality operators
Equality operators
6.5.11
Bitwise AND operator
Bitwise AND operator
6.5.12
Bitwise exclusive OR operator
Bitwise exclusive OR operator
6.5.13
Bitwise inclusive OR operator
Bitwise inclusive OR operator
6.5.14
Logical AND operator
Logical AND operator
6.5.15
Logical OR operator
Logical OR operator
6.5.16
Conditional operator
Conditional operator
6.5.17
Assignment operators
Assignment operators
6.5.17.1
General
General
6.5.17.2
Simple assignment
Simple assignment
6.5.17.3
Compound assignment
Compound assignment
6.5.18
Comma operator
Comma operator
6.6
Constant expressions
Constant expressions
6.6.1
General
General
6.6.2
Constant range expressions
Constant range expressions
6.7
Declarations
Declarations
6.7.1
General
General
6.7.2
Storage-class specifiers
Storage-class specifiers
6.7.3
Type specifiers
Type specifiers
6.7.3.1
General
General
6.7.3.2
Structure and union specifiers
Structure and union specifiers
6.7.3.3
Enumeration specifiers
Enumeration specifiers
6.7.3.4
Tags
Tags
6.7.3.5
Atomic type specifiers
Atomic type specifiers
6.7.3.6
Typeof specifiers
Typeof specifiers
6.7.4
Type qualifiers
Type qualifiers
6.7.4.1
General
General
6.7.4.2
Formal definition of restrict
Formal definition of restrict
6.7.5
Function specifiers
Function specifiers
6.7.6
Alignment specifier
Alignment specifier
6.7.7
Declarators
Declarators
6.7.7.1
General
General
6.7.7.2
Pointer declarators
Pointer declarators
6.7.7.3
Array declarators
Array declarators
6.7.7.4
Function declarators
Function declarators
6.7.8
Type names
Type names
6.7.9
Type definitions
Type definitions
6.7.10
Type inference
Type inference
6.7.11
Initialization
Initialization
6.7.12
Attributes
Attributes
6.7.12.1
Introduction
Introduction
6.7.12.2
General
General
6.7.12.3
The nodiscard attribute
The nodiscard attribute
6.7.12.4
The maybe_unused attribute
The maybe_unused attribute
6.7.12.5
The deprecated attribute
The deprecated attribute
6.7.12.6
The fallthrough attribute
The fallthrough attribute
6.7.12.7
The noreturn and _Noreturn attributes
The noreturn and _Noreturn attributes
6.7.12.8
Standard attributes for function types
Standard attributes for function types
6.7.12.8.1
General
General
6.7.12.8.2
The reproducible type attribute
The reproducible type attribute
6.7.12.8.3
The unsequenced type attribute
The unsequenced type attribute
6.8
Statements and blocks
Statements and blocks
6.8.1
General
General
6.8.2
Labeled statements
Labeled statements
6.8.3
Compound statement
Compound statement
6.8.4
Expression and null statements
Expression and null statements
6.8.5
Selection statements
Selection statements
6.8.5.1
General
General
6.8.5.2
The if statement
The if statement
6.8.5.3
The switch statement
The switch statement
6.8.6
Iteration statements
Iteration statements
6.8.6.1
General
General
6.8.6.2
The while statement
The while statement
6.8.6.3
The do statement
The do statement
6.8.6.4
The for statement
The for statement
6.8.7
Jump statements
Jump statements
6.8.7.1
General
General
6.8.7.2
The goto statement
The goto statement
6.8.7.3
The continue statement
The continue statement
6.8.7.4
The break statement
The break statement
6.8.7.5
The return statement
The return statement
6.9
External definitions
External definitions
6.9.1
General
General
6.9.2
Function definitions
Function definitions
6.9.3
External object definitions
External object definitions
6.10
Preprocessing directives
Preprocessing directives
6.10.1
General
General
6.10.2
Conditional inclusion
Conditional inclusion
6.10.3
Source file inclusion
Source file inclusion
6.10.4
Binary resource inclusion
Binary resource inclusion
6.10.4.1
#embed preprocessing directive
#embed preprocessing directive
6.10.4.2
limit parameter
limit parameter
6.10.4.3
suffix parameter
suffix parameter
6.10.4.4
prefix parameter
prefix parameter
6.10.4.5
if_empty parameter
if_empty parameter
6.10.5
Macro replacement
Macro replacement
6.10.5.1
General
General
6.10.5.2
Argument substitution
Argument substitution
6.10.5.3
The # operator
The # operator
6.10.5.4
The ## operator
The ## operator
6.10.5.5
Rescanning and further replacement
Rescanning and further replacement
6.10.5.6
Scope of macro definitions
Scope of macro definitions
6.10.6
Line control
Line control
6.10.7
Diagnostic directives
Diagnostic directives
6.10.8
Pragma directive
Pragma directive
6.10.9
Null directive
Null directive
6.10.10
Predefined macro names
Predefined macro names
6.10.10.1
General
General
6.10.10.2
Mandatory macros
Mandatory macros
6.10.10.2.1
The __COUNTER__ predefined macro
The __COUNTER__ predefined macro
6.10.10.3
Environment macros
Environment macros
6.10.10.4
Conditional feature macros
Conditional feature macros
6.10.11
Pragma operator
Pragma operator
6.11
Future language directions
Future language directions
6.11.1
Floating types
Floating types
6.11.2
Linkages of identifiers
Linkages of identifiers
6.11.3
External names
External names
6.11.4
Character escape sequences
Character escape sequences
6.11.5
Octal integer literals
Octal integer literals
6.11.6
Postfix operators
Postfix operators
6.11.7
Storage-class specifiers
Storage-class specifiers
6.11.8
Pragma directives
Pragma directives
6.11.9
Predefined macro names
Predefined macro names
7
Library
Library
7.1
Introduction
Introduction
7.1.1
Definitions of terms
Definitions of terms
7.1.2
Standard headers
Standard headers
7.1.3
Reserved identifiers
Reserved identifiers
7.1.4
Use of library functions
Use of library functions
7.2
Diagnostics
Diagnostics
7.2.1
General
General
7.2.2
Program diagnostics
Program diagnostics
7.2.2.1
The assert macro
The assert macro
7.3
Complex arithmetic
Complex arithmetic
7.3.1
Introduction
Introduction
7.3.2
Conventions
Conventions
7.3.3
Branch cuts
Branch cuts
7.3.4
The CX_LIMITED_RANGE pragma
The CX_LIMITED_RANGE pragma
7.3.5
Trigonometric functions
Trigonometric functions
7.3.5.1
The cacos functions
The cacos functions
7.3.5.2
The casin functions
The casin functions
7.3.5.3
The catan functions
The catan functions
7.3.5.4
The ccos functions
The ccos functions
7.3.5.5
The csin functions
The csin functions
7.3.5.6
The ctan functions
The ctan functions
7.3.6
Hyperbolic functions
Hyperbolic functions
7.3.6.1
The cacosh functions
The cacosh functions
7.3.6.2
The casinh functions
The casinh functions
7.3.6.3
The catanh functions
The catanh functions
7.3.6.4
The ccosh functions
The ccosh functions
7.3.6.5
The csinh functions
The csinh functions
7.3.6.6
The ctanh functions
The ctanh functions
7.3.7
Exponential and logarithmic functions
Exponential and logarithmic functions
7.3.7.1
The cexp functions
The cexp functions
7.3.7.2
The clog functions
The clog functions
7.3.8
Power and absolute-value functions
Power and absolute-value functions
7.3.8.1
The cabs functions
The cabs functions
7.3.8.2
The cpow functions
The cpow functions
7.3.8.3
The csqrt functions
The csqrt functions
7.3.9
Manipulation functions
Manipulation functions
7.3.9.1
The carg functions
The carg functions
7.3.9.2
The cimag functions
The cimag functions
7.3.9.3
The CMPLX macros
The CMPLX macros
7.3.9.4
The conj functions
The conj functions
7.3.9.5
The cproj functions
The cproj functions
7.3.9.6
The creal functions
The creal functions
7.4
Character handling
Character handling
7.4.1
General
General
7.4.2
Character classification functions
Character classification functions
7.4.2.1
General
General
7.4.2.2
The isalnum function
The isalnum function
7.4.2.3
The isalpha function
The isalpha function
7.4.2.4
The isblank function
The isblank function
7.4.2.5
The iscntrl function
The iscntrl function
7.4.2.6
The isdigit function
The isdigit function
7.4.2.7
The isgraph function
The isgraph function
7.4.2.8
The islower function
The islower function
7.4.2.9
The isprint function
The isprint function
7.4.2.10
The ispunct function
The ispunct function
7.4.2.11
The isspace function
The isspace function
7.4.2.12
The isupper function
The isupper function
7.4.2.13
The isxdigit function
The isxdigit function
7.4.3
Character case mapping functions
Character case mapping functions
7.4.3.1
The tolower function
The tolower function
7.4.3.2
The toupper function
The toupper function
7.5
Errors
Errors
7.6
Floating-point environment
Floating-point environment
7.6.1
General
General
7.6.2
The FENV_ACCESS pragma
The FENV_ACCESS pragma
7.6.3
The FENV_ROUND pragma
The FENV_ROUND pragma
7.6.4
The FENV_DEC_ROUND pragma
The FENV_DEC_ROUND pragma
7.6.5
Floating-point exceptions
Floating-point exceptions
7.6.5.1
General
General
7.6.5.2
The feclearexcept function
The feclearexcept function
7.6.5.3
The fegetexceptflag function
The fegetexceptflag function
7.6.5.4
The feraiseexcept function
The feraiseexcept function
7.6.5.5
The fesetexcept function
The fesetexcept function
7.6.5.6
The fesetexceptflag function
The fesetexceptflag function
7.6.5.7
The fetestexceptflag function
The fetestexceptflag function
7.6.5.8
The fetestexcept function
The fetestexcept function
7.6.6
Rounding and other control modes
Rounding and other control modes
7.6.6.1
General
General
7.6.6.2
The fegetmode function
The fegetmode function
7.6.6.3
The fegetround function
The fegetround function
7.6.6.4
The fe_dec_getround function
The fe_dec_getround function
7.6.6.5
The fesetmode function
The fesetmode function
7.6.6.6
The fesetround function
The fesetround function
7.6.6.7
The fe_dec_setround function
The fe_dec_setround function
7.6.7
Environment
Environment
7.6.7.1
General
General
7.6.7.2
The fegetenv function
The fegetenv function
7.6.7.3
The feholdexcept function
The feholdexcept function
7.6.7.4
The fesetenv function
The fesetenv function
7.6.7.5
The feupdateenv function
The feupdateenv function
7.7
Characteristics of floating types
Characteristics of floating types
7.8
Format conversion of integer types
Format conversion of integer types
7.8.1
General
General
7.8.2
Macros for format specifiers
Macros for format specifiers
7.8.3
Functions for greatest-width integer types
Functions for greatest-width integer types
7.8.3.1
The imaxabs and umaxabs functions
The imaxabs and umaxabs functions
7.8.3.2
The imaxdiv function
The imaxdiv function
7.8.3.3
The strtoimax and strtoumax functions
The strtoimax and strtoumax functions
7.8.3.4
The wcstoimax and wcstoumax functions
The wcstoimax and wcstoumax functions
7.9
Alternative spellings
Alternative spellings
7.10
Characteristics of integer types
Characteristics of integer types
7.11
Localization
Localization
7.11.1
General
General
7.11.2
The setlocale function
The setlocale function
7.11.3
Numeric formatting convention inquiry
Numeric formatting convention inquiry
7.11.3.1
The localeconv function
The localeconv function
7.12
Mathematics
Mathematics
7.12.1
General
General
7.12.2
Treatment of error conditions
Treatment of error conditions
7.12.3
The FP_CONTRACT pragma
The FP_CONTRACT pragma
7.12.4
Classification macros
Classification macros
7.12.4.1
General
General
7.12.4.2
The fpclassify macro
The fpclassify macro
7.12.4.3
The iscanonical macro
The iscanonical macro
7.12.4.4
The isfinite macro
The isfinite macro
7.12.4.5
The isinf macro
The isinf macro
7.12.4.6
The isnan macro
The isnan macro
7.12.4.7
The isnormal macro
The isnormal macro
7.12.4.8
The signbit macro
The signbit macro
7.12.4.9
The issignaling macro
The issignaling macro
7.12.4.10
The issubnormal macro
The issubnormal macro
7.12.4.11
The iszero macro
The iszero macro
7.12.5
Trigonometric functions
Trigonometric functions
7.12.5.1
The acos functions
The acos functions
7.12.5.2
The asin functions
The asin functions
7.12.5.4
The atan2 functions
The atan2 functions
7.12.5.5
The cos functions
The cos functions
7.12.5.6
The sin functions
The sin functions
7.12.5.7
The tan functions
The tan functions
7.12.5.8
The acospi functions
The acospi functions
7.12.5.9
The asinpi functions
The asinpi functions
7.12.5.10
The atanpi functions
The atanpi functions
7.12.5.11
The atan2pi functions
The atan2pi functions
7.12.5.12
The cospi functions
The cospi functions
7.12.5.13
The sinpi functions
The sinpi functions
7.12.5.14
The tanpi functions
The tanpi functions
7.12.6
Hyperbolic functions
Hyperbolic functions
7.12.6.1
The acosh functions
The acosh functions
7.12.6.2
The asinh functions
The asinh functions
7.12.6.3
The atanh functions
The atanh functions
7.12.6.4
The cosh functions
The cosh functions
7.12.6.5
The sinh functions
The sinh functions
7.12.6.6
The tanh functions
The tanh functions
7.12.7
Exponential and logarithmic functions
Exponential and logarithmic functions
7.12.7.1
The exp functions
The exp functions
7.12.7.2
The exp10 functions
The exp10 functions
7.12.7.3
The exp10m1 functions
The exp10m1 functions
7.12.7.4
The exp2 functions
The exp2 functions
7.12.7.5
The exp2m1 functions
The exp2m1 functions
7.12.7.6
The expm1 functions
The expm1 functions
7.12.7.7
The frexp functions
The frexp functions
7.12.7.8
The ilogb functions
The ilogb functions
7.12.7.9
The ldexp functions
The ldexp functions
7.12.7.10
The llogb functions
The llogb functions
7.12.7.11
The log functions
The log functions
7.12.7.12
The log10 functions
The log10 functions
7.12.7.13
The log10p1 functions
The log10p1 functions
7.12.7.14
The log1p and logp1 functions
The log1p and logp1 functions
7.12.7.15
The log2 functions
The log2 functions
7.12.7.16
The log2p1 functions
The log2p1 functions
7.12.7.17
The logb functions
The logb functions
7.12.7.18
The modf functions
The modf functions
7.12.7.19
The scalbn and scalbln functions
The scalbn and scalbln functions
7.12.8
Power and absolute-value functions
Power and absolute-value functions
7.12.8.1
The cbrt functions
The cbrt functions
7.12.8.2
The compoundn functions
The compoundn functions
7.12.8.3
The fabs functions
The fabs functions
7.12.8.4
The hypot functions
The hypot functions
7.12.8.5
The pow functions
The pow functions
7.12.8.6
The pown functions
The pown functions
7.12.8.7
The powr functions
The powr functions
7.12.8.8
The rootn functions
The rootn functions
7.12.8.9
The rsqrt functions
The rsqrt functions
7.12.8.10
The sqrt functions
The sqrt functions
7.12.9
Error and gamma functions
Error and gamma functions
7.12.9.1
The erf functions
The erf functions
7.12.9.3
The lgamma functions
The lgamma functions
7.12.9.4
The tgamma functions
The tgamma functions
7.12.10
Nearest integer functions
Nearest integer functions
7.12.10.1
The ceil functions
The ceil functions
7.12.10.2
The floor functions
The floor functions
7.12.10.3
The nearbyint functions
The nearbyint functions
7.12.10.4
The rint functions
The rint functions
7.12.10.5
The lrint and llrint functions
The lrint and llrint functions
7.12.10.6
The round functions
The round functions
7.12.10.7
The lround and llround functions
The lround and llround functions
7.12.10.8
The roundeven functions
The roundeven functions
7.12.10.9
The trunc functions
The trunc functions
7.12.10.10
The fromfp and ufromfp functions
The fromfp and ufromfp functions
7.12.10.11
The fromfpx and ufromfpx ffunctions
The fromfpx and ufromfpx ffunctions
7.12.11
Remainder functions
Remainder functions
7.12.11.1
The fmod functions
The fmod functions
7.12.11.2
The remainder functions
The remainder functions
7.12.11.3
The remquo functions
The remquo functions
7.12.12
Manipulation functions
Manipulation functions
7.12.12.1
The copysign functions
The copysign functions
7.12.12.2
The nan functions
The nan functions
7.12.12.3
The nextafter functions
The nextafter functions
7.12.12.4
The nexttoward functions
The nexttoward functions
7.12.12.5
The nextup functions
The nextup functions
7.12.12.6
The nextdown functions
The nextdown functions
7.12.12.7
The canonicalize functions
The canonicalize functions
7.12.13
Maximum, minimum, and positive difference functions
Maximum, minimum, and positive difference functions
7.12.13.1
The fdim functions
The fdim functions
7.12.13.2
The fmax functions
The fmax functions
7.12.13.3
The fmin functions
The fmin functions
7.12.13.4
The fmaximum functions
The fmaximum functions
7.12.13.5
The fminimum functions
The fminimum functions
7.12.13.6
The fmaximum_mag functions
The fmaximum_mag functions
7.12.13.7
The fminimum_mag functions
The fminimum_mag functions
7.12.13.8
The fmaximum_num functions
The fmaximum_num functions
7.12.13.9
The fminimum_num functions
The fminimum_num functions
7.12.13.10
The fmaximum_mag_num functions
The fmaximum_mag_num functions
7.12.13.11
The fminimum_mag_num functions
The fminimum_mag_num functions
7.12.14
Fused multiply-add
Fused multiply-add
7.12.14.1
The fma functions
The fma functions
7.12.15
Functions that round result to narrower type
Functions that round result to narrower type
7.12.15.1
General
General
7.12.15.2
Add and round to narrower type
Add and round to narrower type
7.12.15.3
Subtract and round to narrower type
Subtract and round to narrower type
7.12.15.4
Multiply and round to narrower type
Multiply and round to narrower type
7.12.15.5
Divide and round to narrower type
Divide and round to narrower type
7.12.15.6
Fused multiply-add and round to narrower type
Fused multiply-add and round to narrower type
7.12.15.7
Square root rounded to narrower type
Square root rounded to narrower type
7.12.16
Quantum and quantum exponent functions
Quantum and quantum exponent functions
7.12.16.1
The quantizedN functions
The quantizedN functions
7.12.16.2
The samequantumdN functions
The samequantumdN functions
7.12.16.3
The quantumdN functions
The quantumdN functions
7.12.16.4
The llquantexpdN functions
The llquantexpdN functions
7.12.17
Decimal re-encoding functions
Decimal re-encoding functions
7.12.17.1
General
General
7.12.17.2
The encodedecdN functions
The encodedecdN functions
7.12.17.3
The decodedecdN functions
The decodedecdN functions
7.12.17.4
The encodebindN functions
The encodebindN functions
7.12.17.5
The decodebindN functions
The decodebindN functions
7.12.18
Comparison macros
Comparison macros
7.12.18.1
General
General
7.12.18.2
The isgreater macro
The isgreater macro
7.12.18.3
The isgreaterequal macro
The isgreaterequal macro
7.12.18.4
The isless macro
The isless macro
7.12.18.5
The islessequal macro
The islessequal macro
7.12.18.6
The islessgreater macro
The islessgreater macro
7.12.18.7
The isunordered macro
The isunordered macro
7.12.18.8
The iseqsig macro
The iseqsig macro
7.13
Non-local jumps
Non-local jumps
7.13.1
General
General
7.13.2
Save calling environment
Save calling environment
7.13.2.1
The setjmp macro
The setjmp macro
7.13.3
Restore calling environment
Restore calling environment
7.13.3.1
The longjmp function
The longjmp function
7.14
Signal handling
Signal handling
7.14.1
General
General
7.14.2
Specify signal handling
Specify signal handling
7.14.2.1
The signal function
The signal function
7.14.3
Send signal
Send signal
7.14.3.1
The raise function
The raise function
7.15
Alignment
Alignment
7.16
Varying arguments
Varying arguments
7.16.1
General
General
7.16.2
Varying argument access macros
Varying argument access macros
7.16.2.1
General
General
7.16.2.2
The va_arg macro
The va_arg macro
7.16.2.3
The va_copy macro
The va_copy macro
7.16.2.4
The va_end macro
The va_end macro
7.16.2.5
The va_start macro
The va_start macro
7.17
Atomics
Atomics
7.17.1
Introduction
Introduction
7.17.2
Initialization
Initialization
7.17.2.1
General
General
7.17.2.2
The atomic_init generic function
The atomic_init generic function
7.17.3
Order and consistency
Order and consistency
7.17.3.1
General
General
7.17.3.2
The kill_dependency macro
The kill_dependency macro
7.17.4
Fences
Fences
7.17.4.1
General
General
7.17.4.2
The atomic_thread_fence function
The atomic_thread_fence function
7.17.4.3
The atomic_signal_fence function
The atomic_signal_fence function
7.17.5
Lock-free property
Lock-free property
7.17.5.1
General
General
7.17.5.2
The atomic_is_lock_free generic function
The atomic_is_lock_free generic function
7.17.6
Atomic integer types
Atomic integer types
7.17.7
Operations on atomic types
Operations on atomic types
7.17.7.1
General
General
7.17.7.2
The atomic_store generic functions
The atomic_store generic functions
7.17.7.3
The atomic_load generic functions
The atomic_load generic functions
7.17.7.4
The atomic_exchange generic functions
The atomic_exchange generic functions
7.17.7.5
The atomic_compare_exchange generic functions
The atomic_compare_exchange generic functions
7.17.7.6
The atomic_fetch and modify generic functions
The atomic_fetch and modify generic functions
7.17.8
Atomic flag type and operations
Atomic flag type and operations
7.17.8.1
General
General
7.17.8.2
The atomic_flag_test_and_set functions
The atomic_flag_test_and_set functions
7.17.8.3
The atomic_flag_clear functions
The atomic_flag_clear functions
7.18
Bit and byte utilities
Bit and byte utilities
7.18.1
General
General
7.18.2
Endian
Endian
7.18.3
Count Leading Zeros
Count Leading Zeros
7.18.4
Count Leading Ones
Count Leading Ones
7.18.5
Count Trailing Zeros
Count Trailing Zeros
7.18.6
Count Trailing Ones
Count Trailing Ones
7.18.7
First Leading Zero
First Leading Zero
7.18.8
First Leading One
First Leading One
7.18.9
First Trailing Zero
First Trailing Zero
7.18.10
First Trailing One
First Trailing One
7.18.11
Count Zeros
Count Zeros
7.18.12
Count Ones
Count Ones
7.18.13
Single-bit Check
Single-bit Check
7.18.14
Bit Width
Bit Width
7.18.15
Bit Floor
Bit Floor
7.18.16
Bit Ceiling
Bit Ceiling
7.18.17
Rotate Left
Rotate Left
7.18.18
Rotate Right
Rotate Right
7.18.19
8-bit Memory Reversal
8-bit Memory Reversal
7.18.20
Exact-width 8-bit Memory Reversal
Exact-width 8-bit Memory Reversal
7.18.21
Endian-Aware 8-bit Load
Endian-Aware 8-bit Load
7.18.22
Endian-Aware 8-bit Store
Endian-Aware 8-bit Store
7.19
Boolean type and values
Boolean type and values
7.20
Checked Integer Arithmetic
Checked Integer Arithmetic
7.20.1
General
General
7.20.2
Checked Integer Operation Type-generic Macros
Checked Integer Operation Type-generic Macros
7.21
Array count
Array count
7.22
Common definitions
Common definitions
7.22.1
General
General
7.22.2
The unreachable macro
The unreachable macro
7.22.3
The nullptr_t type
The nullptr_t type
7.23
Integer types
Integer types
7.23.1
General
General
7.23.2
Integer types
Integer types
7.23.2.1
General
General
7.23.2.2
Exact-width integer types
Exact-width integer types
7.23.2.3
Minimum-width integer types
Minimum-width integer types
7.23.2.4
Fastest minimum-width integer types
Fastest minimum-width integer types
7.23.2.5
Integer types capable of holding object pointers
Integer types capable of holding object pointers
7.23.2.6
Greatest-width integer types
Greatest-width integer types
7.23.3
Widths of specified-width integer types
Widths of specified-width integer types
7.23.3.1
General
General
7.23.3.2
Width of exact-width integer types
Width of exact-width integer types
7.23.3.3
Width of minimum-width integer types
Width of minimum-width integer types
7.23.3.4
Width of fastest minimum-width integer types
Width of fastest minimum-width integer types
7.23.3.5
Width of integer types capable of holding object pointers
Width of integer types capable of holding object pointers
7.23.3.6
Width of greatest-width integer types
Width of greatest-width integer types
7.23.4
Width of other integer types
Width of other integer types
7.23.4.1
General
General
7.23.4.2
Width of ptrdiff_t
Width of ptrdiff_t
7.23.4.3
Width of sig_atomic_t
Width of sig_atomic_t
7.23.4.4
Width of size_t
Width of size_t
7.23.4.5
Width of wchar_t
Width of wchar_t
7.23.4.6
Width of wint_t
Width of wint_t
7.23.5
Macros for constants of integer type
Macros for constants of integer type
7.23.5.1
General
General
7.23.5.2
Macros for minimum-width constants
Macros for minimum-width constants
7.23.5.3
Macros for greatest-width constants
Macros for greatest-width constants
7.23.6
Maximal and minimal values of integer types
Maximal and minimal values of integer types
7.24
Input/output
Input/output
7.24.1
Introduction
Introduction
7.24.2
Streams
Streams
7.24.3
Files
Files
7.24.4
Operations on files
Operations on files
7.24.4.1
The remove function
The remove function
7.24.4.2
The rename function
The rename function
7.24.4.3
The tmpfile function
The tmpfile function
7.24.4.4
The tmpnam function
The tmpnam function
7.24.5
File access functions
File access functions
7.24.5.1
The fclose function
The fclose function
7.24.5.2
The fflush function
The fflush function
7.24.5.3
The fopen function
The fopen function
7.24.5.4
The freopen function
The freopen function
7.24.5.5
The setbuf function
The setbuf function
7.24.5.6
The setvbuf function
The setvbuf function
7.24.6
Formatted input/output functions
Formatted input/output functions
7.24.6.1
General
General
7.24.6.2
The fprintf function
The fprintf function
7.24.6.3
The fscanf function
The fscanf function
7.24.6.4
The printf function
The printf function
7.24.6.5
The scanf function
The scanf function
7.24.6.6
The snprintf function
The snprintf function
7.24.6.7
The sprintf function
The sprintf function
7.24.6.8
The sscanf function
The sscanf function
7.24.6.9
The vfprintf function
The vfprintf function
7.24.6.10
The vfscanf function
The vfscanf function
7.24.6.11
The vprintf function
The vprintf function
7.24.6.12
The vscanf function
The vscanf function
7.24.6.13
The vsnprintf function
The vsnprintf function
7.24.6.14
The vsprintf function
The vsprintf function
7.24.6.15
The vsscanf function
The vsscanf function
7.24.7
Character input/output functions
Character input/output functions
7.24.7.1
The fgetc function
The fgetc function
7.24.7.2
The fgets function
The fgets function
7.24.7.3
The fputc function
The fputc function
7.24.7.4
The fputs function
The fputs function
7.24.7.5
The getc function
The getc function
7.24.7.6
The getchar function
The getchar function
7.24.7.7
The putc function
The putc function
7.24.7.8
The putchar function
The putchar function
7.24.7.9
The puts function
The puts function
7.24.7.10
The ungetc function
The ungetc function
7.24.8
Direct input/output functions
Direct input/output functions
7.24.8.1
The fread function
The fread function
7.24.8.2
The fwrite function
The fwrite function
7.24.9
File positioning functions
File positioning functions
7.24.9.1
The fgetpos function
The fgetpos function
7.24.9.2
The fseek function
The fseek function
7.24.9.3
The fsetpos function
The fsetpos function
7.24.9.4
The ftell function
The ftell function
7.24.9.5
The rewind function
The rewind function
7.24.10
Error-handling functions
Error-handling functions
7.24.10.1
The clearerr function
The clearerr function
7.24.10.2
The feof function
The feof function
7.24.10.3
The ferror function
The ferror function
7.24.10.4
The perror function
The perror function
7.25
General utilities
General utilities
7.25.1
General
General
7.25.2
Numeric conversion functions
Numeric conversion functions
7.25.2.1
General
General
7.25.2.2
The atof function
The atof function
7.25.2.3
The atoi, atol, and atoll functions
The atoi, atol, and atoll functions
7.25.2.4
The strfromd, strfromf, and strfroml functions
The strfromd, strfromf, and strfroml functions
7.25.2.5
The strfromdN functions
The strfromdN functions
7.25.2.6
The strtod, strtof, and strtold functions
The strtod, strtof, and strtold functions
7.25.2.7
The strtodN functions
The strtodN functions
7.25.2.8
The strtol, strtoll, strtoul, and strtoull functions
The strtol, strtoll, strtoul, and strtoull functions
7.25.3
Pseudo-random sequence generation functions
Pseudo-random sequence generation functions
7.25.3.1
The rand function
The rand function
7.25.3.2
The srand function
The srand function
7.25.4
Memory management functions
Memory management functions
7.25.4.1
General
General
7.25.4.2
The malloc function
The malloc function
7.25.4.3
The calloc function
The calloc function
7.25.4.4
The aligned_alloc function
The aligned_alloc function
7.25.4.5
The realloc function
The realloc function
7.25.4.6
The free function
The free function
7.25.4.7
The free_sized function
The free_sized function
7.25.4.8
The free_aligned_sized function
The free_aligned_sized function
7.25.5
Communication with the environment
Communication with the environment
7.25.5.1
The abort function
The abort function
7.25.5.2
The atexit function
The atexit function
7.25.5.3
The at_quick_exit function
The at_quick_exit function
7.25.5.4
The exit function
The exit function
7.25.5.5
The _Exit function
The _Exit function
7.25.5.6
The getenv function
The getenv function
7.25.5.7
The quick_exit function
The quick_exit function
7.25.5.8
The system function
The system function
7.25.6
Searching and sorting utilities
Searching and sorting utilities
7.25.6.1
General
General
7.25.6.2
The bsearch generic function
The bsearch generic function
7.25.6.3
The qsort function
The qsort function
7.25.7
Integer arithmetic functions
Integer arithmetic functions
7.25.7.1
The abs, uabs, labs, ulabs, llabs, and ullabs functions
The abs, uabs, labs, ulabs, llabs, and ullabs functions
7.25.7.2
The div, ldiv, and lldiv functions
The div, ldiv, and lldiv functions
7.25.8
Multibyte/wide character conversion functions
Multibyte/wide character conversion functions
7.25.8.1
General
General
7.25.8.2
The mblen function
The mblen function
7.25.8.3
The mbtowc function
The mbtowc function
7.25.8.4
The wctomb function
The wctomb function
7.25.9
Multibyte/wide string conversion functions
Multibyte/wide string conversion functions
7.25.9.1
General
General
7.25.9.2
The mbstowcs function
The mbstowcs function
7.25.9.3
The wcstombs function
The wcstombs function
7.25.10
Alignment of memory
Alignment of memory
7.25.10.1
The memalignment function
The memalignment function
7.26
Text transcoding utilities
Text transcoding utilities
7.26.1
General
General
7.26.2
Single Unit Sized Conversion Functions
Single Unit Sized Conversion Functions
7.26.3
Multi Unit Sized Conversion Functions
Multi Unit Sized Conversion Functions
7.27
_Noreturn
_Noreturn
7.28
String handling
String handling
7.28.1
String function conventions
String function conventions
7.28.2
Copying functions
Copying functions
7.28.2.1
The memcpy function
The memcpy function
7.28.2.2
The memccpy function
The memccpy function
7.28.2.3
The memmove function
The memmove function
7.28.2.4
The strcpy function
The strcpy function
7.28.2.5
The strncpy function
The strncpy function
7.28.2.6
The strdup function
The strdup function
7.28.2.7
The strndup function
The strndup function
7.28.3
Concatenation functions
Concatenation functions
7.28.3.1
The strcat function
The strcat function
7.28.3.2
The strncat function
The strncat function
7.28.4
Comparison functions
Comparison functions
7.28.4.1
General
General
7.28.4.2
The memcmp function
The memcmp function
7.28.4.3
The strcmp function
The strcmp function
7.28.4.4
The strcoll function
The strcoll function
7.28.4.5
The strncmp function
The strncmp function
7.28.4.6
The strxfrm function
The strxfrm function
7.28.5
Search functions
Search functions
7.28.5.1
Introduction
Introduction
7.28.5.2
The memchr generic function
The memchr generic function
7.28.5.3
The strchr generic function
The strchr generic function
7.28.5.4
The strcspn function
The strcspn function
7.28.5.5
The strpbrk generic function
The strpbrk generic function
7.28.5.6
The strrchr generic function
The strrchr generic function
7.28.5.7
The strspn function
The strspn function
7.28.5.8
The strstr generic function
The strstr generic function
7.28.5.9
The strtok function
The strtok function
7.28.6
Miscellaneous functions
Miscellaneous functions
7.28.6.1
The memset function
The memset function
7.28.6.2
The memset_explicit function
The memset_explicit function
7.28.6.3
The strerror function
The strerror function
7.28.6.4
The strlen function
The strlen function
7.28.6.5
The strnlen function
The strnlen function
7.29
Type-generic math
Type-generic math
7.30
Threads
Threads
7.30.1
Introduction
Introduction
7.30.2
Initialization functions
Initialization functions
7.30.2.1
The call_once function
The call_once function
7.30.3
Condition variable functions
Condition variable functions
7.30.3.1
The cnd_broadcast function
The cnd_broadcast function
7.30.3.2
The cnd_destroy function
The cnd_destroy function
7.30.3.3
The cnd_init function
The cnd_init function
7.30.3.4
The cnd_signal function
The cnd_signal function
7.30.3.5
The cnd_timedwait function
The cnd_timedwait function
7.30.3.6
The cnd_wait function
The cnd_wait function
7.30.4
Mutex functions
Mutex functions
7.30.4.1
General
General
7.30.4.2
The mtx_destroy function
The mtx_destroy function
7.30.4.3
The mtx_init function
The mtx_init function
7.30.4.4
The mtx_lock function
The mtx_lock function
7.30.4.5
The mtx_timedlock function
The mtx_timedlock function
7.30.4.6
The mtx_trylock function
The mtx_trylock function
7.30.4.7
The mtx_unlock function
The mtx_unlock function
7.30.5
Thread functions
Thread functions
7.30.5.1
The thrd_create function
The thrd_create function
7.30.5.2
The thrd_current function
The thrd_current function
7.30.5.3
The thrd_detach function
The thrd_detach function
7.30.5.4
The thrd_equal function
The thrd_equal function
7.30.5.5
The thrd_exit function
The thrd_exit function
7.30.5.6
The thrd_join function
The thrd_join function
7.30.5.7
The thrd_sleep function
The thrd_sleep function
7.30.5.8
The thrd_yield function
The thrd_yield function
7.30.6
Thread-specific storage functions
Thread-specific storage functions
7.30.6.1
The tss_create function
The tss_create function
7.30.6.2
The tss_delete function
The tss_delete function
7.30.6.3
The tss_get function
The tss_get function
7.30.6.4
The tss_set function
The tss_set function
7.31
Date and time
Date and time
7.31.1
Components of time
Components of time
7.31.2
Time manipulation functions
Time manipulation functions
7.31.2.1
The clock function
The clock function
7.31.2.2
The difftime function
The difftime function
7.31.2.3
The mktime function
The mktime function
7.31.2.4
The timegm function
The timegm function
7.31.2.5
The time function
The time function
7.31.2.6
The timespec_get function
The timespec_get function
7.31.2.7
The timespec_getres function
The timespec_getres function
7.31.3
Time conversion functions
Time conversion functions
7.31.3.1
General
General
7.31.3.2
The asctime function
The asctime function
7.31.3.3
The ctime function
The ctime function
7.31.3.4
The gmtime functions
The gmtime functions
7.31.3.5
The localtime functions
The localtime functions
7.31.3.6
The strftime function
The strftime function
7.32
Unicode utilities
Unicode utilities
7.32.1
General
General
7.32.2
Restartable multibyte/wide character conversion functions
Restartable multibyte/wide character conversion functions
7.32.2.1
General
General
7.32.2.2
The mbrtoc8 function
The mbrtoc8 function
7.32.2.3
The c8rtomb function
The c8rtomb function
7.32.2.4
The mbrtoc16 function
The mbrtoc16 function
7.32.2.5
The c16rtomb function
The c16rtomb function
7.32.2.6
The mbrtoc32 function
The mbrtoc32 function
7.32.2.7
The c32rtomb function
The c32rtomb function
7.33
Extended multibyte and wide character utilities
Extended multibyte and wide character utilities
7.33.1
Introduction
Introduction
7.33.2
Formatted wide character input/output functions
Formatted wide character input/output functions
7.33.2.1
General
General
7.33.2.2
The fwprintf function
The fwprintf function
7.33.2.3
The fwscanf function
The fwscanf function
7.33.2.4
The swprintf function
The swprintf function
7.33.2.5
The swscanf function
The swscanf function
7.33.2.6
The vfwprintf function
The vfwprintf function
7.33.2.7
The vfwscanf function
The vfwscanf function
7.33.2.8
The vswprintf function
The vswprintf function
7.33.2.9
The vswscanf function
The vswscanf function
7.33.2.10
The vwprintf function
The vwprintf function
7.33.2.11
The vwscanf function
The vwscanf function
7.33.2.12
The wprintf function
The wprintf function
7.33.2.13
The wscanf function
The wscanf function
7.33.3
Wide character input/output functions
Wide character input/output functions
7.33.3.1
The fgetwc function
The fgetwc function
7.33.3.2
The fgetws function
The fgetws function
7.33.3.3
The fputwc function
The fputwc function
7.33.3.4
The fputws function
The fputws function
7.33.3.5
The fwide function
The fwide function
7.33.3.6
The getwc function
The getwc function
7.33.3.7
The getwchar function
The getwchar function
7.33.3.8
The putwc function
The putwc function
7.33.3.9
The putwchar function
The putwchar function
7.33.3.10
The ungetwc function
The ungetwc function
7.33.4
General wide string utilities
General wide string utilities
7.33.4.1
General
General
7.33.4.2
Wide string numeric conversion functions
Wide string numeric conversion functions
7.33.4.2.1
General
General
7.33.4.2.2
The wcstod, wcstof, and wcstold functions
The wcstod, wcstof, and wcstold functions
7.33.4.2.3
The wcstodN functions
The wcstodN functions
7.33.4.2.4
The wcstol, wcstoll, wcstoul, and wcstoull functions
The wcstol, wcstoll, wcstoul, and wcstoull functions
7.33.4.3
Wide string copying functions
Wide string copying functions
7.33.4.3.1
The wcscpy function
The wcscpy function
7.33.4.3.2
The wcsncpy function
The wcsncpy function
7.33.4.3.3
The wmemcpy function
The wmemcpy function
7.33.4.3.4
The wmemmove function
The wmemmove function
7.33.4.4
Wide string concatenation functions
Wide string concatenation functions
7.33.4.4.1
The wcscat function
The wcscat function
7.33.4.4.2
The wcsncat function
The wcsncat function
7.33.4.5
Wide string comparison functions
Wide string comparison functions
7.33.4.5.1
General
General
7.33.4.5.2
The wcscmp function
The wcscmp function
7.33.4.5.3
The wcscoll function
The wcscoll function
7.33.4.5.4
The wcsncmp function
The wcsncmp function
7.33.4.5.5
The wcsxfrm function
The wcsxfrm function
7.33.4.5.6
The wmemcmp function
The wmemcmp function
7.33.4.6
Wide string search functions
Wide string search functions
7.33.4.6.1
Introduction
Introduction
7.33.4.6.2
The wcschr generic function
The wcschr generic function
7.33.4.6.3
The wcscspn function
The wcscspn function
7.33.4.6.4
The wcspbrk generic function
The wcspbrk generic function
7.33.4.6.5
The wcsrchr generic function
The wcsrchr generic function
7.33.4.6.6
The wcsspn function
The wcsspn function
7.33.4.6.7
The wcsstr generic function
The wcsstr generic function
7.33.4.6.8
The wcstok function
The wcstok function
7.33.4.6.9
The wmemchr generic function
The wmemchr generic function
7.33.4.7
Miscellaneous functions
Miscellaneous functions
7.33.4.7.1
The wcslen function
The wcslen function
7.33.4.7.2
The wcsnlen function
The wcsnlen function
7.33.4.7.3
The wmemset function
The wmemset function
7.33.5
Wide character time conversion functions
Wide character time conversion functions
7.33.5.1
The wcsftime function
The wcsftime function
7.33.6
Extended multibyte/wide character conversion utilities
Extended multibyte/wide character conversion utilities
7.33.6.1
General
General
7.33.6.2
Single-byte/wide character conversion functions
Single-byte/wide character conversion functions
7.33.6.2.1
The btowc function
The btowc function
7.33.6.2.2
The wctob function
The wctob function
7.33.6.3
Conversion state functions
Conversion state functions
7.33.6.3.1
The mbsinit function
The mbsinit function
7.33.6.4
Restartable multibyte/wide character conversion functions
Restartable multibyte/wide character conversion functions
7.33.6.4.1
General
General
7.33.6.4.2
The mbrlen function
The mbrlen function
7.33.6.4.3
The mbrtowc function
The mbrtowc function
7.33.6.4.4
The wcrtomb function
The wcrtomb function
7.33.6.5
Restartable multibyte/wide string conversion functions
Restartable multibyte/wide string conversion functions
7.33.6.5.1
General
General
7.33.6.5.2
The mbsrtowcs function
The mbsrtowcs function
7.33.6.5.3
The wcsrtombs function
The wcsrtombs function
7.34
Wide character classification and mapping utilities
Wide character classification and mapping utilities
7.34.1
Introduction
Introduction
7.34.2
Wide character classification utilities
Wide character classification utilities
7.34.2.1
General
General
7.34.2.2
Wide character classification functions
Wide character classification functions
7.34.2.2.1
General
General
7.34.2.2.2
The iswalnum function
The iswalnum function
7.34.2.2.3
The iswalpha function
The iswalpha function
7.34.2.2.4
The iswblank function
The iswblank function
7.34.2.2.5
The iswcntrl function
The iswcntrl function
7.34.2.2.6
The iswdigit function
The iswdigit function
7.34.2.2.7
The iswgraph function
The iswgraph function
7.34.2.2.8
The iswlower function
The iswlower function
7.34.2.2.9
The iswprint function
The iswprint function
7.34.2.2.10
The iswpunct function
The iswpunct function
7.34.2.2.11
The iswspace function
The iswspace function
7.34.2.2.12
The iswupper function
The iswupper function
7.34.2.2.13
The iswxdigit function
The iswxdigit function
7.34.2.3
Extensible wide character classification functions
Extensible wide character classification functions
7.34.2.3.1
General
General
7.34.2.3.2
The iswctype function
The iswctype function
7.34.2.3.3
The wctype function
The wctype function
7.34.3
Wide character case mapping utilities
Wide character case mapping utilities
7.34.3.1
Wide character case mapping functions
Wide character case mapping functions
7.34.3.1.1
The towlower function
The towlower function
7.34.3.1.2
The towupper function
The towupper function
7.34.3.2
Extensible wide character case mapping functions
Extensible wide character case mapping functions
7.34.3.2.1
General
General
7.34.3.2.2
The towctrans function
The towctrans function
7.34.3.2.3
The wctrans function
The wctrans function
7.35
Future library directions
Future library directions
7.35.1
General
General
7.35.2
Complex arithmetic
Complex arithmetic
7.35.3
Character handling
Character handling
7.35.4
Errors
Errors
7.35.5
Floating-point environment
Floating-point environment
7.35.6
Characteristics of floating types
Characteristics of floating types
7.35.7
Format conversion of integer types
Format conversion of integer types
7.35.8
Localization
Localization
7.35.9
Mathematics
Mathematics
7.35.10
Signal handling
Signal handling
7.35.11
Atomics
Atomics
7.35.12
Boolean type and values
Boolean type and values
7.35.13
Bit and byte utilities
Bit and byte utilities
7.35.14
Checked Arithmetic Functions
Checked Arithmetic Functions
7.35.15
Integer types
Integer types
7.35.16
Input/output
Input/output
7.35.17
General utilities
General utilities
7.35.18
String handling
String handling
7.35.19
Date and time
Date and time
7.35.20
Threads
Threads
7.35.21
Extended multibyte and wide character utilities
Extended multibyte and wide character utilities
7.35.22
Wide character classification and mapping utilities
Wide character classification and mapping utilities
A
Language syntax summary
Language syntax summary
A.1
Notation
Notation
A.2
Lexical grammar
Lexical grammar
A.2.1
Lexical elements
Lexical elements
A.2.2
Keywords
Keywords
A.2.3
Identifiers
Identifiers
A.2.4
Universal character names
Universal character names
A.2.5
Constants
Constants
A.2.6
String literals
String literals
A.2.7
Punctuators
Punctuators
A.2.8
Header names
Header names
A.2.9
Preprocessing numbers
Preprocessing numbers
A.3
Phrase structure grammar
Phrase structure grammar
A.3.1
Expressions
Expressions
A.3.2
Declarations
Declarations
A.3.3
Statements
Statements
A.3.4
External definitions
External definitions
A.4
Preprocessing directives
Preprocessing directives
A.5
Floating-point subject sequence
Floating-point subject sequence
A.5.1
NaN char sequence
NaN char sequence
A.5.2
NaN wchar_t sequence
NaN wchar_t sequence
A.6
Decimal floating-point subject sequence
Decimal floating-point subject sequence
A.6.1
NaN decimal char sequence
NaN decimal char sequence
A.6.2
NaN decimal wchar_t sequence
NaN decimal wchar_t sequence
B
Library summary
Library summary
B.1
Diagnostics
Diagnostics
B.2
Complex
Complex
B.3
Character handling
Character handling
B.4
Errors
Errors
B.5
Floating-point environment
Floating-point environment
B.6
Characteristics of floating types
Characteristics of floating types
B.6.1
Macros
Macros
B.6.2
Characteristics of decimal floating types
Characteristics of decimal floating types
B.6.3
Characteristics of ISO/IEC 60559 interchange and extended types
Characteristics of ISO/IEC 60559 interchange and extended types
B.7
Format conversion of integer types
Format conversion of integer types
B.8
Alternative spellings
Alternative spellings
B.9
Characteristics of integer types
Characteristics of integer types
B.10
Localization
Localization
B.11
Mathematics
Mathematics
B.12
Non-local jumps
Non-local jumps
B.13
Signal handling
Signal handling
B.14
Alignment
Alignment
B.15
Varying arguments
Varying arguments
B.16
Atomics
Atomics
B.17
Bit and byte utilities
Bit and byte utilities
B.18
Boolean type and values
Boolean type and values
B.19
Checked Integer Operations
Checked Integer Operations
B.20
Array count
Array count
B.21
Common definitions
Common definitions
B.22
Integer types
Integer types
B.23
Input/output
Input/output
B.24
General utilities
General utilities
B.25
Text transcoding utilities
Text transcoding utilities
B.26
_Noreturn
_Noreturn
B.27
String handling
String handling
B.28
Type-generic math
Type-generic math
B.29
Threads
Threads
B.30
Date and time
Date and time
B.31
Unicode utilities
Unicode utilities
B.32
Extended multibyte/wide character utilities
Extended multibyte/wide character utilities
B.33
Wide character classification and mapping utilities
Wide character classification and mapping utilities
C
Sequence points
Sequence points
C.1
Known Sequence Points
Known Sequence Points
D
Universal character names for identifiers
Universal character names for identifiers
D.1
Introduction
Introduction
D.2
Default Identifiers
Default Identifiers
D.2.1
General
General
D.2.2
Stable Identifiers
Stable Identifiers
D.3
Immutable Identifiers
Immutable Identifiers
D.4
Pattern_White_Space and Pattern_Syntax Characters
Pattern_White_Space and Pattern_Syntax Characters
D.5
Equivalent Normalized Identifiers
Equivalent Normalized Identifiers
D.6
Equivalent Case-Insensitive Identifiers
Equivalent Case-Insensitive Identifiers
D.7
Filtered Normalized Identifiers
Filtered Normalized Identifiers
D.8
Filtered Case-Insensitive Identifiers
Filtered Case-Insensitive Identifiers
D.9
Hashtag Identifiers
Hashtag Identifiers
E
Implementation limits
Implementation limits
E.1
Introduction
Introduction
E.2
Minimum values
Minimum values
F
ISO/IEC 60559 floating-point arithmetic
ISO/IEC 60559 floating-point arithmetic
F.1
Introduction
Introduction
F.2
Types
Types
F.2.1
General
General
F.2.2
Infinities and NaNs
Infinities and NaNs
F.3
Operations
Operations
F.4
Floating to integer conversion
Floating to integer conversion
F.5
Conversions between binary floating types and decimal character sequences
Conversions between binary floating types and decimal character sequences
F.6
The return statement
The return statement
F.7
Contracted expressions
Contracted expressions
F.8
Floating-point environment
Floating-point environment
F.8.1
General
General
F.8.2
Environment management
Environment management
F.8.3
Translation
Translation
F.8.4
Execution
Execution
F.8.5
Constant expressions
Constant expressions
F.8.6
Initialization
Initialization
F.8.7
Changing the environment
Changing the environment
F.9
Optimization
Optimization
F.9.1
General
General
F.9.2
Global transformations
Global transformations
F.9.3
Expression transformations
Expression transformations
F.9.4
Relational operators
Relational operators
F.9.5
Constant arithmetic
Constant arithmetic
F.10
Mathematics and
Mathematics and
F.10.1
General
General
F.10.2
Trigonometric functions
Trigonometric functions
F.10.2.1
The acos functions
The acos functions
F.10.2.2
The asin functions
The asin functions
F.10.2.3
The atan functions
The atan functions
F.10.2.4
The atan2 functions
The atan2 functions
F.10.2.5
The cos functions
The cos functions
F.10.2.6
The sin functions
The sin functions
F.10.2.7
The tan functions
The tan functions
F.10.2.8
The acospi functions
The acospi functions
F.10.2.9
The asinpi functions
The asinpi functions
F.10.2.10
The atanpi functions
The atanpi functions
F.10.2.11
The atan2pi functions
The atan2pi functions
F.10.2.12
The cospi functions
The cospi functions
F.10.2.13
The sinpi functions
The sinpi functions
F.10.2.14
The tanpi functions
The tanpi functions
F.10.3.3
The atanh functions
The atanh functions
F.10.3.4
The cosh functions
The cosh functions
F.10.3.5
The sinh functions
The sinh functions
F.10.3.6
The tanh functions
The tanh functions
F.10.4
Exponential and logarithmic functions
Exponential and logarithmic functions
F.10.4.1
The exp functions
The exp functions
F.10.4.2
The exp10 functions
The exp10 functions
F.10.4.3
The exp10m1 functions
The exp10m1 functions
F.10.4.4
The exp2 functions
The exp2 functions
F.10.4.5
The exp2m1 functions
The exp2m1 functions
F.10.4.6
The expm1 functions
The expm1 functions
F.10.4.7
The frexp functions
The frexp functions
F.10.4.8
The ilogb functions
The ilogb functions
F.10.4.9
The ldexp functions
The ldexp functions
F.10.4.10
The llogb functions
The llogb functions
F.10.4.11
The log functions
The log functions
F.10.4.12
The log10 functions
The log10 functions
F.10.4.13
The log10p1 functions
The log10p1 functions
F.10.4.14
The log1p and logp1 functions
The log1p and logp1 functions
F.10.4.15
The log2 functions
The log2 functions
F.10.4.16
The log2p1 functions
The log2p1 functions
F.10.4.17
The logb functions
The logb functions
F.10.4.18
The modf functions
The modf functions
F.10.4.19
The scalbn and scalbln functions
The scalbn and scalbln functions
F.10.5
Power and absolute value functions
Power and absolute value functions
F.10.5.1
The cbrt functions
The cbrt functions
F.10.5.2
The compoundn functions
The compoundn functions
F.10.5.3
The fabs functions
The fabs functions
F.10.5.4
The hypot functions
The hypot functions
F.10.5.5
The pow functions
The pow functions
F.10.5.6
The pown functions
The pown functions
F.10.5.7
The powr functions
The powr functions
F.10.5.8
The rootn functions
The rootn functions
F.10.5.9
The rsqrt functions
The rsqrt functions
F.10.5.10
The sqrt functions
The sqrt functions
F.10.6
Error and gamma functions
Error and gamma functions
F.10.6.1
The erf functions
The erf functions
F.10.6.2
The erfc functions
The erfc functions
F.10.6.3
The lgamma functions
The lgamma functions
F.10.6.4
The tgamma functions
The tgamma functions
F.10.7
Nearest integer functions
Nearest integer functions
F.10.7.1
The ceil functions
The ceil functions
F.10.7.2
The floor functions
The floor functions
F.10.7.3
The nearbyint functions
The nearbyint functions
F.10.7.4
The rint functions
The rint functions
F.10.7.5
The lrint and llrint functions
The lrint and llrint functions
F.10.7.6
The round functions
The round functions
F.10.7.7
The lround and llround functions
The lround and llround functions
F.10.7.8
The roundeven functions
The roundeven functions
F.10.7.9
The trunc functions
The trunc functions
F.10.7.10
The fromfp and ufromfp functions
The fromfp and ufromfp functions
F.10.7.11
The fromfpx and ufromfpx functions
The fromfpx and ufromfpx functions
F.10.8
Remainder functions
Remainder functions
F.10.8.1
The fmod functions
The fmod functions
F.10.8.2
The remainder functions
The remainder functions
F.10.8.3
The remquo functions
The remquo functions
F.10.9
Manipulation functions
Manipulation functions
F.10.9.1
The copysign functions
The copysign functions
F.10.9.2
The nan functions
The nan functions
F.10.9.3
The nextafter functions
The nextafter functions
F.10.9.4
The nexttoward functions
The nexttoward functions
F.10.9.5
The nextup functions
The nextup functions
F.10.9.6
The nextdown functions
The nextdown functions
F.10.9.7
The canonicalize functions
The canonicalize functions
F.10.10
Maximum, minimum, and positive difference functions
Maximum, minimum, and positive difference functions
F.10.10.1
The fdim functions
The fdim functions
F.10.10.2
The fmax functions
The fmax functions
F.10.10.3
The fmin functions
The fmin functions
F.10.10.4
The fmaximum, fminimum, fmaximum_mag, and fminimum_mag functions
The fmaximum, fminimum, fmaximum_mag, and fminimum_mag functions
F.10.10.5
The fmaximum_num, fminimum_num, fmaximum_mag_num, and fminimum_mag_num func-
The fmaximum_num, fminimum_num, fmaximum_mag_num, and fminimum_mag_num func-
F.10.11
Fused multiply-add
Fused multiply-add
F.10.11.1
The fma functions
The fma functions
F.10.12
Functions that round result to narrower type
Functions that round result to narrower type
F.10.13
Total order functions
Total order functions
F.10.13.1
General
General
F.10.13.2
The totalorder functions
The totalorder functions
F.10.13.3
The totalordermag functions
The totalordermag functions
F.10.14
Payload functions
Payload functions
F.10.14.1
General
General
F.10.14.2
The getpayload functions
The getpayload functions
F.10.14.3
The setpayload functions
The setpayload functions
F.10.14.4
The setpayloadsig functions
The setpayloadsig functions
F.10.15
Comparison macros
Comparison macros
F.10.15.1
General
General
F.10.15.2
The iseqsig macro
The iseqsig macro
G
ISO/IEC 60559-compatible complex arithmetic
ISO/IEC 60559-compatible complex arithmetic
G.1
Introduction
Introduction
G.2
Conventions
Conventions
G.3
Binary operators
Binary operators
G.3.1
General
General
G.3.2
Multiplicative operators
Multiplicative operators
G.4
Complex arithmetic
Complex arithmetic
G.4.1
General
General
G.4.2
Trigonometric functions
Trigonometric functions
G.4.2.1
The cacos functions
The cacos functions
G.4.3
Hyperbolic functions
Hyperbolic functions
G.4.3.1
The cacosh functions
The cacosh functions
G.4.3.2
The casinh functions
The casinh functions
G.4.3.3
The catanh functions
The catanh functions
G.4.3.4
The ccosh functions
The ccosh functions
G.4.3.5
The csinh functions
The csinh functions
G.4.3.6
The ctanh functions
The ctanh functions
G.4.4
Exponential and logarithmic functions
Exponential and logarithmic functions
G.4.4.1
The cexp functions
The cexp functions
G.4.4.2
The clog functions
The clog functions
G.4.5
Power and absolute-value functions
Power and absolute-value functions
G.4.5.1
The cpow functions
The cpow functions
G.4.5.2
The csqrt functions
The csqrt functions
H
ISO/IEC 60559 interchange and extended types
ISO/IEC 60559 interchange and extended types
H.1
Introduction
Introduction
H.2
Types
Types
H.2.1
General
General
H.2.2
Interchange floating types
Interchange floating types
H.2.3
Non-arithmetic interchange formats
Non-arithmetic interchange formats
H.2.4
Extended floating types
Extended floating types
H.2.5
Classification of real floating types
Classification of real floating types
H.2.6
Complex types
Complex types
H.3
Characteristics in
Characteristics in
H.4
Conversions
Conversions
H.4.1
General
General
H.4.2
Real floating and integer
Real floating and integer
H.4.3
Usual arithmetic conversions
Usual arithmetic conversions
H.4.4
Arithmetic and non-arithmetic formats
Arithmetic and non-arithmetic formats
H.5
Lexical Elements
Lexical Elements
H.5.1
Keywords
Keywords
H.5.2
Literals
Literals
H.6
Expressions
Expressions
H.7
Declarations
Declarations
H.8
Identifiers in standard headers
Identifiers in standard headers
H.9
Complex arithmetic
Complex arithmetic
H.10
Floating-point environment
Floating-point environment
H.11
Mathematics
Mathematics
H.11.1
General
General
H.11.2
Macros
Macros
H.11.3
Functions
Functions
H.11.4
Encoding conversion functions
Encoding conversion functions
H.11.4.1
General
General
H.11.4.2
Encode and decode functions
Encode and decode functions
H.11.4.2.1
General
General
H.11.4.2.2
The encodefN functions
The encodefN functions
H.11.4.2.3
The decodefN functions
The decodefN functions
H.11.4.3
Encoding-to-encoding conversion functions
Encoding-to-encoding conversion functions
H.11.4.3.1
General
General
H.11.4.3.2
The fMencfN functions
The fMencfN functions
H.11.4.3.3
The dMencdecdN and dMencbindN functions
The dMencdecdN and dMencbindN functions
H.12
Numeric conversion functions
Numeric conversion functions
H.12.1
General
General
H.12.2
String from floating
String from floating
H.12.3
String to floating
String to floating
H.12.4
String from encoding
String from encoding
H.12.4.1
General
General
H.12.4.2
The strfromencfN functions
The strfromencfN functions
H.12.4.3
The strfromencdecdN and strfromencbindN functions
The strfromencdecdN and strfromencbindN functions
H.12.5
String to encoding
String to encoding
H.12.5.1
General
General
H.12.5.2
The strtoencfN functions
The strtoencfN functions
H.12.5.3
The wcstoencfN functions
The wcstoencfN functions
H.12.5.4
The strtoencdecdN and strtoencbindN functions
The strtoencdecdN and strtoencbindN functions
H.12.5.5
The wcstoencdecdN and wcstoencbindN functions
The wcstoencdecdN and wcstoencbindN functions
H.13
Type-generic macros
Type-generic macros
I
Unused
Unused
I.1
Introduction
Introduction
J
Portability issues
Portability issues
J.1
Unspecified behavior
Unspecified behavior
J.2
Undefined behavior
Undefined behavior
J.3
Implementation-defined behavior
Implementation-defined behavior
J.3.1
General
General
J.3.2
Translation
Translation
J.3.3
Environment
Environment
J.3.4
Identifiers
Identifiers
J.3.5
Characters
Characters
J.3.6
Integers
Integers
J.3.7
Floating-point
Floating-point
J.3.8
Constant expressions
Constant expressions
J.3.9
Arrays and pointers
Arrays and pointers
J.3.10
Hints
Hints
J.3.11
Structures, unions, enumerations, and bit-fields
Structures, unions, enumerations, and bit-fields
J.3.12
Qualifiers
Qualifiers
J.3.13
Types
Types
J.3.14
Preprocessing directives
Preprocessing directives
J.3.15
Library functions
Library functions
J.3.16
Architecture
Architecture
J.4
Locale-specific behavior
Locale-specific behavior
J.5
Common extensions
Common extensions
J.5.1
General
General
J.5.2
Environment arguments
Environment arguments
J.5.3
Specialized identifiers
Specialized identifiers
J.5.4
Lengths and cases of identifiers
Lengths and cases of identifiers
J.5.5
Scopes of identifiers
Scopes of identifiers
J.5.6
Writable string literals
Writable string literals
J.5.7
Other arithmetic types
Other arithmetic types
J.5.8
Function pointer casts
Function pointer casts
J.5.9
Extended bit-field types
Extended bit-field types
J.5.10
The fortran keyword
The fortran keyword
J.5.11
The asm keyword
The asm keyword
J.5.12
Type inference
Type inference
J.5.13
Multiple external definitions
Multiple external definitions
J.5.14
Predefined macro names
Predefined macro names
J.5.15
Floating-point status flags
Floating-point status flags
J.5.16
Extra arguments for signal handlers
Extra arguments for signal handlers
J.5.17
Additional stream types and file-opening modes
Additional stream types and file-opening modes
J.5.18
Defined file position indicator
Defined file position indicator
J.5.19
Math error reporting
Math error reporting
J.6
Reserved identifiers and keywords
Reserved identifiers and keywords
J.6.1
General
General
J.6.2
Rule based identifiers
Rule based identifiers
J.6.3
Particular identifiers or keywords
Particular identifiers or keywords
K
Bounds-checking interfaces
Bounds-checking interfaces
K.1
Background
Background
K.2
Scope
Scope
K.3
Library
Library
K.3.1
Introduction
Introduction
K.3.1.1
Standard headers
Standard headers
K.3.1.2
Reserved identifiers
Reserved identifiers
K.3.1.3
Use of errno
Use of errno
K.3.1.4
Runtime-constraint violations
Runtime-constraint violations
K.3.2
Errors
Errors
K.3.3
Common definitions
Common definitions
K.3.4
Integer types
Integer types
K.3.5
Input/output
Input/output
K.3.5.1
General
General
K.3.5.2
Operations on files
Operations on files
K.3.5.2.1
The tmpfile_s function
The tmpfile_s function
K.3.5.2.2
The tmpnam_s function
The tmpnam_s function
K.3.5.3
File access functions
File access functions
K.3.5.3.1
The fopen_s function
The fopen_s function
K.3.5.3.2
The freopen_s function
The freopen_s function
K.3.5.4
Formatted input/output functions
Formatted input/output functions
K.3.5.4.1
General
General
K.3.5.4.2
The fprintf_s function
The fprintf_s function
K.3.5.4.3
The fscanf_s function
The fscanf_s function
K.3.5.4.4
The printf_s function
The printf_s function
K.3.5.4.5
The scanf_s function
The scanf_s function
K.3.5.4.6
The snprintf_s function
The snprintf_s function
K.3.5.4.7
The sprintf_s function
The sprintf_s function
K.3.5.4.8
The sscanf_s function
The sscanf_s function
K.3.5.4.9
The vfprintf_s function
The vfprintf_s function
K.3.5.4.10
The vfscanf_s function
The vfscanf_s function
K.3.5.4.11
The vprintf_s function
The vprintf_s function
K.3.5.4.12
The vscanf_s function
The vscanf_s function
K.3.5.4.13
The vsnprintf_s function
The vsnprintf_s function
K.3.5.4.14
The vsprintf_s function
The vsprintf_s function
K.3.5.4.15
The vsscanf_s function
The vsscanf_s function
K.3.5.5
Character input/output functions
Character input/output functions
K.3.5.5.1
The gets_s function
The gets_s function
K.3.6
General utilities
General utilities
K.3.6.1
General
General
K.3.6.2
Runtime-constraint handling
Runtime-constraint handling
K.3.6.2.1
The set_constraint_handler_s function
The set_constraint_handler_s function
K.3.6.2.2
The abort_handler_s function
The abort_handler_s function
K.3.6.2.3
The ignore_handler_s function
The ignore_handler_s function
K.3.6.3
Communication with the environment
Communication with the environment
K.3.6.3.1
The getenv_s function
The getenv_s function
K.3.6.4
Searching and sorting utilities
Searching and sorting utilities
K.3.6.4.1
General
General
K.3.6.4.2
The bsearch_s generic function
The bsearch_s generic function
K.3.6.4.3
The qsort_s function
The qsort_s function
K.3.6.5
Multibyte/wide character conversion functions
Multibyte/wide character conversion functions
K.3.6.5.1
General
General
K.3.6.5.2
The wctomb_s function
The wctomb_s function
K.3.6.6
Multibyte/wide string conversion functions
Multibyte/wide string conversion functions
K.3.6.6.1
General
General
K.3.6.6.2
The mbstowcs_s function
The mbstowcs_s function
K.3.6.6.3
The wcstombs_s function
The wcstombs_s function
K.3.7
String handling
String handling
K.3.7.1
General
General
K.3.7.2
Copying functions
Copying functions
K.3.7.2.1
The memcpy_s function
The memcpy_s function
K.3.7.2.2
The memmove_s function
The memmove_s function
K.3.7.2.3
The strcpy_s function
The strcpy_s function
K.3.7.2.4
The strncpy_s function
The strncpy_s function
K.3.7.3
Concatenation functions
Concatenation functions
K.3.7.3.1
The strcat_s function
The strcat_s function
K.3.7.3.2
The strncat_s function
The strncat_s function
K.3.7.4
Search functions
Search functions
K.3.7.4.1
The strtok_s function
The strtok_s function
K.3.7.5
Miscellaneous functions
Miscellaneous functions
K.3.7.5.1
The memset_s function
The memset_s function
K.3.7.5.2
The strerror_s function
The strerror_s function
K.3.7.5.3
The strerrorlen_s function
The strerrorlen_s function
K.3.7.5.4
The strnlen_s function
The strnlen_s function
K.3.8
Date and time
Date and time
K.3.8.1
General
General
K.3.8.2
Components of time
Components of time
K.3.8.3
Time conversion functions
Time conversion functions
K.3.8.3.1
General
General
K.3.8.3.2
The asctime_s function
The asctime_s function
K.3.8.3.3
The ctime_s function
The ctime_s function
K.3.8.3.4
The gmtime_s function
The gmtime_s function
K.3.8.3.5
The localtime_s function
The localtime_s function
K.3.9
Extended multibyte and wide character utilities
Extended multibyte and wide character utilities
K.3.9.1
General
General
K.3.9.2
Formatted wide character input/output functions
Formatted wide character input/output functions
K.3.9.2.1
The fwprintf_s function
The fwprintf_s function
K.3.9.2.2
The fwscanf_s function
The fwscanf_s function
K.3.9.2.3
The snwprintf_s function
The snwprintf_s function
K.3.9.2.4
The swprintf_s function
The swprintf_s function
K.3.9.2.5
The swscanf_s function
The swscanf_s function
K.3.9.2.6
The vfwprintf_s function
The vfwprintf_s function
K.3.9.2.7
The vfwscanf_s function
The vfwscanf_s function
K.3.9.2.8
The vsnwprintf_s function
The vsnwprintf_s function
K.3.9.2.9
The vswprintf_s function
The vswprintf_s function
K.3.9.2.10
The vswscanf_s function
The vswscanf_s function
K.3.9.2.11
The vwprintf_s function
The vwprintf_s function
K.3.9.2.12
The vwscanf_s function
The vwscanf_s function
K.3.9.2.13
The wprintf_s function
The wprintf_s function
K.3.9.2.14
The wscanf_s function
The wscanf_s function
K.3.9.3
General wide string utilities
General wide string utilities
K.3.9.3.1
Wide string copying functions
Wide string copying functions
K.3.9.3.1.1
The wcscpy_s function
The wcscpy_s function
K.3.9.3.1.2
The wcsncpy_s function
The wcsncpy_s function
K.3.9.3.1.3
The wmemcpy_s function
The wmemcpy_s function
K.3.9.3.1.4
The wmemmove_s function
The wmemmove_s function
K.3.9.3.2
Wide string concatenation functions
Wide string concatenation functions
K.3.9.3.2.1
The wcscat_s function
The wcscat_s function
K.3.9.3.2.2
The wcsncat_s function
The wcsncat_s function
K.3.9.3.3
Wide string search functions
Wide string search functions
K.3.9.3.3.1
The wcstok_s function
The wcstok_s function
K.3.9.3.4
Miscellaneous functions
Miscellaneous functions
K.3.9.3.4.1
The wcsnlen_s function
The wcsnlen_s function
K.3.9.4
Extended multibyte/wide character conversion utilities
Extended multibyte/wide character conversion utilities
K.3.9.4.1
Restartable multibyte/wide character conversion functions
Restartable multibyte/wide character conversion functions
K.3.9.4.1.1
General
General
K.3.9.4.1.2
The wcrtomb_s function
The wcrtomb_s function
K.3.9.4.2
Restartable multibyte/wide string conversion functions
Restartable multibyte/wide string conversion functions
K.3.9.4.2.1
General
General
K.3.9.4.2.2
The mbsrtowcs_s function
The mbsrtowcs_s function
K.3.9.4.2.3
The wcsrtombs_s function
The wcsrtombs_s function
L
Analyzability
Analyzability
L.1
Scope
Scope
L.2
Requirements
Requirements
M
Change History
Change History
M.1
Attribute Changes
Attribute Changes
M.3
Fifth Edition
Fifth Edition
M.4
Fourth Edition
Fourth Edition
M.5
Third Edition
Third Edition
M.6
Second Edition
Second Edition
M.7
First Edition, Amendment 1
First Edition, Amendment 1
Bibliography
Bibliography
Bibliography
C++11 (N3337)
1
General
[intro]
1.1
Scope
[intro.scope]
1.2
Normative references
[intro.refs]
1.3
Terms and definitions
[intro.defs]
1.3.1
argument
[defns.argument]
1.3.2
argument
[defns.argument.macro]
1.3.3
argument
[defns.argument.throw]
1.3.4
argument
[defns.argument.templ]
1.3.5
conditionally-supported
[defns.cond.supp]
1.3.6
diagnostic message
[defns.diagnostic]
1.3.7
dynamic type
[defns.dynamic.type]
1.3.8
dynamic type
[defns.dynamic.type.prvalue]
1.3.9
ill-formed program
[defns.ill.formed]
1.3.10
implementation-defined behavior
[defns.impl.defined]
1.3.11
implementation limits
[defns.impl.limits]
1.3.12
locale-specific behavior
[defns.locale.specific]
1.3.13
multibyte character
[defns.multibyte]
1.3.14
parameter
[defns.parameter]
1.3.15
parameter
[defns.parameter.macro]
1.3.16
parameter
[defns.parameter.templ]
1.3.17
signature
[defns.signature]
1.3.18
signature
[defns.signature.templ]
1.3.19
signature
[defns.signature.spec]
1.3.20
signature
[defns.signature.member]
1.3.21
signature
[defns.signature.member.templ]
1.3.22
signature
[defns.signature.member.spec]
1.3.23
static type
[defns.static.type]
1.3.24
undefined behavior
[defns.undefined]
1.3.25
unspecified behavior
[defns.unspecified]
1.3.26
well-formed program
[defns.well.formed]
1.4
Implementation compliance
[intro.compliance]
1.5
Structure of this International Standard
[intro.structure]
1.6
Syntax notation
[syntax]
1.7
The C++ memory model
[intro.memory]
1.8
The C++ object model
[intro.object]
1.9
Program execution
[intro.execution]
1.10
Multi-threaded executions and data races
[intro.multithread]
1.11
Acknowledgments
[intro.ack]
2
Lexical conventions
[lex]
2.1
Separate translation
[lex.separate]
2.2
Phases of translation
[lex.phases]
2.3
Character sets
[lex.charset]
2.4
Trigraph sequences
[lex.trigraph]
2.5
Preprocessing tokens
[lex.pptoken]
2.6
Alternative tokens
[lex.digraph]
2.7
Tokens
[lex.token]
2.8
Comments
[lex.comment]
2.9
Header names
[lex.header]
2.10
Preprocessing numbers
[lex.ppnumber]
2.11
Identifiers
[lex.name]
2.12
Keywords
[lex.key]
2.13
Operators and punctuators
[lex.operators]
2.14
Literals
[lex.literal]
2.14.1
Kinds of literals
[lex.literal.kinds]
2.14.2
Integer literals
[lex.icon]
2.14.3
Character literals
[lex.ccon]
2.14.4
Floating literals
[lex.fcon]
2.14.5
String literals
[lex.string]
2.14.6
Boolean literals
[lex.bool]
2.14.7
Pointer literals
[lex.nullptr]
2.14.8
User-defined literals
[lex.ext]
3
Basic concepts
[basic]
3.1
Declarations and definitions
[basic.def]
3.2
One definition rule
[basic.def.odr]
3.3
Scope
[basic.scope]
3.3.1
Declarative regions and scopes
[basic.scope.declarative]
3.3.2
Point of declaration
[basic.scope.pdecl]
3.3.3
Block scope
[basic.scope.local]
3.3.4
Function prototype scope
[basic.scope.proto]
3.3.5
Function scope
[basic.funscope]
3.3.6
Namespace scope
[basic.scope.namespace]
3.3.7
Class scope
[basic.scope.class]
3.3.8
Enumeration scope
[basic.scope.enum]
3.3.9
Template parameter scope
[basic.scope.temp]
3.3.10
Name hiding
[basic.scope.hiding]
3.4
Name lookup
[basic.lookup]
3.4.1
Unqualified name lookup
[basic.lookup.unqual]
3.4.2
Argument-dependent name lookup
[basic.lookup.argdep]
3.4.3
Qualified name lookup
[basic.lookup.qual]
3.4.3.1
Class members
[class.qual]
3.4.3.2
Namespace members
[namespace.qual]
3.4.4
Elaborated type specifiers
[basic.lookup.elab]
3.4.5
Class member access
[basic.lookup.classref]
3.4.6
Using-directives and namespace aliases
[basic.lookup.udir]
3.5
Program and linkage
[basic.link]
3.6
Start and termination
[basic.start]
3.6.1
Main function
[basic.start.main]
3.6.2
Initialization of non-local variables
[basic.start.init]
3.6.3
Termination
[basic.start.term]
3.7
Storage duration
[basic.stc]
3.7.1
Static storage duration
[basic.stc.static]
3.7.2
Thread storage duration
[basic.stc.thread]
3.7.3
Automatic storage duration
[basic.stc.auto]
3.7.4
Dynamic storage duration
[basic.stc.dynamic]
3.7.4.1
Allocation functions
[basic.stc.dynamic.allocation]
3.7.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
3.7.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
3.7.5
Duration of subobjects
[basic.stc.inherit]
3.8
Object lifetime
[basic.life]
3.9
Types
[basic.types]
3.9.1
Fundamental types
[basic.fundamental]
3.9.2
Compound types
[basic.compound]
3.9.3
CV-qualifiers
[basic.type.qualifier]
3.10
Lvalues and rvalues
[basic.lval]
3.11
Alignment
[basic.align]
4
Standard conversions
[conv]
4.1
Lvalue-to-rvalue conversion
[conv.lval]
4.2
Array-to-pointer conversion
[conv.array]
4.3
Function-to-pointer conversion
[conv.func]
4.4
Qualification conversions
[conv.qual]
4.5
Integral promotions
[conv.prom]
4.6
Floating point promotion
[conv.fpprom]
4.7
Integral conversions
[conv.integral]
4.8
Floating point conversions
[conv.double]
4.9
Floating-integral conversions
[conv.fpint]
4.10
Pointer conversions
[conv.ptr]
4.11
Pointer to member conversions
[conv.mem]
4.12
Boolean conversions
[conv.bool]
4.13
Integer conversion rank
[conv.rank]
5
Expressions
[expr]
5.1
Primary expressions
[expr.prim]
5.1.1
General
[expr.prim.general]
5.1.2
Lambda expressions
[expr.prim.lambda]
5.2
Postfix expressions
[expr.post]
5.2.1
Subscripting
[expr.sub]
5.2.2
Function call
[expr.call]
5.2.3
Explicit type conversion (functional notation)
[expr.type.conv]
5.2.4
Pseudo destructor call
[expr.pseudo]
5.2.5
Class member access
[expr.ref]
5.2.6
Increment and decrement
[expr.post.incr]
5.2.7
Dynamic cast
[expr.dynamic.cast]
5.2.8
Type identification
[expr.typeid]
5.2.9
Static cast
[expr.static.cast]
5.2.10
Reinterpret cast
[expr.reinterpret.cast]
5.2.11
Const cast
[expr.const.cast]
5.3
Unary expressions
[expr.unary]
5.3.1
Unary operators
[expr.unary.op]
5.3.2
Increment and decrement
[expr.pre.incr]
5.3.3
Sizeof
[expr.sizeof]
5.3.4
New
[expr.new]
5.3.5
Delete
[expr.delete]
5.3.6
Alignof
[expr.alignof]
5.3.7
noexcept operator
[expr.unary.noexcept]
5.4
Explicit type conversion (cast notation)
[expr.cast]
5.5
Pointer-to-member operators
[expr.mptr.oper]
5.6
Multiplicative operators
[expr.mul]
5.7
Additive operators
[expr.add]
5.8
Shift operators
[expr.shift]
5.9
Relational operators
[expr.rel]
5.10
Equality operators
[expr.eq]
5.11
Bitwise AND operator
[expr.bit.and]
5.12
Bitwise exclusive OR operator
[expr.xor]
5.13
Bitwise inclusive OR operator
[expr.or]
5.14
Logical AND operator
[expr.log.and]
5.15
Logical OR operator
[expr.log.or]
5.16
Conditional operator
[expr.cond]
5.17
Assignment and compound assignment operators
[expr.ass]
5.18
Comma operator
[expr.comma]
5.19
Constant expressions
[expr.const]
6
Statements
[stmt.stmt]
6.1
Labeled statement
[stmt.label]
6.2
Expression statement
[stmt.expr]
6.3
Compound statement or block
[stmt.block]
6.4
Selection statements
[stmt.select]
6.4.1
The if statement
[stmt.if]
6.4.2
The switch statement
[stmt.switch]
6.5
Iteration statements
[stmt.iter]
6.5.1
The while statement
[stmt.while]
6.5.2
The do statement
[stmt.do]
6.5.3
The for statement
[stmt.for]
6.5.4
The range-based for statement
[stmt.ranged]
6.6
Jump statements
[stmt.jump]
6.6.1
The break statement
[stmt.break]
6.6.2
The continue statement
[stmt.cont]
6.6.3
The return statement
[stmt.return]
6.6.4
The goto statement
[stmt.goto]
6.7
Declaration statement
[stmt.dcl]
6.8
Ambiguity resolution
[stmt.ambig]
7
Declarations
[dcl.dcl]
7.1
Specifiers
[dcl.spec]
7.1.1
Storage class specifiers
[dcl.stc]
7.1.2
Function specifiers
[dcl.fct.spec]
7.1.3
The typedef specifier
[dcl.typedef]
7.1.4
The friend specifier
[dcl.friend]
7.1.5
The constexpr specifier
[dcl.constexpr]
7.1.6
Type specifiers
[dcl.type]
7.1.6.1
The cv-qualifiers
[dcl.type.cv]
7.1.6.2
Simple type specifiers
[dcl.type.simple]
7.1.6.3
Elaborated type specifiers
[dcl.type.elab]
7.1.6.4
auto specifier
[dcl.spec.auto]
7.2
Enumeration declarations
[dcl.enum]
7.3
Namespaces
[basic.namespace]
7.3.1
Namespace definition
[namespace.def]
7.3.1.1
Unnamed namespaces
[namespace.unnamed]
7.3.1.2
Namespace member definitions
[namespace.memdef]
7.3.2
Namespace alias
[namespace.alias]
7.3.3
The using declaration
[namespace.udecl]
7.3.4
Using directive
[namespace.udir]
7.4
The asm declaration
[dcl.asm]
7.5
Linkage specifications
[dcl.link]
7.6
Attributes
[dcl.attr]
7.6.1
Attribute syntax and semantics
[dcl.attr.grammar]
7.6.2
Alignment specifier
[dcl.align]
7.6.3
Noreturn attribute
[dcl.attr.noreturn]
7.6.4
Carries dependency attribute
[dcl.attr.depend]
8
Declarators
[dcl.decl]
8.1
Type names
[dcl.name]
8.2
Ambiguity resolution
[dcl.ambig.res]
8.3
Meaning of declarators
[dcl.meaning]
8.3.1
Pointers
[dcl.ptr]
8.3.2
References
[dcl.ref]
8.3.3
Pointers to members
[dcl.mptr]
8.3.4
Arrays
[dcl.array]
8.3.5
Functions
[dcl.fct]
8.3.6
Default arguments
[dcl.fct.default]
8.4
Function definitions
[dcl.fct.def]
8.4.1
In general
[dcl.fct.def.general]
8.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
8.4.3
Deleted definitions
[dcl.fct.def.delete]
8.5
Initializers
[dcl.init]
8.5.1
Aggregates
[dcl.init.aggr]
8.5.2
Character arrays
[dcl.init.string]
8.5.3
References
[dcl.init.ref]
8.5.4
List-initialization
[dcl.init.list]
9
Classes
[class]
9.1
Class names
[class.name]
9.2
Class members
[class.mem]
9.3
Member functions
[class.mfct]
9.3.1
Nonstatic member functions
[class.mfct.non-static]
9.3.2
The this pointer
[class.this]
9.4
Static members
[class.static]
9.4.1
Static member functions
[class.static.mfct]
9.4.2
Static data members
[class.static.data]
9.5
Unions
[class.union]
9.6
Bit-fields
[class.bit]
9.7
Nested class declarations
[class.nest]
9.8
Local class declarations
[class.local]
9.9
Nested type names
[class.nested.type]
10
Derived classes
[class.derived]
10.1
Multiple base classes
[class.mi]
10.2
Member name lookup
[class.member.lookup]
10.3
Virtual functions
[class.virtual]
10.4
Abstract classes
[class.abstract]
11
Member access control
[class.access]
11.1
Access specifiers
[class.access.spec]
11.2
Accessibility of base classes and base class members
[class.access.base]
11.3
Friends
[class.friend]
11.4
Protected member access
[class.protected]
11.5
Access to virtual functions
[class.access.virt]
11.6
Multiple access
[class.paths]
11.7
Nested classes
[class.access.nest]
12
Special member functions
[special]
12.1
Constructors
[class.ctor]
12.2
Temporary objects
[class.temporary]
12.3
Conversions
[class.conv]
12.3.1
Conversion by constructor
[class.conv.ctor]
12.3.2
Conversion functions
[class.conv.fct]
12.4
Destructors
[class.dtor]
12.5
Free store
[class.free]
12.6
Initialization
[class.init]
12.6.1
Explicit initialization
[class.expl.init]
12.6.2
Initializing bases and members
[class.base.init]
12.7
Construction and destruction
[class.cdtor]
12.8
Copying and moving class objects
[class.copy]
12.9
Inheriting constructors
[class.inhctor]
13
Overloading
[over]
13.1
Overloadable declarations
[over.load]
13.2
Declaration matching
[over.dcl]
13.3
Overload resolution
[over.match]
13.3.1
Candidate functions and argument lists
[over.match.funcs]
13.3.1.1
Function call syntax
[over.match.call]
13.3.1.1.1
Call to named function
[over.call.func]
13.3.1.1.2
Call to object of class type
[over.call.object]
13.3.1.2
Operators in expressions
[over.match.oper]
13.3.1.3
Initialization by constructor
[over.match.ctor]
13.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
13.3.1.5
Initialization by conversion function
[over.match.conv]
13.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
13.3.1.7
Initialization by list-initialization
[over.match.list]
13.3.2
Viable functions
[over.match.viable]
13.3.3
Best viable function
[over.match.best]
13.3.3.1
Implicit conversion sequences
[over.best.ics]
13.3.3.1.1
Standard conversion sequences
[over.ics.scs]
13.3.3.1.2
User-defined conversion sequences
[over.ics.user]
13.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
13.3.3.1.4
Reference binding
[over.ics.ref]
13.3.3.1.5
List-initialization sequence
[over.ics.list]
13.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
13.4
Address of overloaded function
[over.over]
13.5
Overloaded operators
[over.oper]
13.5.1
Unary operators
[over.unary]
13.5.2
Binary operators
[over.binary]
13.5.3
Assignment
[over.ass]
13.5.4
Function call
[over.call]
13.5.5
Subscripting
[over.sub]
13.5.6
Class member access
[over.ref]
13.5.7
Increment and decrement
[over.inc]
13.5.8
User-defined literals
[over.literal]
13.6
Built-in operators
[over.built]
14
Templates
[temp]
14.1
Template parameters
[temp.param]
14.2
Names of template specializations
[temp.names]
14.3
Template arguments
[temp.arg]
14.3.1
Template type arguments
[temp.arg.type]
14.3.2
Template non-type arguments
[temp.arg.nontype]
14.3.3
Template template arguments
[temp.arg.template]
14.4
Type equivalence
[temp.type]
14.5
Template declarations
[temp.decls]
14.5.1
Class templates
[temp.class]
14.5.1.1
Member functions of class templates
[temp.mem.func]
14.5.1.2
Member classes of class templates
[temp.mem.class]
14.5.1.3
Static data members of class templates
[temp.static]
14.5.1.4
Enumeration members of class templates
[temp.mem.enum]
14.5.2
Member templates
[temp.mem]
14.5.3
Variadic templates
[temp.variadic]
14.5.4
Friends
[temp.friend]
14.5.5
Class template partial specializations
[temp.class.spec]
14.5.5.1
Matching of class template partial specializations
[temp.class.spec.match]
14.5.5.2
Partial ordering of class template specializations
[temp.class.order]
14.5.5.3
Members of class template specializations
[temp.class.spec.mfunc]
14.5.6
Function templates
[temp.fct]
14.5.6.1
Function template overloading
[temp.over.link]
14.5.6.2
Partial ordering of function templates
[temp.func.order]
14.5.7
Alias templates
[temp.alias]
14.6
Name resolution
[temp.res]
14.6.1
Locally declared names
[temp.local]
14.6.2
Dependent names
[temp.dep]
14.6.2.1
Dependent types
[temp.dep.type]
14.6.2.2
Type-dependent expressions
[temp.dep.expr]
14.6.2.3
Value-dependent expressions
[temp.dep.constexpr]
14.6.2.4
Dependent template arguments
[temp.dep.temp]
14.6.3
Non-dependent names
[temp.nondep]
14.6.4
Dependent name resolution
[temp.dep.res]
14.6.4.1
Point of instantiation
[temp.point]
14.6.4.2
Candidate functions
[temp.dep.candidate]
14.6.5
Friend names declared within a class template
[temp.inject]
14.7
Template instantiation and specialization
[temp.spec]
14.7.1
Implicit instantiation
[temp.inst]
14.7.2
Explicit instantiation
[temp.explicit]
14.7.3
Explicit specialization
[temp.expl.spec]
14.8
Function template specializations
[temp.fct.spec]
14.8.1
Explicit template argument specification
[temp.arg.explicit]
14.8.2
Template argument deduction
[temp.deduct]
14.8.2.1
Deducing template arguments from a function call
[temp.deduct.call]
14.8.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
14.8.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
14.8.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
14.8.2.5
Deducing template arguments from a type
[temp.deduct.type]
14.8.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
14.8.3
Overload resolution
[temp.over]
15
Exception handling
[except]
15.1
Throwing an exception
[except.throw]
15.2
Constructors and destructors
[except.ctor]
15.3
Handling an exception
[except.handle]
15.4
Exception specifications
[except.spec]
15.5
Special functions
[except.special]
15.5.1
The std::terminate() function
[except.terminate]
15.5.2
The std::unexpected() function
[except.unexpected]
15.5.3
The std::uncaught_exception() function
[except.uncaught]
16
Preprocessing directives
[cpp]
16.1
Conditional inclusion
[cpp.cond]
16.2
Source file inclusion
[cpp.include]
16.3
Macro replacement
[cpp.replace]
16.3.1
Argument substitution
[cpp.subst]
16.3.2
The # operator
[cpp.stringize]
16.3.3
The ## operator
[cpp.concat]
16.3.4
Rescanning and further replacement
[cpp.rescan]
16.3.5
Scope of macro definitions
[cpp.scope]
16.4
Line control
[cpp.line]
16.5
Error directive
[cpp.error]
16.6
Pragma directive
[cpp.pragma]
16.7
Null directive
[cpp.null]
16.8
Predefined macro names
[cpp.predefined]
16.9
Pragma operator
[cpp.pragma.op]
17
Library introduction
[library]
17.1
General
[library.general]
17.2
The C standard library
[library.c]
17.3
Definitions
[definitions]
17.3.1
arbitrary-positional stream
[defns.arbitrary.stream]
17.3.2
block
[defns.block]
17.3.3
blocked thread
[defns.blocked]
17.3.4
character
[defns.character]
17.3.5
character container type
[defns.character.container]
17.3.6
comparison function
[defns.comparison]
17.3.7
component
[defns.component]
17.3.8
deadlock
[defns.deadlock]
17.3.9
default behavior
[defns.default.behavior.impl]
17.3.10
default behavior
[defns.default.behavior.func]
17.3.11
handler function
[defns.handler]
17.3.12
iostream class templates
[defns.iostream.templates]
17.3.13
modifier function
[defns.modifier]
17.3.14
move construction
[defns.move.constr]
17.3.15
move assignment
[defns.move.assign]
17.3.16
object state
[defns.obj.state]
17.3.17
NTCTS
[defns.ntcts]
17.3.18
observer function
[defns.observer]
17.3.19
replacement function
[defns.replacement]
17.3.20
repositional stream
[defns.repositional.stream]
17.3.21
required behavior
[defns.required.behavior]
17.3.22
reserved function
[defns.reserved.function]
17.3.23
stable algorithm
[defns.stable]
17.3.24
traits class
[defns.traits]
17.3.25
unblock
[defns.unblock]
17.3.26
valid but unspecified state
[defns.valid]
17.4
Additional definitions
[defns.additional]
17.5
Method of description (Informative)
[description]
17.5.1
Structure of each clause
[structure]
17.5.1.1
Elements
[structure.elements]
17.5.1.2
Summary
[structure.summary]
17.5.1.3
Requirements
[structure.requirements]
17.5.1.4
Detailed specifications
[structure.specifications]
17.5.1.5
C library
[structure.see.also]
17.5.2
Other conventions
[conventions]
17.5.2.1
Type descriptions
[type.descriptions]
17.5.2.1.1
General
[type.descriptions.general]
17.5.2.1.2
Enumerated types
[enumerated.types]
17.5.2.1.3
Bitmask types
[bitmask.types]
17.5.2.1.4
Character sequences
[character.seq]
17.5.2.1.4.1
Byte strings
[byte.strings]
17.5.2.1.4.2
Multibyte strings
[multibyte.strings]
17.5.2.2
Functions within classes
[functions.within.classes]
17.5.2.3
Private members
[objects.within.classes]
17.6
Library-wide requirements
[requirements]
17.6.1
Library contents and organization
[organization]
17.6.1.1
Library contents
[contents]
17.6.1.2
Headers
[headers]
17.6.1.3
Freestanding implementations
[compliance]
17.6.2
Using the library
[using]
17.6.2.1
Overview
[using.overview]
17.6.2.2
Headers
[using.headers]
17.6.2.3
Linkage
[using.linkage]
17.6.3
Requirements on types and expressions
[utility.requirements]
17.6.3.1
Template argument requirements
[utility.arg.requirements]
17.6.3.2
Swappable requirements
[swappable.requirements]
17.6.3.3
NullablePointer requirements
[nullablepointer.requirements]
17.6.3.4
Hash requirements
[hash.requirements]
17.6.3.5
Allocator requirements
[allocator.requirements]
17.6.4
Constraints on programs
[constraints]
17.6.4.1
Overview
[constraints.overview]
17.6.4.2
Namespace use
[namespace.constraints]
17.6.4.2.1
Namespace std
[namespace.std]
17.6.4.2.2
Namespace posix
[namespace.posix]
17.6.4.3
Reserved names
[reserved.names]
17.6.4.3.1
Macro names
[macro.names]
17.6.4.3.2
Global names
[global.names]
17.6.4.3.3
External linkage
[extern.names]
17.6.4.3.4
Types
[extern.types]
17.6.4.3.5
User-defined literal suffixes
[usrlit.suffix]
17.6.4.4
Headers
[alt.headers]
17.6.4.5
Derived classes
[derived.classes]
17.6.4.6
Replacement functions
[replacement.functions]
17.6.4.7
Handler functions
[handler.functions]
17.6.4.8
Other functions
[res.on.functions]
17.6.4.9
Function arguments
[res.on.arguments]
17.6.4.10
Shared objects and the library
[res.on.objects]
17.6.4.11
Requires paragraph
[res.on.required]
17.6.5
Conforming implementations
[conforming]
17.6.5.1
Overview
[conforming.overview]
17.6.5.2
Headers
[res.on.headers]
17.6.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
17.6.5.4
Global and non-member functions
[global.functions]
17.6.5.5
Member functions
[member.functions]
17.6.5.6
constexpr functions and constructors
[constexpr.functions]
17.6.5.7
Requirements for stable algorithms
[algorithm.stable]
17.6.5.8
Reentrancy
[reentrancy]
17.6.5.9
Data race avoidance
[res.on.data.races]
17.6.5.10
Protection within classes
[protection.within.classes]
17.6.5.11
Derived classes
[derivation]
17.6.5.12
Restrictions on exception handling
[res.on.exception.handling]
17.6.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
17.6.5.14
Value of error codes
[value.error.codes]
17.6.5.15
Moved-from state of library types
[lib.types.movedfrom]
18
Language support library
[language.support]
18.1
General
[support.general]
18.2
Types
[support.types]
18.3
Implementation properties
[support.limits]
18.3.1
In general
[support.limits.general]
18.3.2
Numeric limits
[limits]
18.3.2.1
Class template numeric_limits
[limits.numeric]
18.3.2.2
Header synopsis
[limits.syn]
18.3.2.3
Class template numeric_limits
[numeric.limits]
18.3.2.4
numeric_limits members
[numeric.limits.members]
18.3.2.5
Type float_round_style
[round.style]
18.3.2.6
Type float_denorm_style
[denorm.style]
18.3.2.7
numeric_limits specializations
[numeric.special]
18.3.3
C library
[c.limits]
18.4
Integer types
[cstdint]
18.4.1
Header synopsis
[cstdint.syn]
18.5
Start and termination
[support.start.term]
18.6
Dynamic memory management
[support.dynamic]
18.6.1
Storage allocation and deallocation
[new.delete]
18.6.1.1
Single-object forms
[new.delete.single]
18.6.1.2
Array forms
[new.delete.array]
18.6.1.3
Placement forms
[new.delete.placement]
18.6.1.4
Data races
[new.delete.dataraces]
18.6.2
Storage allocation errors
[alloc.errors]
18.6.2.1
Class bad_alloc
[bad.alloc]
18.6.2.2
Class bad_array_new_length
[new.badlength]
18.6.2.3
Type new_handler
[new.handler]
18.6.2.4
set_new_handler
[set.new.handler]
18.6.2.5
get_new_handler
[get.new.handler]
18.7
Type identification
[support.rtti]
18.7.1
Class type_info
[type.info]
18.7.2
Class bad_cast
[bad.cast]
18.7.3
Class bad_typeid
[bad.typeid]
18.8
Exception handling
[support.exception]
18.8.1
Class exception
[exception]
18.8.2
Class bad_exception
[bad.exception]
18.8.3
Abnormal termination
[exception.terminate]
18.8.3.1
Type terminate_handler
[terminate.handler]
18.8.3.2
set_terminate
[set.terminate]
18.8.3.3
get_terminate
[get.terminate]
18.8.3.4
terminate
[terminate]
18.8.4
uncaught_exception
[uncaught]
18.8.5
Exception propagation
[propagation]
18.8.6
nested_exception
[except.nested]
18.9
Initializer lists
[support.initlist]
18.9.1
Initializer list constructors
[support.initlist.cons]
18.9.2
Initializer list access
[support.initlist.access]
18.9.3
Initializer list range access
[support.initlist.range]
18.10
Other runtime support
[support.runtime]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
Class logic_error
[logic.error]
19.2.2
Class domain_error
[domain.error]
19.2.3
Class invalid_argument
[invalid.argument]
19.2.4
Class length_error
[length.error]
19.2.5
Class out_of_range
[out.of.range]
19.2.6
Class runtime_error
[runtime.error]
19.2.7
Class range_error
[range.error]
19.2.8
Class overflow_error
[overflow.error]
19.2.9
Class underflow_error
[underflow.error]
19.3
Assertions
[assertions]
19.4
Error numbers
[errno]
19.5
System error support
[syserr]
19.5.1
Class error_category
[syserr.errcat]
19.5.1.1
Class error_category overview
[syserr.errcat.overview]
19.5.1.2
Class error_category virtual members
[syserr.errcat.virtuals]
19.5.1.3
Class error_category non-virtual members
[syserr.errcat.nonvirtuals]
19.5.1.4
Program defined classes derived from error_category
[syserr.errcat.derived]
19.5.1.5
Error category objects
[syserr.errcat.objects]
19.5.2
Class error_code
[syserr.errcode]
19.5.2.1
Class error_code overview
[syserr.errcode.overview]
19.5.2.2
Class error_code constructors
[syserr.errcode.constructors]
19.5.2.3
Class error_code modifiers
[syserr.errcode.modifiers]
19.5.2.4
Class error_code observers
[syserr.errcode.observers]
19.5.2.5
Class error_code non-member functions
[syserr.errcode.nonmembers]
19.5.3
Class error_condition
[syserr.errcondition]
19.5.3.1
Class error_condition overview
[syserr.errcondition.overview]
19.5.3.2
Class error_condition constructors
[syserr.errcondition.constructors]
19.5.3.3
Class error_condition modifiers
[syserr.errcondition.modifiers]
19.5.3.4
Class error_condition observers
[syserr.errcondition.observers]
19.5.3.5
Class error_condition non-member functions
[syserr.errcondition.nonmembers]
19.5.4
Comparison operators
[syserr.compare]
19.5.5
System error hash support
[syserr.hash]
19.5.6
Class system_error
[syserr.syserr]
19.5.6.1
Class system_error overview
[syserr.syserr.overview]
19.5.6.2
Class system_error members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Operators
[operators]
20.2.2
swap
[utility.swap]
20.2.3
forward/move helpers
[forward]
20.2.4
Function template declval
[declval]
20.3
Pairs
[pairs]
20.3.1
In general
[pairs.general]
20.3.2
Class template pair
[pairs.pair]
20.3.3
Specialized algorithms
[pairs.spec]
20.3.4
Tuple-like access to pair
[pair.astuple]
20.3.5
Piecewise construction
[pair.piecewise]
20.4
Tuples
[tuple]
20.4.1
In general
[tuple.general]
20.4.2
Class template tuple
[tuple.tuple]
20.4.2.1
Construction
[tuple.cnstr]
20.4.2.2
Assignment
[tuple.assign]
20.4.2.3
swap
[tuple.swap]
20.4.2.4
Tuple creation functions
[tuple.creation]
20.4.2.5
Tuple helper classes
[tuple.helper]
20.4.2.6
Element access
[tuple.elem]
20.4.2.7
Relational operators
[tuple.rel]
20.4.2.8
Tuple traits
[tuple.traits]
20.4.2.9
Tuple specialized algorithms
[tuple.special]
20.5
Class template bitset
[template.bitset]
20.5.1
bitset constructors
[bitset.cons]
20.5.2
bitset members
[bitset.members]
20.5.3
bitset hash support
[bitset.hash]
20.5.4
bitset operators
[bitset.operators]
20.6
Memory
[memory]
20.6.1
In general
[memory.general]
20.6.2
Header synopsis
[memory.syn]
20.6.3
Pointer traits
[pointer.traits]
20.6.3.1
Pointer traits member types
[pointer.traits.types]
20.6.3.2
Pointer traits member functions
[pointer.traits.functions]
20.6.4
Pointer safety
[util.dynamic.safety]
20.6.5
Align
[ptr.align]
20.6.6
Allocator argument tag
[allocator.tag]
20.6.7
uses_allocator
[allocator.uses]
20.6.7.1
uses_allocator trait
[allocator.uses.trait]
20.6.7.2
uses-allocator construction
[allocator.uses.construction]
20.6.8
Allocator traits
[allocator.traits]
20.6.8.1
Allocator traits member types
[allocator.traits.types]
20.6.8.2
Allocator traits static member functions
[allocator.traits.members]
20.6.9
The default allocator
[default.allocator]
20.6.9.1
allocator members
[allocator.members]
20.6.9.2
allocator globals
[allocator.globals]
20.6.10
Raw storage iterator
[storage.iterator]
20.6.11
Temporary buffers
[temporary.buffer]
20.6.12
Specialized algorithms
[specialized.algorithms]
20.6.12.1
addressof
[specialized.addressof]
20.6.12.2
uninitialized_copy
[uninitialized.copy]
20.6.12.3
uninitialized_fill
[uninitialized.fill]
20.6.12.4
uninitialized_fill_n
[uninitialized.fill.n]
20.6.13
C library
[c.malloc]
20.7
Smart pointers
[smartptr]
20.7.1
Class template unique_ptr
[unique.ptr]
20.7.1.1
Default deleters
[unique.ptr.dltr]
20.7.1.1.1
In general
[unique.ptr.dltr.general]
20.7.1.1.2
default_delete
[unique.ptr.dltr.dflt]
20.7.1.1.3
default_delete
[unique.ptr.dltr.dflt1]
20.7.1.2
unique_ptr for single objects
[unique.ptr.single]
20.7.1.2.1
unique_ptr constructors
[unique.ptr.single.ctor]
20.7.1.2.2
unique_ptr destructor
[unique.ptr.single.dtor]
20.7.1.2.3
unique_ptr assignment
[unique.ptr.single.asgn]
20.7.1.2.4
unique_ptr observers
[unique.ptr.single.observers]
20.7.1.2.5
unique_ptr modifiers
[unique.ptr.single.modifiers]
20.7.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.7.1.3.1
unique_ptr constructors
[unique.ptr.runtime.ctor]
20.7.1.3.2
unique_ptr observers
[unique.ptr.runtime.observers]
20.7.1.3.3
unique_ptr modifiers
[unique.ptr.runtime.modifiers]
20.7.1.4
unique_ptr specialized algorithms
[unique.ptr.special]
20.7.2
Shared-ownership pointers
[util.smartptr]
20.7.2.1
Class bad_weak_ptr
[util.smartptr.weakptr]
20.7.2.2
Class template shared_ptr
[util.smartptr.shared]
20.7.2.2.1
shared_ptr constructors
[util.smartptr.shared.const]
20.7.2.2.2
shared_ptr destructor
[util.smartptr.shared.dest]
20.7.2.2.3
shared_ptr assignment
[util.smartptr.shared.assign]
20.7.2.2.4
shared_ptr modifiers
[util.smartptr.shared.mod]
20.7.2.2.5
shared_ptr observers
[util.smartptr.shared.obs]
20.7.2.2.6
shared_ptr creation
[util.smartptr.shared.create]
20.7.2.2.7
shared_ptr comparison
[util.smartptr.shared.cmp]
20.7.2.2.8
shared_ptr specialized algorithms
[util.smartptr.shared.spec]
20.7.2.2.9
shared_ptr casts
[util.smartptr.shared.cast]
20.7.2.2.10
get_deleter
[util.smartptr.getdeleter]
20.7.2.2.11
shared_ptr I/O
[util.smartptr.shared.io]
20.7.2.3
Class template weak_ptr
[util.smartptr.weak]
20.7.2.3.1
weak_ptr constructors
[util.smartptr.weak.const]
20.7.2.3.2
weak_ptr destructor
[util.smartptr.weak.dest]
20.7.2.3.3
weak_ptr assignment
[util.smartptr.weak.assign]
20.7.2.3.4
weak_ptr modifiers
[util.smartptr.weak.mod]
20.7.2.3.5
weak_ptr observers
[util.smartptr.weak.obs]
20.7.2.3.6
weak_ptr specialized algorithms
[util.smartptr.weak.spec]
20.7.2.3.7
Class template owner_less
[util.smartptr.ownerless]
20.7.2.4
Class template enable_shared_from_this
[util.smartptr.enab]
20.7.2.5
shared_ptr atomic access
[util.smartptr.shared.atomic]
20.7.2.6
Smart pointer hash support
[util.smartptr.hash]
20.8
Function objects
[function.objects]
20.8.1
Definitions
[func.def]
20.8.2
Requirements
[func.require]
20.8.3
Class template reference_wrapper
[refwrap]
20.8.3.1
reference_wrapper construct/copy/destroy
[refwrap.const]
20.8.3.2
reference_wrapper assignment
[refwrap.assign]
20.8.3.3
reference_wrapper access
[refwrap.access]
20.8.3.4
reference_wrapper invocation
[refwrap.invoke]
20.8.3.5
reference_wrapper helper functions
[refwrap.helpers]
20.8.4
Arithmetic operations
[arithmetic.operations]
20.8.5
Comparisons
[comparisons]
20.8.6
Logical operations
[logical.operations]
20.8.7
Bitwise operations
[bitwise.operations]
20.8.8
Negators
[negators]
20.8.9
Function template bind
[bind]
20.8.9.1
Function object binders
[func.bind]
20.8.9.1.1
Class template is_bind_expression
[func.bind.isbind]
20.8.9.1.2
Function template bind
[func.bind.bind]
20.8.9.1.3
Placeholders
[func.bind.place]
20.8.10
Function template mem_fn
[func.memfn]
20.8.11
Polymorphic function wrappers
[func.wrap]
20.8.11.1
Class bad_function_call
[func.wrap.badcall]
20.8.11.1.1
bad_function_call constructor
[func.wrap.badcall.const]
20.8.11.2
Class template function
[func.wrap.func]
20.8.11.2.1
function construct/copy/destroy
[func.wrap.func.con]
20.8.11.2.2
function modifiers
[func.wrap.func.mod]
20.8.11.2.3
function capacity
[func.wrap.func.cap]
20.8.11.2.4
function invocation
[func.wrap.func.inv]
20.8.11.2.5
function target access
[func.wrap.func.targ]
20.8.11.2.6
null pointer comparison operators
[func.wrap.func.nullptr]
20.8.11.2.7
specialized algorithms
[func.wrap.func.alg]
20.8.12
Class template hash
[unord.hash]
20.9
Metaprogramming and type traits
[meta]
20.9.1
Requirements
[meta.rqmts]
20.9.2
Header synopsis
[meta.type.synop]
20.9.3
Helper classes
[meta.help]
20.9.4
Unary type traits
[meta.unary]
20.9.4.1
Primary type categories
[meta.unary.cat]
20.9.4.2
Composite type traits
[meta.unary.comp]
20.9.4.3
Type properties
[meta.unary.prop]
20.9.5
Type property queries
[meta.unary.prop.query]
20.9.6
Relationships between types
[meta.rel]
20.9.7
Transformations between types
[meta.trans]
20.9.7.1
Const-volatile modifications
[meta.trans.cv]
20.9.7.2
Reference modifications
[meta.trans.ref]
20.9.7.3
Sign modifications
[meta.trans.sign]
20.9.7.4
Array modifications
[meta.trans.arr]
20.9.7.5
Pointer modifications
[meta.trans.ptr]
20.9.7.6
Other transformations
[meta.trans.other]
20.10
Compile-time rational arithmetic
[ratio]
20.10.1
In general
[ratio.general]
20.10.2
Header synopsis
[ratio.syn]
20.10.3
Class template ratio
[ratio.ratio]
20.10.4
Arithmetic on ratios
[ratio.arithmetic]
20.10.5
Comparison of ratios
[ratio.comparison]
20.10.6
SI types for ratio
[ratio.si]
20.11
Time utilities
[time]
20.11.1
In general
[time.general]
20.11.2
Header synopsis
[time.syn]
20.11.3
Clock requirements
[time.clock.req]
20.11.4
Time-related traits
[time.traits]
20.11.4.1
treat_as_floating_point
[time.traits.is_fp]
20.11.4.2
duration_values
[time.traits.duration_values]
20.11.4.3
Specializations of common_type
[time.traits.specializations]
20.11.5
Class template duration
[time.duration]
20.11.5.1
duration constructors
[time.duration.cons]
20.11.5.2
duration observer
[time.duration.observer]
20.11.5.3
duration arithmetic
[time.duration.arithmetic]
20.11.5.4
duration special values
[time.duration.special]
20.11.5.5
duration non-member arithmetic
[time.duration.nonmember]
20.11.5.6
duration comparisons
[time.duration.comparisons]
20.11.5.7
duration_cast
[time.duration.cast]
20.11.6
Class template time_point
[time.point]
20.11.6.1
time_point constructors
[time.point.cons]
20.11.6.2
time_point observer
[time.point.observer]
20.11.6.3
time_point arithmetic
[time.point.arithmetic]
20.11.6.4
time_point special values
[time.point.special]
20.11.6.5
time_point non-member arithmetic
[time.point.nonmember]
20.11.6.6
time_point comparisons
[time.point.comparisons]
20.11.6.7
time_point_cast
[time.point.cast]
20.11.7
Clocks
[time.clock]
20.11.7.1
Class system_clock
[time.clock.system]
20.11.7.2
Class steady_clock
[time.clock.steady]
20.11.7.3
Class high_resolution_clock
[time.clock.hires]
20.11.8
Date and time functions
[date.time]
20.12
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.12.1
Header synopsis
[allocator.adaptor.syn]
20.12.2
Scoped allocator adaptor member types
[allocator.adaptor.types]
20.12.3
Scoped allocator adaptor constructors
[allocator.adaptor.cnstr]
20.12.4
Scoped allocator adaptor members
[allocator.adaptor.members]
20.12.5
Scoped allocator operators
[scoped.adaptor.operators]
20.13
Class type_index
[type.index]
20.13.1
Header synopsis
[type.index.synopsis]
20.13.2
type_index overview
[type.index.overview]
20.13.3
type_index members
[type.index.members]
20.13.4
Hash support
[type.index.hash]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
Character traits requirements
[char.traits.require]
21.2.2
traits typedefs
[char.traits.typedefs]
21.2.3
char_traits specializations
[char.traits.specializations]
21.2.3.1
struct char_traits
[char.traits.specializations.char]
21.2.3.2
struct char_traits
[char.traits.specializations.char16_t]
21.2.3.3
struct char_traits
[char.traits.specializations.char32_t]
21.2.3.4
struct char_traits
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.4
Class template basic_string
[basic.string]
21.4.1
basic_string general requirements
[string.require]
21.4.2
basic_string constructors and assignment operators
[string.cons]
21.4.3
basic_string iterator support
[string.iterators]
21.4.4
basic_string capacity
[string.capacity]
21.4.5
basic_string element access
[string.access]
21.4.6
basic_string modifiers
[string.modifiers]
21.4.6.1
basic_string::operator+=
[string::op+=]
21.4.6.2
basic_string::append
[string::append]
21.4.6.3
basic_string::assign
[string::assign]
21.4.6.4
basic_string::insert
[string::insert]
21.4.6.5
basic_string::erase
[string::erase]
21.4.6.6
basic_string::replace
[string::replace]
21.4.6.7
basic_string::copy
[string::copy]
21.4.6.8
basic_string::swap
[string::swap]
21.4.7
basic_string string operations
[string.ops]
21.4.7.1
basic_string accessors
[string.accessors]
21.4.7.2
basic_string::find
[string::find]
21.4.7.3
basic_string::rfind
[string::rfind]
21.4.7.4
basic_string::find_first_of
[string::find.first.of]
21.4.7.5
basic_string::find_last_of
[string::find.last.of]
21.4.7.6
basic_string::find_first_not_of
[string::find.first.not.of]
21.4.7.7
basic_string::find_last_not_of
[string::find.last.not.of]
21.4.7.8
basic_string::substr
[string::substr]
21.4.7.9
basic_string::compare
[string::compare]
21.4.8
basic_string non-member functions
[string.nonmembers]
21.4.8.1
operator+
[string::op+]
21.4.8.2
operator==
[string::operator==]
21.4.8.3
operator!=
[string::op!=]
21.4.8.4
operator<
[string::op<]
21.4.8.5
operator>
[string::op>]
21.4.8.6
operator<=
[string::op<=]
21.4.8.7
operator>=
[string::op>=]
21.4.8.8
swap
[string.special]
21.4.8.9
Inserters and extractors
[string.io]
21.5
Numeric conversions
[string.conversions]
21.6
Hash support
[basic.string.hash]
21.7
Null-terminated sequence utilities
[c.strings]
22
Localization library
[localization]
22.1
General
[localization.general]
22.2
Header synopsis
[locale.syn]
22.3
Locales
[locales]
22.3.1
Class locale
[locale]
22.3.1.1
locale types
[locale.types]
22.3.1.1.1
Type locale::category
[locale.category]
22.3.1.1.2
Class locale::facet
[locale.facet]
22.3.1.1.3
Class locale::id
[locale.id]
22.3.1.2
locale constructors and destructor
[locale.cons]
22.3.1.3
locale members
[locale.members]
22.3.1.4
locale operators
[locale.operators]
22.3.1.5
locale static members
[locale.statics]
22.3.2
locale globals
[locale.global.templates]
22.3.3
Convenience interfaces
[locale.convenience]
22.3.3.1
Character classification
[classification]
22.3.3.2
Conversions
[conversions]
22.3.3.2.1
Character conversions
[conversions.character]
22.3.3.2.2
string conversions
[conversions.string]
22.3.3.2.3
Buffer conversions
[conversions.buffer]
22.4
Standard locale categories
[locale.categories]
22.4.1
The ctype category
[category.ctype]
22.4.1.1
Class template ctype
[locale.ctype]
22.4.1.1.1
ctype members
[locale.ctype.members]
22.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
22.4.1.2
Class template ctype_byname
[locale.ctype.byname]
22.4.1.3
ctype specializations
[facet.ctype.special]
22.4.1.3.1
ctype destructor
[facet.ctype.char.dtor]
22.4.1.3.2
ctype members
[facet.ctype.char.members]
22.4.1.3.3
ctype static members
[facet.ctype.char.statics]
22.4.1.3.4
ctype virtual functions
[facet.ctype.char.virtuals]
22.4.1.4
Class template codecvt
[locale.codecvt]
22.4.1.4.1
codecvt members
[locale.codecvt.members]
22.4.1.4.2
codecvt virtual functions
[locale.codecvt.virtuals]
22.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
22.4.2
The numeric category
[category.numeric]
22.4.2.1
Class template num_get
[locale.num.get]
22.4.2.1.1
num_get members
[facet.num.get.members]
22.4.2.1.2
num_get virtual functions
[facet.num.get.virtuals]
22.4.2.2
Class template num_put
[locale.nm.put]
22.4.2.2.1
num_put members
[facet.num.put.members]
22.4.2.2.2
num_put virtual functions
[facet.num.put.virtuals]
22.4.3
The numeric punctuation facet
[facet.numpunct]
22.4.3.1
Class template numpunct
[locale.numpunct]
22.4.3.1.1
numpunct members
[facet.numpunct.members]
22.4.3.1.2
numpunct virtual functions
[facet.numpunct.virtuals]
22.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
22.4.4
The collate category
[category.collate]
22.4.4.1
Class template collate
[locale.collate]
22.4.4.1.1
collate members
[locale.collate.members]
22.4.4.1.2
collate virtual functions
[locale.collate.virtuals]
22.4.4.2
Class template collate_byname
[locale.collate.byname]
22.4.5
The time category
[category.time]
22.4.5.1
Class template time_get
[locale.time.get]
22.4.5.1.1
time_get members
[locale.time.get.members]
22.4.5.1.2
time_get virtual functions
[locale.time.get.virtuals]
22.4.5.2
Class template time_get_byname
[locale.time.get.byname]
22.4.5.3
Class template time_put
[locale.time.put]
22.4.5.3.1
time_put members
[locale.time.put.members]
22.4.5.3.2
time_put virtual functions
[locale.time.put.virtuals]
22.4.5.4
Class template time_put_byname
[locale.time.put.byname]
22.4.6
The monetary category
[category.monetary]
22.4.6.1
Class template money_get
[locale.money.get]
22.4.6.1.1
money_get members
[locale.money.get.members]
22.4.6.1.2
money_get virtual functions
[locale.money.get.virtuals]
22.4.6.2
Class template money_put
[locale.money.put]
22.4.6.2.1
money_put members
[locale.money.put.members]
22.4.6.2.2
money_put virtual functions
[locale.money.put.virtuals]
22.4.6.3
Class template moneypunct
[locale.moneypunct]
22.4.6.3.1
moneypunct members
[locale.moneypunct.members]
22.4.6.3.2
moneypunct virtual functions
[locale.moneypunct.virtuals]
22.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
22.4.7
The message retrieval category
[category.messages]
22.4.7.1
Class template messages
[locale.messages]
22.4.7.1.1
messages members
[locale.messages.members]
22.4.7.1.2
messages virtual functions
[locale.messages.virtuals]
22.4.7.2
Class template messages_byname
[locale.messages.byname]
22.4.8
Program-defined facets
[facets.examples]
22.5
Standard code conversion facets
[locale.stdcvt]
22.6
C library locales
[c.locales]
23
Containers library
[containers]
23.1
General
[containers.general]
23.2
Container requirements
[container.requirements]
23.2.1
General container requirements
[container.requirements.general]
23.2.2
Container data races
[container.requirements.dataraces]
23.2.3
Sequence containers
[sequence.reqmts]
23.2.4
Associative containers
[associative.reqmts]
23.2.4.1
Exception safety guarantees
[associative.reqmts.except]
23.2.5
Unordered associative containers
[unord.req]
23.2.5.1
Exception safety guarantees
[unord.req.except]
23.3
Sequence containers
[sequences]
23.3.1
In general
[sequences.general]
23.3.2
Class template array
[array]
23.3.2.1
Class template array overview
[array.overview]
23.3.2.2
array constructors, copy, and assignment
[array.cons]
23.3.2.3
array specialized algorithms
[array.special]
23.3.2.4
array::size
[array.size]
23.3.2.5
array::data
[array.data]
23.3.2.6
array::fill
[array.fill]
23.3.2.7
array::swap
[array.swap]
23.3.2.8
Zero sized arrays
[array.zero]
23.3.2.9
Tuple interface to class template array
[array.tuple]
23.3.3
Class template deque
[deque]
23.3.3.1
Class template deque overview
[deque.overview]
23.3.3.2
deque constructors, copy, and assignment
[deque.cons]
23.3.3.3
deque capacity
[deque.capacity]
23.3.3.4
deque modifiers
[deque.modifiers]
23.3.3.5
deque specialized algorithms
[deque.special]
23.3.4
Class template forward_list
[forwardlist]
23.3.4.1
Class template forward_list overview
[forwardlist.overview]
23.3.4.2
forward_list constructors, copy, assignment
[forwardlist.cons]
23.3.4.3
forward_list iterators
[forwardlist.iter]
23.3.4.4
forward_list element access
[forwardlist.access]
23.3.4.5
forward_list modifiers
[forwardlist.modifiers]
23.3.4.6
forward_list operations
[forwardlist.ops]
23.3.4.7
forward_list specialized algorithms
[forwardlist.spec]
23.3.5
Class template list
[list]
23.3.5.1
Class template list overview
[list.overview]
23.3.5.2
list constructors, copy, and assignment
[list.cons]
23.3.5.3
list capacity
[list.capacity]
23.3.5.4
list modifiers
[list.modifiers]
23.3.5.5
list operations
[list.ops]
23.3.5.6
list specialized algorithms
[list.special]
23.3.6
Class template vector
[vector]
23.3.6.1
Class template vector overview
[vector.overview]
23.3.6.2
vector constructors, copy, and assignment
[vector.cons]
23.3.6.3
vector capacity
[vector.capacity]
23.3.6.4
vector data
[vector.data]
23.3.6.5
vector modifiers
[vector.modifiers]
23.3.6.6
vector specialized algorithms
[vector.special]
23.3.7
Class vector
[vector.bool]
23.4
Associative containers
[associative]
23.4.1
In general
[associative.general]
23.4.2
Header synopsis
[associative.map.syn]
23.4.3
Header synopsis
[associative.set.syn]
23.4.4
Class template map
[map]
23.4.4.1
Class template map overview
[map.overview]
23.4.4.2
map constructors, copy, and assignment
[map.cons]
23.4.4.3
map element access
[map.access]
23.4.4.4
map modifiers
[map.modifiers]
23.4.4.5
map operations
[map.ops]
23.4.4.6
map specialized algorithms
[map.special]
23.4.5
Class template multimap
[multimap]
23.4.5.1
Class template multimap overview
[multimap.overview]
23.4.5.2
multimap constructors
[multimap.cons]
23.4.5.3
multimap modifiers
[multimap.modifiers]
23.4.5.4
multimap operations
[multimap.ops]
23.4.5.5
multimap specialized algorithms
[multimap.special]
23.4.6
Class template set
[set]
23.4.6.1
Class template set overview
[set.overview]
23.4.6.2
set constructors, copy, and assignment
[set.cons]
23.4.6.3
set specialized algorithms
[set.special]
23.4.7
Class template multiset
[multiset]
23.4.7.1
Class template multiset overview
[multiset.overview]
23.4.7.2
multiset constructors
[multiset.cons]
23.4.7.3
multiset specialized algorithms
[multiset.special]
23.5
Unordered associative containers
[unord]
23.5.1
In general
[unord.general]
23.5.2
Header synopsis
[unord.map.syn]
23.5.3
Header synopsis
[unord.set.syn]
23.5.4
Class template unordered_map
[unord.map]
23.5.4.1
Class template unordered_map overview
[unord.map.overview]
23.5.4.2
unordered_map constructors
[unord.map.cnstr]
23.5.4.3
unordered_map element access
[unord.map.elem]
23.5.4.4
unordered_map modifiers
[unord.map.modifiers]
23.5.4.5
unordered_map swap
[unord.map.swap]
23.5.5
Class template unordered_multimap
[unord.multimap]
23.5.5.1
Class template unordered_multimap overview
[unord.multimap.overview]
23.5.5.2
unordered_multimap constructors
[unord.multimap.cnstr]
23.5.5.3
unordered_multimap modifiers
[unord.multimap.modifiers]
23.5.5.4
unordered_multimap swap
[unord.multimap.swap]
23.5.6
Class template unordered_set
[unord.set]
23.5.6.1
Class template unordered_set overview
[unord.set.overview]
23.5.6.2
unordered_set constructors
[unord.set.cnstr]
23.5.6.3
unordered_set swap
[unord.set.swap]
23.5.7
Class template unordered_multiset
[unord.multiset]
23.5.7.1
Class template unordered_multiset overview
[unord.multiset.overview]
23.5.7.2
unordered_multiset constructors
[unord.multiset.cnstr]
23.5.7.3
unordered_multiset swap
[unord.multiset.swap]
23.6
Container adaptors
[container.adaptors]
23.6.1
In general
[container.adaptors.general]
23.6.2
Header synopsis
[queue.syn]
23.6.3
Class template queue
[queue]
23.6.3.1
queue definition
[queue.defn]
23.6.3.2
queue constructors
[queue.cons]
23.6.3.3
queue constructors with allocators
[queue.cons.alloc]
23.6.3.4
queue operators
[queue.ops]
23.6.3.5
queue specialized algorithms
[queue.special]
23.6.4
Class template priority_queue
[priority.queue]
23.6.4.1
priority_queue constructors
[priqueue.cons]
23.6.4.2
priority_queue constructors with allocators
[priqueue.cons.alloc]
23.6.4.3
priority_queue members
[priqueue.members]
23.6.4.4
priority_queue specialized algorithms
[priqueue.special]
23.6.5
Class template stack
[stack]
23.6.5.1
Header synopsis
[stack.syn]
23.6.5.2
stack definition
[stack.defn]
23.6.5.3
stack constructors
[stack.cons]
23.6.5.4
stack constructors with allocators
[stack.cons.alloc]
23.6.5.5
stack operators
[stack.ops]
23.6.5.6
stack specialized algorithms
[stack.special]
24
Iterators library
[iterators]
24.1
General
[iterators.general]
24.2
Iterator requirements
[iterator.requirements]
24.2.1
In general
[iterator.requirements.general]
24.2.2
Iterator
[iterator.iterators]
24.2.3
Input iterators
[input.iterators]
24.2.4
Output iterators
[output.iterators]
24.2.5
Forward iterators
[forward.iterators]
24.2.6
Bidirectional iterators
[bidirectional.iterators]
24.2.7
Random access iterators
[random.access.iterators]
24.3
Header synopsis
[iterator.synopsis]
24.4
Iterator primitives
[iterator.primitives]
24.4.1
Iterator traits
[iterator.traits]
24.4.2
Basic iterator
[iterator.basic]
24.4.3
Standard iterator tags
[std.iterator.tags]
24.4.4
Iterator operations
[iterator.operations]
24.5
Iterator adaptors
[predef.iterators]
24.5.1
Reverse iterators
[reverse.iterators]
24.5.1.1
Class template reverse_iterator
[reverse.iterator]
24.5.1.2
reverse_iterator requirements
[reverse.iter.requirements]
24.5.1.3
reverse_iterator operations
[reverse.iter.ops]
24.5.1.3.1
reverse_iterator constructor
[reverse.iter.cons]
24.5.1.3.2
reverse_iterator::operator=
[reverse.iter.op=]
24.5.1.3.3
Conversion
[reverse.iter.conv]
24.5.1.3.4
operator*
[reverse.iter.op.star]
24.5.1.3.5
operator->
[reverse.iter.opref]
24.5.1.3.6
operator++
[reverse.iter.op++]
24.5.1.3.7
operator--
[reverse.iter.op--]
24.5.1.3.8
operator+
[reverse.iter.op+]
24.5.1.3.9
operator+=
[reverse.iter.op+=]
24.5.1.3.10
operator-
[reverse.iter.op-]
24.5.1.3.11
operator-=
[reverse.iter.op-=]
24.5.1.3.12
operator[]
[reverse.iter.opindex]
24.5.1.3.13
operator==
[reverse.iter.op==]
24.5.1.3.14
operator<
[reverse.iter.op<]
24.5.1.3.15
operator!=
[reverse.iter.op!=]
24.5.1.3.16
operator>
[reverse.iter.op>]
24.5.1.3.17
operator>=
[reverse.iter.op>=]
24.5.1.3.18
operator<=
[reverse.iter.op<=]
24.5.1.3.19
operator-
[reverse.iter.opdiff]
24.5.1.3.20
operator+
[reverse.iter.opsum]
24.5.2
Insert iterators
[insert.iterators]
24.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
24.5.2.2
back_insert_iterator operations
[back.insert.iter.ops]
24.5.2.2.1
back_insert_iterator constructor
[back.insert.iter.cons]
24.5.2.2.2
back_insert_iterator::operator=
[back.insert.iter.op=]
24.5.2.2.3
back_insert_iterator::operator*
[back.insert.iter.op*]
24.5.2.2.4
back_insert_iterator::operator++
[back.insert.iter.op++]
24.5.2.2.5
back_inserter
[back.inserter]
24.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
24.5.2.4
front_insert_iterator operations
[front.insert.iter.ops]
24.5.2.4.1
front_insert_iterator constructor
[front.insert.iter.cons]
24.5.2.4.2
front_insert_iterator::operator=
[front.insert.iter.op=]
24.5.2.4.3
front_insert_iterator::operator*
[front.insert.iter.op*]
24.5.2.4.4
front_insert_iterator::operator++
[front.insert.iter.op++]
24.5.2.4.5
front_inserter
[front.inserter]
24.5.2.5
Class template insert_iterator
[insert.iterator]
24.5.2.6
insert_iterator operations
[insert.iter.ops]
24.5.2.6.1
insert_iterator constructor
[insert.iter.cons]
24.5.2.6.2
insert_iterator::operator=
[insert.iter.op=]
24.5.2.6.3
insert_iterator::operator*
[insert.iter.op*]
24.5.2.6.4
insert_iterator::operator++
[insert.iter.op++]
24.5.2.6.5
inserter
[inserter]
24.5.3
Move iterators
[move.iterators]
24.5.3.1
Class template move_iterator
[move.iterator]
24.5.3.2
move_iterator requirements
[move.iter.requirements]
24.5.3.3
move_iterator operations
[move.iter.ops]
24.5.3.3.1
move_iterator constructors
[move.iter.op.const]
24.5.3.3.2
move_iterator::operator=
[move.iter.op=]
24.5.3.3.3
move_iterator conversion
[move.iter.op.conv]
24.5.3.3.4
move_iterator::operator*
[move.iter.op.star]
24.5.3.3.5
move_iterator::operator->
[move.iter.op.ref]
24.5.3.3.6
move_iterator::operator++
[move.iter.op.incr]
24.5.3.3.7
move_iterator::operator--
[move.iter.op.decr]
24.5.3.3.8
move_iterator::operator+
[move.iter.op.+]
24.5.3.3.9
move_iterator::operator+=
[move.iter.op.+=]
24.5.3.3.10
move_iterator::operator-
[move.iter.op.-]
24.5.3.3.11
move_iterator::operator-=
[move.iter.op.-=]
24.5.3.3.12
move_iterator::operator[]
[move.iter.op.index]
24.5.3.3.13
move_iterator comparisons
[move.iter.op.comp]
24.5.3.3.14
move_iterator non-member functions
[move.iter.nonmember]
24.6
Stream iterators
[stream.iterators]
24.6.1
Class template istream_iterator
[istream.iterator]
24.6.1.1
istream_iterator constructors and destructor
[istream.iterator.cons]
24.6.1.2
istream_iterator operations
[istream.iterator.ops]
24.6.2
Class template ostream_iterator
[ostream.iterator]
24.6.2.1
ostream_iterator constructors and destructor
[ostream.iterator.cons.des]
24.6.2.2
ostream_iterator operations
[ostream.iterator.ops]
24.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
24.6.3.1
Class template istreambuf_iterator::proxy
[istreambuf.iterator::proxy]
24.6.3.2
istreambuf_iterator constructors
[istreambuf.iterator.cons]
24.6.3.3
istreambuf_iterator::operator*
[istreambuf.iterator::op*]
24.6.3.4
istreambuf_iterator::operator++
[istreambuf.iterator::op++]
24.6.3.5
istreambuf_iterator::equal
[istreambuf.iterator::equal]
24.6.3.6
operator==
[istreambuf.iterator::op==]
24.6.3.7
operator!=
[istreambuf.iterator::op!=]
24.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
24.6.4.1
ostreambuf_iterator constructors
[ostreambuf.iter.cons]
24.6.4.2
ostreambuf_iterator operations
[ostreambuf.iter.ops]
24.6.5
range access
[iterator.range]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Non-modifying sequence operations
[alg.nonmodifying]
25.2.1
All of
[alg.all_of]
25.2.2
Any of
[alg.any_of]
25.2.3
None of
[alg.none_of]
25.2.4
For each
[alg.foreach]
25.2.5
Find
[alg.find]
25.2.6
Find end
[alg.find.end]
25.2.7
Find first
[alg.find.first.of]
25.2.8
Adjacent find
[alg.adjacent.find]
25.2.9
Count
[alg.count]
25.2.10
Mismatch
[mismatch]
25.2.11
Equal
[alg.equal]
25.2.12
Is permutation
[alg.is_permutation]
25.2.13
Search
[alg.search]
25.3
Mutating sequence operations
[alg.modifying.operations]
25.3.1
Copy
[alg.copy]
25.3.2
Move
[alg.move]
25.3.3
swap
[alg.swap]
25.3.4
Transform
[alg.transform]
25.3.5
Replace
[alg.replace]
25.3.6
Fill
[alg.fill]
25.3.7
Generate
[alg.generate]
25.3.8
Remove
[alg.remove]
25.3.9
Unique
[alg.unique]
25.3.10
Reverse
[alg.reverse]
25.3.11
Rotate
[alg.rotate]
25.3.12
Random shuffle
[alg.random.shuffle]
25.3.13
Partitions
[alg.partitions]
25.4
Sorting and related operations
[alg.sorting]
25.4.1
Sorting
[alg.sort]
25.4.1.1
sort
[sort]
25.4.1.2
stable_sort
[stable.sort]
25.4.1.3
partial_sort
[partial.sort]
25.4.1.4
partial_sort_copy
[partial.sort.copy]
25.4.1.5
is_sorted
[is.sorted]
25.4.2
Nth element
[alg.nth.element]
25.4.3
Binary search
[alg.binary.search]
25.4.3.1
lower_bound
[lower.bound]
25.4.3.2
upper_bound
[upper.bound]
25.4.3.3
equal_range
[equal.range]
25.4.3.4
binary_search
[binary.search]
25.4.4
Merge
[alg.merge]
25.4.5
Set operations on sorted structures
[alg.set.operations]
25.4.5.1
includes
[includes]
25.4.5.2
set_union
[set.union]
25.4.5.3
set_intersection
[set.intersection]
25.4.5.4
set_difference
[set.difference]
25.4.5.5
set_symmetric_difference
[set.symmetric.difference]
25.4.6
Heap operations
[alg.heap.operations]
25.4.6.1
push_heap
[push.heap]
25.4.6.2
pop_heap
[pop.heap]
25.4.6.3
make_heap
[make.heap]
25.4.6.4
sort_heap
[sort.heap]
25.4.6.5
is_heap
[is.heap]
25.4.7
Minimum and maximum
[alg.min.max]
25.4.8
Lexicographical comparison
[alg.lex.comparison]
25.4.9
Permutation generators
[alg.permutation.generators]
25.5
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Numeric type requirements
[numeric.requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header synopsis
[cfenv.syn]
26.4
Complex numbers
[complex.numbers]
26.4.1
Header synopsis
[complex.syn]
26.4.2
Class template complex
[complex]
26.4.3
complex specializations
[complex.special]
26.4.4
complex member functions
[complex.members]
26.4.5
complex member operators
[complex.member.ops]
26.4.6
complex non-member operations
[complex.ops]
26.4.7
complex value operations
[complex.value.ops]
26.4.8
complex transcendentals
[complex.transcendentals]
26.4.9
Additional overloads
[cmplx.over]
26.4.10
Header
[ccmplx]
26.5
Random number generation
[rand]
26.5.1
Requirements
[rand.req]
26.5.1.1
General requirements
[rand.req.genl]
26.5.1.2
Seed sequence requirements
[rand.req.seedseq]
26.5.1.3
Uniform random number generator requirements
[rand.req.urng]
26.5.1.4
Random number engine requirements
[rand.req.eng]
26.5.1.5
Random number engine adaptor requirements
[rand.req.adapt]
26.5.1.6
Random number distribution requirements
[rand.req.dist]
26.5.2
Header synopsis
[rand.synopsis]
26.5.3
Random number engine class templates
[rand.eng]
26.5.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
26.5.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
26.5.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
26.5.4
Random number engine adaptor class templates
[rand.adapt]
26.5.4.1
In general
[rand.adapt.general]
26.5.4.2
Class template discard_block_engine
[rand.adapt.disc]
26.5.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
26.5.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
26.5.5
Engines and engine adaptors with predefined parameters
[rand.predef]
26.5.6
Class random_device
[rand.device]
26.5.7
Utilities
[rand.util]
26.5.7.1
Class seed_seq
[rand.util.seedseq]
26.5.7.2
Function template generate_canonical
[rand.util.canonical]
26.5.8
Random number distribution class templates
[rand.dist]
26.5.8.1
In general
[rand.dist.general]
26.5.8.2
Uniform distributions
[rand.dist.uni]
26.5.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
26.5.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
26.5.8.3
Bernoulli distributions
[rand.dist.bern]
26.5.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
26.5.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
26.5.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
26.5.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
26.5.8.4
Poisson distributions
[rand.dist.pois]
26.5.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
26.5.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
26.5.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
26.5.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
26.5.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
26.5.8.5
Normal distributions
[rand.dist.norm]
26.5.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
26.5.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
26.5.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
26.5.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
26.5.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
26.5.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
26.5.8.6
Sampling distributions
[rand.dist.samp]
26.5.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
26.5.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
26.5.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
26.6
Numeric arrays
[numarray]
26.6.1
Header synopsis
[valarray.syn]
26.6.2
Class template valarray
[template.valarray]
26.6.2.1
Class template valarray overview
[template.valarray.overview]
26.6.2.2
valarray constructors
[valarray.cons]
26.6.2.3
valarray assignment
[valarray.assign]
26.6.2.4
valarray element access
[valarray.access]
26.6.2.5
valarray subset operations
[valarray.sub]
26.6.2.6
valarray unary operators
[valarray.unary]
26.6.2.7
valarray computed assignment
[valarray.cassign]
26.6.2.8
valarray member functions
[valarray.members]
26.6.3
valarray non-member operations
[valarray.nonmembers]
26.6.3.1
valarray binary operators
[valarray.binary]
26.6.3.2
valarray logical operators
[valarray.comparison]
26.6.3.3
valarray transcendentals
[valarray.transcend]
26.6.3.4
valarray specialized algorithms
[valarray.special]
26.6.4
Class slice
[class.slice]
26.6.4.1
Class slice overview
[class.slice.overview]
26.6.4.2
slice constructors
[cons.slice]
26.6.4.3
slice access functions
[slice.access]
26.6.5
Class template slice_array
[template.slice.array]
26.6.5.1
Class template slice_array overview
[template.slice.array.overview]
26.6.5.2
slice_array assignment
[slice.arr.assign]
26.6.5.3
slice_array computed assignment
[slice.arr.comp.assign]
26.6.5.4
slice_array fill function
[slice.arr.fill]
26.6.6
The gslice class
[class.gslice]
26.6.6.1
The gslice class overview
[class.gslice.overview]
26.6.6.2
gslice constructors
[gslice.cons]
26.6.6.3
gslice access functions
[gslice.access]
26.6.7
Class template gslice_array
[template.gslice.array]
26.6.7.1
Class template gslice_array overview
[template.gslice.array.overview]
26.6.7.2
gslice_array assignment
[gslice.array.assign]
26.6.7.3
gslice_array
[gslice.array.comp.assign]
26.6.7.4
gslice_array fill function
[gslice.array.fill]
26.6.8
Class template mask_array
[template.mask.array]
26.6.8.1
Class template mask_array overview
[template.mask.array.overview]
26.6.8.2
mask_array assignment
[mask.array.assign]
26.6.8.3
mask_array computed assignment
[mask.array.comp.assign]
26.6.8.4
mask_array fill function
[mask.array.fill]
26.6.9
Class template indirect_array
[template.indirect.array]
26.6.9.1
Class template indirect_array overview
[template.indirect.array.overview]
26.6.9.2
indirect_array assignment
[indirect.array.assign]
26.6.9.3
indirect_array computed assignment
[indirect.array.comp.assign]
26.6.9.4
indirect_array fill function
[indirect.array.fill]
26.6.10
valarray range access
[valarray.range]
26.7
Generalized numeric operations
[numeric.ops]
26.7.1
Header synopsis
[numeric.ops.overview]
26.7.2
Accumulate
[accumulate]
26.7.3
Inner product
[inner.product]
26.7.4
Partial sum
[partial.sum]
26.7.5
Adjacent difference
[adjacent.difference]
26.7.6
Iota
[numeric.iota]
26.8
C library
[c.math]
27
Input/output library
[input.output]
27.1
General
[input.output.general]
27.2
Iostreams requirements
[iostreams.requirements]
27.2.1
Imbue limitations
[iostream.limits.imbue]
27.2.2
Positioning type limitations
[iostreams.limits.pos]
27.2.3
Thread safety
[iostreams.threadsafety]
27.3
Forward declarations
[iostream.forward]
27.4
Standard iostream objects
[iostream.objects]
27.4.1
Overview
[iostream.objects.overview]
27.4.2
Narrow stream objects
[narrow.stream.objects]
27.4.3
Wide stream objects
[wide.stream.objects]
27.5
Iostreams base classes
[iostreams.base]
27.5.1
Overview
[iostreams.base.overview]
27.5.2
Types
[stream.types]
27.5.3
Class ios_base
[ios.base]
27.5.3.1
Types
[ios.types]
27.5.3.1.1
Class ios_base::failure
[ios::failure]
27.5.3.1.2
Type ios_base::fmtflags
[ios::fmtflags]
27.5.3.1.3
Type ios_base::iostate
[ios::iostate]
27.5.3.1.4
Type ios_base::openmode
[ios::openmode]
27.5.3.1.5
Type ios_base::seekdir
[ios::seekdir]
27.5.3.1.6
Class ios_base::Init
[ios::Init]
27.5.3.2
ios_base state functions
[fmtflags.state]
27.5.3.3
ios_base functions
[ios.base.locales]
27.5.3.4
ios_base static members
[ios.members.static]
27.5.3.5
ios_base storage functions
[ios.base.storage]
27.5.3.6
ios_base callbacks
[ios.base.callback]
27.5.3.7
ios_base constructors/destructor
[ios.base.cons]
27.5.4
Class template fpos
[fpos]
27.5.4.1
fpos members
[fpos.members]
27.5.4.2
fpos requirements
[fpos.operations]
27.5.5
Class template basic_ios
[ios]
27.5.5.1
Overview
[ios.overview]
27.5.5.2
basic_ios constructors
[basic.ios.cons]
27.5.5.3
Member functions
[basic.ios.members]
27.5.5.4
basic_ios flags functions
[iostate.flags]
27.5.6
ios_base manipulators
[std.ios.manip]
27.5.6.1
fmtflags manipulators
[fmtflags.manip]
27.5.6.2
adjustfield manipulators
[adjustfield.manip]
27.5.6.3
basefield manipulators
[basefield.manip]
27.5.6.4
floatfield manipulators
[floatfield.manip]
27.5.6.5
Error reporting
[error.reporting]
27.6
Stream buffers
[stream.buffers]
27.6.1
Overview
[stream.buffers.overview]
27.6.2
Stream buffer requirements
[streambuf.reqts]
27.6.3
Class template basic_streambuf
[streambuf]
27.6.3.1
basic_streambuf constructors
[streambuf.cons]
27.6.3.2
basic_streambuf public member functions
[streambuf.members]
27.6.3.2.1
Locales
[streambuf.locales]
27.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
27.6.3.2.3
Get area
[streambuf.pub.get]
27.6.3.2.4
Putback
[streambuf.pub.pback]
27.6.3.2.5
Put area
[streambuf.pub.put]
27.6.3.3
basic_streambuf protected member functions
[streambuf.protected]
27.6.3.3.1
Assignment
[streambuf.assign]
27.6.3.3.2
Get area access
[streambuf.get.area]
27.6.3.3.3
Put area access
[streambuf.put.area]
27.6.3.4
basic_streambuf virtual functions
[streambuf.virtuals]
27.6.3.4.1
Locales
[streambuf.virt.locales]
27.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
27.6.3.4.3
Get area
[streambuf.virt.get]
27.6.3.4.4
Putback
[streambuf.virt.pback]
27.6.3.4.5
Put area
[streambuf.virt.put]
27.7
Formatting and manipulators
[iostream.format]
27.7.1
Overview
[iostream.format.overview]
27.7.2
Input streams
[input.streams]
27.7.2.1
Class template basic_istream
[istream]
27.7.2.1.1
basic_istream constructors
[istream.cons]
27.7.2.1.2
Class basic_istream assign and swap
[istream.assign]
27.7.2.1.3
Class basic_istream::sentry
[istream::sentry]
27.7.2.2
Formatted input functions
[istream.formatted]
27.7.2.2.1
Common requirements
[istream.formatted.reqmts]
27.7.2.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
27.7.2.2.3
basic_istream::operator>>
[istream::extractors]
27.7.2.3
Unformatted input functions
[istream.unformatted]
27.7.2.4
Standard basic_istream manipulators
[istream.manip]
27.7.2.5
Class template basic_iostream
[iostreamclass]
27.7.2.5.1
basic_iostream constructors
[iostream.cons]
27.7.2.5.2
basic_iostream destructor
[iostream.dest]
27.7.2.5.3
basic_iostream assign and swap
[iostream.assign]
27.7.2.6
Rvalue stream extraction
[istream.rvalue]
27.7.3
Output streams
[output.streams]
27.7.3.1
Class template basic_ostream
[ostream]
27.7.3.2
basic_ostream constructors
[ostream.cons]
27.7.3.3
Class basic_ostream assign and swap
[ostream.assign]
27.7.3.4
Class basic_ostream::sentry
[ostream::sentry]
27.7.3.5
basic_ostream seek members
[ostream.seeks]
27.7.3.6
Formatted output functions
[ostream.formatted]
27.7.3.6.1
Common requirements
[ostream.formatted.reqmts]
27.7.3.6.2
Arithmetic inserters
[ostream.inserters.arithmetic]
27.7.3.6.3
basic_ostream::operator<<
[ostream.inserters]
27.7.3.6.4
Character inserter function templates
[ostream.inserters.character]
27.7.3.7
Unformatted output functions
[ostream.unformatted]
27.7.3.8
Standard basic_ostream manipulators
[ostream.manip]
27.7.3.9
Rvalue stream insertion
[ostream.rvalue]
27.7.4
Standard manipulators
[std.manip]
27.7.5
Extended manipulators
[ext.manip]
27.8
String-based streams
[string.streams]
27.8.1
Overview
[string.streams.overview]
27.8.2
Class template basic_stringbuf
[stringbuf]
27.8.2.1
basic_stringbuf constructors
[stringbuf.cons]
27.8.2.2
Assign and swap
[stringbuf.assign]
27.8.2.3
Member functions
[stringbuf.members]
27.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
27.8.3
Class template basic_istringstream
[istringstream]
27.8.3.1
basic_istringstream constructors
[istringstream.cons]
27.8.3.2
Assign and swap
[istringstream.assign]
27.8.3.3
Member functions
[istringstream.members]
27.8.4
Class template basic_ostringstream
[ostringstream]
27.8.4.1
basic_ostringstream constructors
[ostringstream.cons]
27.8.4.2
Assign and swap
[ostringstream.assign]
27.8.4.3
Member functions
[ostringstream.members]
27.8.5
Class template basic_stringstream
[stringstream]
27.8.6
basic_stringstream constructors
[stringstream.cons]
27.8.6.1
Assign and swap
[stringstream.assign]
27.8.7
Member functions
[stringstream.members]
27.9
File-based streams
[file.streams]
27.9.1
File streams
[fstreams]
27.9.1.1
Class template basic_filebuf
[filebuf]
27.9.1.2
basic_filebuf constructors
[filebuf.cons]
27.9.1.3
Assign and swap
[filebuf.assign]
27.9.1.4
Member functions
[filebuf.members]
27.9.1.5
Overridden virtual functions
[filebuf.virtuals]
27.9.1.6
Class template basic_ifstream
[ifstream]
27.9.1.7
basic_ifstream constructors
[ifstream.cons]
27.9.1.8
Assign and swap
[ifstream.assign]
27.9.1.9
Member functions
[ifstream.members]
27.9.1.10
Class template basic_ofstream
[ofstream]
27.9.1.11
basic_ofstream constructors
[ofstream.cons]
27.9.1.12
Assign and swap
[ofstream.assign]
27.9.1.13
Member functions
[ofstream.members]
27.9.1.14
Class template basic_fstream
[fstream]
27.9.1.15
basic_fstream constructors
[fstream.cons]
27.9.1.16
Assign and swap
[fstream.assign]
27.9.1.17
Member functions
[fstream.members]
27.9.2
C library files
[c.files]
28
Regular expressions library
[re]
28.1
General
[re.general]
28.2
Definitions
[re.def]
28.2.1
collating element
[defns.regex.collating.element]
28.2.2
finite state machine
[defns.regex.finite.state.machine]
28.2.3
format specifier
[defns.regex.format.specifier]
28.2.4
matched
[defns.regex.matched]
28.2.5
primary equivalence class
[defns.regex.primary.equivalence.class]
28.2.6
regular expression
[defns.regex.regular.expression]
28.2.7
sub-expression
[defns.regex.subexpression]
28.3
Requirements
[re.req]
28.4
Header synopsis
[re.syn]
28.5
Namespace std::regex_constants
[re.const]
28.5.1
Bitmask type syntax_option_type
[re.synopt]
28.5.2
Bitmask type regex_constants::match_flag_type
[re.matchflag]
28.5.3
Implementation-defined error_type
[re.err]
28.6
Class regex_error
[re.badexp]
28.7
Class template regex_traits
[re.traits]
28.8
Class template basic_regex
[re.regex]
28.8.1
basic_regex constants
[re.regex.const]
28.8.2
basic_regex constructors
[re.regex.construct]
28.8.3
basic_regex assign
[re.regex.assign]
28.8.4
basic_regex constant operations
[re.regex.operations]
28.8.5
basic_regex locale
[re.regex.locale]
28.8.6
basic_regex swap
[re.regex.swap]
28.8.7
basic_regex non-member functions
[re.regex.nonmemb]
28.8.7.1
basic_regex non-member swap
[re.regex.nmswap]
28.9
Class template sub_match
[re.submatch]
28.9.1
sub_match members
[re.submatch.members]
28.9.2
sub_match non-member operators
[re.submatch.op]
28.10
Class template match_results
[re.results]
28.10.1
match_results constructors
[re.results.const]
28.10.2
match_results state
[re.results.state]
28.10.3
match_results size
[re.results.size]
28.10.4
match_results element access
[re.results.acc]
28.10.5
match_results formatting
[re.results.form]
28.10.6
match_results allocator
[re.results.all]
28.10.7
match_results swap
[re.results.swap]
28.10.8
match_results non-member functions
[re.results.nonmember]
28.11
Regular expression algorithms
[re.alg]
28.11.1
exceptions
[re.except]
28.11.2
regex_match
[re.alg.match]
28.11.3
regex_search
[re.alg.search]
28.11.4
regex_replace
[re.alg.replace]
28.12
Regular expression iterators
[re.iter]
28.12.1
Class template regex_iterator
[re.regiter]
28.12.1.1
regex_iterator constructors
[re.regiter.cnstr]
28.12.1.2
regex_iterator comparisons
[re.regiter.comp]
28.12.1.3
regex_iterator dereference
[re.regiter.deref]
28.12.1.4
regex_iterator increment
[re.regiter.incr]
28.12.2
Class template regex_token_iterator
[re.tokiter]
28.12.2.1
regex_token_iterator constructors
[re.tokiter.cnstr]
28.12.2.2
regex_token_iterator comparisons
[re.tokiter.comp]
28.12.2.3
regex_token_iterator dereference
[re.tokiter.deref]
28.12.2.4
regex_token_iterator increment
[re.tokiter.incr]
28.13
Modified ECMAScript regular expression grammar
[re.grammar]
29
Atomic operations library
[atomics]
29.1
General
[atomics.general]
29.2
Header synopsis
[atomics.syn]
29.3
Order and consistency
[atomics.order]
29.4
Lock-free property
[atomics.lockfree]
29.5
Atomic types
[atomics.types.generic]
29.6
Operations on atomic types
[atomics.types.operations]
29.6.1
General operations on atomic types
[atomics.types.operations.general]
29.6.2
Templated operations on atomic types
[atomics.types.operations.templ]
29.6.3
Arithmetic operations on atomic types
[atomics.types.operations.arith]
29.6.4
Operations on atomic pointer types
[atomics.types.operations.pointer]
29.6.5
Requirements for operations on atomic types
[atomics.types.operations.req]
29.7
Flag type and operations
[atomics.flag]
29.8
Fences
[atomics.fences]
30
Thread support library
[thread]
30.1
General
[thread.general]
30.2
Requirements
[thread.req]
30.2.1
Template parameter names
[thread.req.paramname]
30.2.2
Exceptions
[thread.req.exception]
30.2.3
Native handles
[thread.req.native]
30.2.4
Timing specifications
[thread.req.timing]
30.2.5
Requirements for Lockable types
[thread.req.lockable]
30.2.5.1
In general
[thread.req.lockable.general]
30.2.5.2
BasicLockable requirements
[thread.req.lockable.basic]
30.2.5.3
Lockable requirements
[thread.req.lockable.req]
30.2.5.4
TimedLockable requirements
[thread.req.lockable.timed]
30.2.6
decay_copy
[thread.decaycopy]
30.3
Threads
[thread.threads]
30.3.1
Class thread
[thread.thread.class]
30.3.1.1
Class thread::id
[thread.thread.id]
30.3.1.2
thread constructors
[thread.thread.constr]
30.3.1.3
thread destructor
[thread.thread.destr]
30.3.1.4
thread assignment
[thread.thread.assign]
30.3.1.5
thread members
[thread.thread.member]
30.3.1.6
thread static members
[thread.thread.static]
30.3.1.7
thread specialized algorithms
[thread.thread.algorithm]
30.3.2
Namespace this_thread
[thread.thread.this]
30.4
Mutual exclusion
[thread.mutex]
30.4.1
Mutex requirements
[thread.mutex.requirements]
30.4.1.1
In general
[thread.mutex.requirements.general]
30.4.1.2
Mutex types
[thread.mutex.requirements.mutex]
30.4.1.2.1
Class mutex
[thread.mutex.class]
30.4.1.2.2
Class recursive_mutex
[thread.mutex.recursive]
30.4.1.3
Timed mutex types
[thread.timedmutex.requirements]
30.4.1.3.1
Class timed_mutex
[thread.timedmutex.class]
30.4.1.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
30.4.2
Locks
[thread.lock]
30.4.2.1
Class template lock_guard
[thread.lock.guard]
30.4.2.2
Class template unique_lock
[thread.lock.unique]
30.4.2.2.1
unique_lock constructors, destructor, and assignment
[thread.lock.unique.cons]
30.4.2.2.2
unique_lock locking
[thread.lock.unique.locking]
30.4.2.2.3
unique_lock modifiers
[thread.lock.unique.mod]
30.4.2.2.4
unique_lock observers
[thread.lock.unique.obs]
30.4.3
Generic locking algorithms
[thread.lock.algorithm]
30.4.4
Call once
[thread.once]
30.4.4.1
Struct once_flag
[thread.once.onceflag]
30.4.4.2
Function call_once
[thread.once.callonce]
30.5
Condition variables
[thread.condition]
30.5.1
Class condition_variable
[thread.condition.condvar]
30.5.2
Class condition_variable_any
[thread.condition.condvarany]
30.6
Futures
[futures]
30.6.1
Overview
[futures.overview]
30.6.2
Error handling
[futures.errors]
30.6.3
Class future_error
[futures.future_error]
30.6.4
Shared state
[futures.state]
30.6.5
Class template promise
[futures.promise]
30.6.6
Class template future
[futures.unique_future]
30.6.7
Class template shared_future
[futures.shared_future]
30.6.8
Function template async
[futures.async]
30.6.9
Class template packaged_task
[futures.task]
30.6.9.1
packaged_task member functions
[futures.task.members]
30.6.9.2
packaged_task globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basic concepts
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Declarators
[gram.decl]
A.8
Classes
[gram.class]
A.9
Derived classes
[gram.derived]
A.10
Special member functions
[gram.special]
A.11
Overloading
[gram.over]
A.12
Templates
[gram.temp]
A.13
Exception handling
[gram.except]
A.14
Preprocessing directives
[gram.cpp]
Annex B (informative)
Implementation quantities
[implimits]
Annex C (informative)
Compatibility
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
Clause [lex]: lexical conventions
[diff.lex]
C.1.2
Clause [basic]: basic concepts
[diff.basic]
C.1.3
Clause [conv]: standard conversions
[diff.conv]
C.1.4
Clause [expr]: expressions
[diff.expr]
C.1.5
Clause [stmt.stmt]: statements
[diff.stat]
C.1.6
Clause [dcl.dcl]: declarations
[diff.dcl]
C.1.7
Clause [dcl.decl]: declarators
[diff.decl]
C.1.8
Clause [class]: classes
[diff.class]
C.1.9
Clause [special]: special member functions
[diff.special]
C.1.10
Clause [cpp]: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.2.2
Clause [expr]: expressions
[diff.cpp03.expr]
C.2.3
Clause [dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.2.4
Clause [dcl.decl]: declarators
[diff.cpp03.dcl.decl]
C.2.5
Clause [special]: special member functions
[diff.cpp03.special]
C.2.6
Clause [temp]: templates
[diff.cpp03.temp]
C.2.7
Clause [library]: library introduction
[diff.cpp03.library]
C.2.8
Clause [language.support]: language support library
[diff.cpp03.language.support]
C.2.9
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.2.10
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.2.11
Clause [strings]: strings library
[diff.cpp03.strings]
C.2.12
Clause [containers]: containers library
[diff.cpp03.containers]
C.2.13
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.2.14
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.2.15
Clause [input.output]: Input/output library
[diff.cpp03.input.output]
C.3
C standard library
[diff.library]
C.3.1
Modifications to headers
[diff.mods.to.headers]
C.3.2
Modifications to definitions
[diff.mods.to.definitions]
C.3.2.1
Types char16_t and char32_t
[diff.char16]
C.3.2.2
Type wchar_t
[diff.wchar.t]
C.3.2.3
Header
[diff.header.iso646.h]
C.3.2.4
Macro NULL
[diff.null]
C.3.3
Modifications to declarations
[diff.mods.to.declarations]
C.3.4
Modifications to behavior
[diff.mods.to.behavior]
C.3.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.3.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
D.1
Increment operator with bool operand
[depr.incr.bool]
D.2
register keyword
[depr.register]
D.3
Implicit declaration of copy functions
[depr.impldec]
D.4
Dynamic exception specifications
[depr.except.spec]
D.5
C standard library headers
[depr.c.headers]
D.6
Old iostreams members
[depr.ios.members]
D.7
char* streams
[depr.str.strstreams]
D.7.1
Class strstreambuf
[depr.strstreambuf]
D.7.1.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.7.1.2
Member functions
[depr.strstreambuf.members]
D.7.1.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.7.2
Class istrstream
[depr.istrstream]
D.7.2.1
istrstream constructors
[depr.istrstream.cons]
D.7.2.2
Member functions
[depr.istrstream.members]
D.7.3
Class ostrstream
[depr.ostrstream]
D.7.3.1
ostrstream constructors
[depr.ostrstream.cons]
D.7.3.2
Member functions
[depr.ostrstream.members]
D.7.4
Class strstream
[depr.strstream]
D.7.4.1
strstream constructors
[depr.strstream.cons]
D.7.4.2
strstream destructor
[depr.strstream.dest]
D.7.4.3
strstream operations
[depr.strstream.oper]
D.8
Function objects
[depr.function.objects]
D.8.1
Base
[depr.base]
D.8.2
Function adaptors
[depr.adaptors]
D.8.2.1
Adaptors for pointers to functions
[depr.function.pointer.adaptors]
D.8.2.2
Adaptors for pointers to members
[depr.member.pointer.adaptors]
D.9
Binders
[depr.lib.binders]
D.9.1
Class template binder1st
[depr.lib.binder.1st]
D.9.2
bind1st
[depr.lib.bind.1st]
D.9.3
Class template binder2nd
[depr.lib.binder.2nd]
D.9.4
bind2nd
[depr.lib.bind.2nd]
D.10
auto_ptr
[depr.auto.ptr]
D.10.1
Class template auto_ptr
[auto.ptr]
D.10.1.1
auto_ptr constructors
[auto.ptr.cons]
D.10.1.2
auto_ptr members
[auto.ptr.members]
D.10.1.3
auto_ptr conversions
[auto.ptr.conv]
D.11
Violating exception-specifications
[exception.unexpected]
D.11.1
Type unexpected_handler
[unexpected.handler]
D.11.2
set_unexpected
[set.unexpected]
D.11.3
get_unexpected
[get.unexpected]
D.11.4
unexpected
[unexpected]
Annex E (normative)
Universal character names for identifier characters
[charname]
E.1
Ranges of characters allowed
[charname.allowed]
E.2
Ranges of characters disallowed initially
[charname.disallowed]
C++14 (N4140)
1
General
[intro]
1.1
Scope
[intro.scope]
1.2
Normative references
[intro.refs]
1.3
Terms and definitions
[intro.defs]
1.3.1
argument
[defns.argument]
1.3.2
argument
[defns.argument.macro]
1.3.3
argument
[defns.argument.throw]
1.3.4
argument
[defns.argument.templ]
1.3.5
conditionally-supported
[defns.cond.supp]
1.3.6
diagnostic message
[defns.diagnostic]
1.3.7
dynamic type
[defns.dynamic.type]
1.3.8
dynamic type
[defns.dynamic.type.prvalue]
1.3.9
ill-formed program
[defns.ill.formed]
1.3.10
implementation-defined behavior
[defns.impl.defined]
1.3.11
implementation limits
[defns.impl.limits]
1.3.12
locale-specific behavior
[defns.locale.specific]
1.3.13
multibyte character
[defns.multibyte]
1.3.14
parameter
[defns.parameter]
1.3.15
parameter
[defns.parameter.macro]
1.3.16
parameter
[defns.parameter.templ]
1.3.17
signature
[defns.signature]
1.3.18
signature
[defns.signature.templ]
1.3.19
signature
[defns.signature.spec]
1.3.20
signature
[defns.signature.member]
1.3.21
signature
[defns.signature.member.templ]
1.3.22
signature
[defns.signature.member.spec]
1.3.23
static type
[defns.static.type]
1.3.24
undefined behavior
[defns.undefined]
1.3.25
unspecified behavior
[defns.unspecified]
1.3.26
well-formed program
[defns.well.formed]
1.4
Implementation compliance
[intro.compliance]
1.5
Structure of this International Standard
[intro.structure]
1.6
Syntax notation
[syntax]
1.7
The C++ memory model
[intro.memory]
1.8
The C++ object model
[intro.object]
1.9
Program execution
[intro.execution]
1.10
Multi-threaded executions and data races
[intro.multithread]
1.11
Acknowledgments
[intro.ack]
2
Lexical conventions
[lex]
2.1
Separate translation
[lex.separate]
2.2
Phases of translation
[lex.phases]
2.3
Character sets
[lex.charset]
2.4
Trigraph sequences
[lex.trigraph]
2.5
Preprocessing tokens
[lex.pptoken]
2.6
Alternative tokens
[lex.digraph]
2.7
Tokens
[lex.token]
2.8
Comments
[lex.comment]
2.9
Header names
[lex.header]
2.10
Preprocessing numbers
[lex.ppnumber]
2.11
Identifiers
[lex.name]
2.12
Keywords
[lex.key]
2.13
Operators and punctuators
[lex.operators]
2.14
Literals
[lex.literal]
2.14.1
Kinds of literals
[lex.literal.kinds]
2.14.2
Integer literals
[lex.icon]
2.14.3
Character literals
[lex.ccon]
2.14.4
Floating literals
[lex.fcon]
2.14.5
String literals
[lex.string]
2.14.6
Boolean literals
[lex.bool]
2.14.7
Pointer literals
[lex.nullptr]
2.14.8
User-defined literals
[lex.ext]
3
Basic concepts
[basic]
3.1
Declarations and definitions
[basic.def]
3.2
One definition rule
[basic.def.odr]
3.3
Scope
[basic.scope]
3.3.1
Declarative regions and scopes
[basic.scope.declarative]
3.3.2
Point of declaration
[basic.scope.pdecl]
3.3.3
Block scope
[basic.scope.block]
3.3.4
Function prototype scope
[basic.scope.proto]
3.3.5
Function scope
[basic.funscope]
3.3.6
Namespace scope
[basic.scope.namespace]
3.3.7
Class scope
[basic.scope.class]
3.3.8
Enumeration scope
[basic.scope.enum]
3.3.9
Template parameter scope
[basic.scope.temp]
3.3.10
Name hiding
[basic.scope.hiding]
3.4
Name lookup
[basic.lookup]
3.4.1
Unqualified name lookup
[basic.lookup.unqual]
3.4.2
Argument-dependent name lookup
[basic.lookup.argdep]
3.4.3
Qualified name lookup
[basic.lookup.qual]
3.4.3.1
Class members
[class.qual]
3.4.3.2
Namespace members
[namespace.qual]
3.4.4
Elaborated type specifiers
[basic.lookup.elab]
3.4.5
Class member access
[basic.lookup.classref]
3.4.6
Using-directives and namespace aliases
[basic.lookup.udir]
3.5
Program and linkage
[basic.link]
3.6
Start and termination
[basic.start]
3.6.1
Main function
[basic.start.main]
3.6.2
Initialization of non-local variables
[basic.start.init]
3.6.3
Termination
[basic.start.term]
3.7
Storage duration
[basic.stc]
3.7.1
Static storage duration
[basic.stc.static]
3.7.2
Thread storage duration
[basic.stc.thread]
3.7.3
Automatic storage duration
[basic.stc.auto]
3.7.4
Dynamic storage duration
[basic.stc.dynamic]
3.7.4.1
Allocation functions
[basic.stc.dynamic.allocation]
3.7.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
3.7.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
3.7.5
Duration of subobjects
[basic.stc.inherit]
3.8
Object lifetime
[basic.life]
3.9
Types
[basic.types]
3.9.1
Fundamental types
[basic.fundamental]
3.9.2
Compound types
[basic.compound]
3.9.3
CV-qualifiers
[basic.type.qualifier]
3.10
Lvalues and rvalues
[basic.lval]
3.11
Alignment
[basic.align]
4
Standard conversions
[conv]
4.1
Lvalue-to-rvalue conversion
[conv.lval]
4.2
Array-to-pointer conversion
[conv.array]
4.3
Function-to-pointer conversion
[conv.func]
4.4
Qualification conversions
[conv.qual]
4.5
Integral promotions
[conv.prom]
4.6
Floating point promotion
[conv.fpprom]
4.7
Integral conversions
[conv.integral]
4.8
Floating point conversions
[conv.double]
4.9
Floating-integral conversions
[conv.fpint]
4.10
Pointer conversions
[conv.ptr]
4.11
Pointer to member conversions
[conv.mem]
4.12
Boolean conversions
[conv.bool]
4.13
Integer conversion rank
[conv.rank]
5
Expressions
[expr]
5.1
Primary expressions
[expr.prim]
5.1.1
General
[expr.prim.general]
5.1.2
Lambda expressions
[expr.prim.lambda]
5.2
Postfix expressions
[expr.post]
5.2.1
Subscripting
[expr.sub]
5.2.2
Function call
[expr.call]
5.2.3
Explicit type conversion (functional notation)
[expr.type.conv]
5.2.4
Pseudo destructor call
[expr.pseudo]
5.2.5
Class member access
[expr.ref]
5.2.6
Increment and decrement
[expr.post.incr]
5.2.7
Dynamic cast
[expr.dynamic.cast]
5.2.8
Type identification
[expr.typeid]
5.2.9
Static cast
[expr.static.cast]
5.2.10
Reinterpret cast
[expr.reinterpret.cast]
5.2.11
Const cast
[expr.const.cast]
5.3
Unary expressions
[expr.unary]
5.3.1
Unary operators
[expr.unary.op]
5.3.2
Increment and decrement
[expr.pre.incr]
5.3.3
Sizeof
[expr.sizeof]
5.3.4
New
[expr.new]
5.3.5
Delete
[expr.delete]
5.3.6
Alignof
[expr.alignof]
5.3.7
noexcept operator
[expr.unary.noexcept]
5.4
Explicit type conversion (cast notation)
[expr.cast]
5.5
Pointer-to-member operators
[expr.mptr.oper]
5.6
Multiplicative operators
[expr.mul]
5.7
Additive operators
[expr.add]
5.8
Shift operators
[expr.shift]
5.9
Relational operators
[expr.rel]
5.10
Equality operators
[expr.eq]
5.11
Bitwise AND operator
[expr.bit.and]
5.12
Bitwise exclusive OR operator
[expr.xor]
5.13
Bitwise inclusive OR operator
[expr.or]
5.14
Logical AND operator
[expr.log.and]
5.15
Logical OR operator
[expr.log.or]
5.16
Conditional operator
[expr.cond]
5.17
Assignment and compound assignment operators
[expr.ass]
5.18
Comma operator
[expr.comma]
5.19
Constant expressions
[expr.const]
6
Statements
[stmt.stmt]
6.1
Labeled statement
[stmt.label]
6.2
Expression statement
[stmt.expr]
6.3
Compound statement or block
[stmt.block]
6.4
Selection statements
[stmt.select]
6.4.1
The if statement
[stmt.if]
6.4.2
The switch statement
[stmt.switch]
6.5
Iteration statements
[stmt.iter]
6.5.1
The while statement
[stmt.while]
6.5.2
The do statement
[stmt.do]
6.5.3
The for statement
[stmt.for]
6.5.4
The range-based for statement
[stmt.ranged]
6.6
Jump statements
[stmt.jump]
6.6.1
The break statement
[stmt.break]
6.6.2
The continue statement
[stmt.cont]
6.6.3
The return statement
[stmt.return]
6.6.4
The goto statement
[stmt.goto]
6.7
Declaration statement
[stmt.dcl]
6.8
Ambiguity resolution
[stmt.ambig]
7
Declarations
[dcl.dcl]
7.1
Specifiers
[dcl.spec]
7.1.1
Storage class specifiers
[dcl.stc]
7.1.2
Function specifiers
[dcl.fct.spec]
7.1.3
The typedef specifier
[dcl.typedef]
7.1.4
The friend specifier
[dcl.friend]
7.1.5
The constexpr specifier
[dcl.constexpr]
7.1.6
Type specifiers
[dcl.type]
7.1.6.1
The cv-qualifiers
[dcl.type.cv]
7.1.6.2
Simple type specifiers
[dcl.type.simple]
7.1.6.3
Elaborated type specifiers
[dcl.type.elab]
7.1.6.4
auto specifier
[dcl.spec.auto]
7.2
Enumeration declarations
[dcl.enum]
7.3
Namespaces
[basic.namespace]
7.3.1
Namespace definition
[namespace.def]
7.3.1.1
Unnamed namespaces
[namespace.unnamed]
7.3.1.2
Namespace member definitions
[namespace.memdef]
7.3.2
Namespace alias
[namespace.alias]
7.3.3
The using declaration
[namespace.udecl]
7.3.4
Using directive
[namespace.udir]
7.4
The asm declaration
[dcl.asm]
7.5
Linkage specifications
[dcl.link]
7.6
Attributes
[dcl.attr]
7.6.1
Attribute syntax and semantics
[dcl.attr.grammar]
7.6.2
Alignment specifier
[dcl.align]
7.6.3
Noreturn attribute
[dcl.attr.noreturn]
7.6.4
Carries dependency attribute
[dcl.attr.depend]
7.6.5
Deprecated attribute
[dcl.attr.deprecated]
8
Declarators
[dcl.decl]
8.1
Type names
[dcl.name]
8.2
Ambiguity resolution
[dcl.ambig.res]
8.3
Meaning of declarators
[dcl.meaning]
8.3.1
Pointers
[dcl.ptr]
8.3.2
References
[dcl.ref]
8.3.3
Pointers to members
[dcl.mptr]
8.3.4
Arrays
[dcl.array]
8.3.5
Functions
[dcl.fct]
8.3.6
Default arguments
[dcl.fct.default]
8.4
Function definitions
[dcl.fct.def]
8.4.1
In general
[dcl.fct.def.general]
8.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
8.4.3
Deleted definitions
[dcl.fct.def.delete]
8.5
Initializers
[dcl.init]
8.5.1
Aggregates
[dcl.init.aggr]
8.5.2
Character arrays
[dcl.init.string]
8.5.3
References
[dcl.init.ref]
8.5.4
List-initialization
[dcl.init.list]
9
Classes
[class]
9.1
Class names
[class.name]
9.2
Class members
[class.mem]
9.3
Member functions
[class.mfct]
9.3.1
Nonstatic member functions
[class.mfct.non-static]
9.3.2
The this pointer
[class.this]
9.4
Static members
[class.static]
9.4.1
Static member functions
[class.static.mfct]
9.4.2
Static data members
[class.static.data]
9.5
Unions
[class.union]
9.6
Bit-fields
[class.bit]
9.7
Nested class declarations
[class.nest]
9.8
Local class declarations
[class.local]
9.9
Nested type names
[class.nested.type]
10
Derived classes
[class.derived]
10.1
Multiple base classes
[class.mi]
10.2
Member name lookup
[class.member.lookup]
10.3
Virtual functions
[class.virtual]
10.4
Abstract classes
[class.abstract]
11
Member access control
[class.access]
11.1
Access specifiers
[class.access.spec]
11.2
Accessibility of base classes and base class members
[class.access.base]
11.3
Friends
[class.friend]
11.4
Protected member access
[class.protected]
11.5
Access to virtual functions
[class.access.virt]
11.6
Multiple access
[class.paths]
11.7
Nested classes
[class.access.nest]
12
Special member functions
[special]
12.1
Constructors
[class.ctor]
12.2
Temporary objects
[class.temporary]
12.3
Conversions
[class.conv]
12.3.1
Conversion by constructor
[class.conv.ctor]
12.3.2
Conversion functions
[class.conv.fct]
12.4
Destructors
[class.dtor]
12.5
Free store
[class.free]
12.6
Initialization
[class.init]
12.6.1
Explicit initialization
[class.expl.init]
12.6.2
Initializing bases and members
[class.base.init]
12.7
Construction and destruction
[class.cdtor]
12.8
Copying and moving class objects
[class.copy]
12.9
Inheriting constructors
[class.inhctor]
13
Overloading
[over]
13.1
Overloadable declarations
[over.load]
13.2
Declaration matching
[over.dcl]
13.3
Overload resolution
[over.match]
13.3.1
Candidate functions and argument lists
[over.match.funcs]
13.3.1.1
Function call syntax
[over.match.call]
13.3.1.1.1
Call to named function
[over.call.func]
13.3.1.1.2
Call to object of class type
[over.call.object]
13.3.1.2
Operators in expressions
[over.match.oper]
13.3.1.3
Initialization by constructor
[over.match.ctor]
13.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
13.3.1.5
Initialization by conversion function
[over.match.conv]
13.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
13.3.1.7
Initialization by list-initialization
[over.match.list]
13.3.2
Viable functions
[over.match.viable]
13.3.3
Best viable function
[over.match.best]
13.3.3.1
Implicit conversion sequences
[over.best.ics]
13.3.3.1.1
Standard conversion sequences
[over.ics.scs]
13.3.3.1.2
User-defined conversion sequences
[over.ics.user]
13.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
13.3.3.1.4
Reference binding
[over.ics.ref]
13.3.3.1.5
List-initialization sequence
[over.ics.list]
13.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
13.4
Address of overloaded function
[over.over]
13.5
Overloaded operators
[over.oper]
13.5.1
Unary operators
[over.unary]
13.5.2
Binary operators
[over.binary]
13.5.3
Assignment
[over.ass]
13.5.4
Function call
[over.call]
13.5.5
Subscripting
[over.sub]
13.5.6
Class member access
[over.ref]
13.5.7
Increment and decrement
[over.inc]
13.5.8
User-defined literals
[over.literal]
13.6
Built-in operators
[over.built]
14
Templates
[temp]
14.1
Template parameters
[temp.param]
14.2
Names of template specializations
[temp.names]
14.3
Template arguments
[temp.arg]
14.3.1
Template type arguments
[temp.arg.type]
14.3.2
Template non-type arguments
[temp.arg.nontype]
14.3.3
Template template arguments
[temp.arg.template]
14.4
Type equivalence
[temp.type]
14.5
Template declarations
[temp.decls]
14.5.1
Class templates
[temp.class]
14.5.1.1
Member functions of class templates
[temp.mem.func]
14.5.1.2
Member classes of class templates
[temp.mem.class]
14.5.1.3
Static data members of class templates
[temp.static]
14.5.1.4
Enumeration members of class templates
[temp.mem.enum]
14.5.2
Member templates
[temp.mem]
14.5.3
Variadic templates
[temp.variadic]
14.5.4
Friends
[temp.friend]
14.5.5
Class template partial specializations
[temp.class.spec]
14.5.5.1
Matching of class template partial specializations
[temp.class.spec.match]
14.5.5.2
Partial ordering of class template specializations
[temp.class.order]
14.5.5.3
Members of class template specializations
[temp.class.spec.mfunc]
14.5.6
Function templates
[temp.fct]
14.5.6.1
Function template overloading
[temp.over.link]
14.5.6.2
Partial ordering of function templates
[temp.func.order]
14.5.7
Alias templates
[temp.alias]
14.6
Name resolution
[temp.res]
14.6.1
Locally declared names
[temp.local]
14.6.2
Dependent names
[temp.dep]
14.6.2.1
Dependent types
[temp.dep.type]
14.6.2.2
Type-dependent expressions
[temp.dep.expr]
14.6.2.3
Value-dependent expressions
[temp.dep.constexpr]
14.6.2.4
Dependent template arguments
[temp.dep.temp]
14.6.3
Non-dependent names
[temp.nondep]
14.6.4
Dependent name resolution
[temp.dep.res]
14.6.4.1
Point of instantiation
[temp.point]
14.6.4.2
Candidate functions
[temp.dep.candidate]
14.6.5
Friend names declared within a class template
[temp.inject]
14.7
Template instantiation and specialization
[temp.spec]
14.7.1
Implicit instantiation
[temp.inst]
14.7.2
Explicit instantiation
[temp.explicit]
14.7.3
Explicit specialization
[temp.expl.spec]
14.8
Function template specializations
[temp.fct.spec]
14.8.1
Explicit template argument specification
[temp.arg.explicit]
14.8.2
Template argument deduction
[temp.deduct]
14.8.2.1
Deducing template arguments from a function call
[temp.deduct.call]
14.8.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
14.8.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
14.8.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
14.8.2.5
Deducing template arguments from a type
[temp.deduct.type]
14.8.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
14.8.3
Overload resolution
[temp.over]
15
Exception handling
[except]
15.1
Throwing an exception
[except.throw]
15.2
Constructors and destructors
[except.ctor]
15.3
Handling an exception
[except.handle]
15.4
Exception specifications
[except.spec]
15.5
Special functions
[except.special]
15.5.1
The std::terminate() function
[except.terminate]
15.5.2
The std::unexpected() function
[except.unexpected]
15.5.3
The std::uncaught_exception() function
[except.uncaught]
16
Preprocessing directives
[cpp]
16.1
Conditional inclusion
[cpp.cond]
16.2
Source file inclusion
[cpp.include]
16.3
Macro replacement
[cpp.replace]
16.3.1
Argument substitution
[cpp.subst]
16.3.2
The # operator
[cpp.stringize]
16.3.3
The ## operator
[cpp.concat]
16.3.4
Rescanning and further replacement
[cpp.rescan]
16.3.5
Scope of macro definitions
[cpp.scope]
16.4
Line control
[cpp.line]
16.5
Error directive
[cpp.error]
16.6
Pragma directive
[cpp.pragma]
16.7
Null directive
[cpp.null]
16.8
Predefined macro names
[cpp.predefined]
16.9
Pragma operator
[cpp.pragma.op]
17
Library introduction
[library]
17.1
General
[library.general]
17.2
The C standard library
[library.c]
17.3
Definitions
[definitions]
17.3.1
arbitrary-positional stream
[defns.arbitrary.stream]
17.3.2
block
[defns.block]
17.3.3
blocked thread
[defns.blocked]
17.3.4
character
[defns.character]
17.3.5
character container type
[defns.character.container]
17.3.6
comparison function
[defns.comparison]
17.3.7
component
[defns.component]
17.3.8
deadlock
[defns.deadlock]
17.3.9
default behavior
[defns.default.behavior.impl]
17.3.10
default behavior
[defns.default.behavior.func]
17.3.11
handler function
[defns.handler]
17.3.12
iostream class templates
[defns.iostream.templates]
17.3.13
modifier function
[defns.modifier]
17.3.14
move construction
[defns.move.constr]
17.3.15
move assignment
[defns.move.assign]
17.3.16
object state
[defns.obj.state]
17.3.17
NTCTS
[defns.ntcts]
17.3.18
observer function
[defns.observer]
17.3.19
referenceable type
[defns.referenceable]
17.3.20
replacement function
[defns.replacement]
17.3.21
repositional stream
[defns.repositional.stream]
17.3.22
required behavior
[defns.required.behavior]
17.3.23
reserved function
[defns.reserved.function]
17.3.24
stable algorithm
[defns.stable]
17.3.25
traits class
[defns.traits]
17.3.26
unblock
[defns.unblock]
17.3.27
valid but unspecified state
[defns.valid]
17.4
Additional definitions
[defns.additional]
17.5
Method of description (Informative)
[description]
17.5.1
Structure of each clause
[structure]
17.5.1.1
Elements
[structure.elements]
17.5.1.2
Summary
[structure.summary]
17.5.1.3
Requirements
[structure.requirements]
17.5.1.4
Detailed specifications
[structure.specifications]
17.5.1.5
C library
[structure.see.also]
17.5.2
Other conventions
[conventions]
17.5.2.1
Type descriptions
[type.descriptions]
17.5.2.1.1
General
[type.descriptions.general]
17.5.2.1.2
Enumerated types
[enumerated.types]
17.5.2.1.3
Bitmask types
[bitmask.types]
17.5.2.1.4
Character sequences
[character.seq]
17.5.2.1.4.1
Byte strings
[byte.strings]
17.5.2.1.4.2
Multibyte strings
[multibyte.strings]
17.5.2.2
Functions within classes
[functions.within.classes]
17.5.2.3
Private members
[objects.within.classes]
17.6
Library-wide requirements
[requirements]
17.6.1
Library contents and organization
[organization]
17.6.1.1
Library contents
[contents]
17.6.1.2
Headers
[headers]
17.6.1.3
Freestanding implementations
[compliance]
17.6.2
Using the library
[using]
17.6.2.1
Overview
[using.overview]
17.6.2.2
Headers
[using.headers]
17.6.2.3
Linkage
[using.linkage]
17.6.3
Requirements on types and expressions
[utility.requirements]
17.6.3.1
Template argument requirements
[utility.arg.requirements]
17.6.3.2
Swappable requirements
[swappable.requirements]
17.6.3.3
NullablePointer requirements
[nullablepointer.requirements]
17.6.3.4
Hash requirements
[hash.requirements]
17.6.3.5
Allocator requirements
[allocator.requirements]
17.6.4
Constraints on programs
[constraints]
17.6.4.1
Overview
[constraints.overview]
17.6.4.2
Namespace use
[namespace.constraints]
17.6.4.2.1
Namespace std
[namespace.std]
17.6.4.2.2
Namespace posix
[namespace.posix]
17.6.4.3
Reserved names
[reserved.names]
17.6.4.3.1
Macro names
[macro.names]
17.6.4.3.2
Global names
[global.names]
17.6.4.3.3
External linkage
[extern.names]
17.6.4.3.4
Types
[extern.types]
17.6.4.3.5
User-defined literal suffixes
[usrlit.suffix]
17.6.4.4
Headers
[alt.headers]
17.6.4.5
Derived classes
[derived.classes]
17.6.4.6
Replacement functions
[replacement.functions]
17.6.4.7
Handler functions
[handler.functions]
17.6.4.8
Other functions
[res.on.functions]
17.6.4.9
Function arguments
[res.on.arguments]
17.6.4.10
Shared objects and the library
[res.on.objects]
17.6.4.11
Requires paragraph
[res.on.required]
17.6.5
Conforming implementations
[conforming]
17.6.5.1
Overview
[conforming.overview]
17.6.5.2
Headers
[res.on.headers]
17.6.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
17.6.5.4
Global and non-member functions
[global.functions]
17.6.5.5
Member functions
[member.functions]
17.6.5.6
constexpr functions and constructors
[constexpr.functions]
17.6.5.7
Requirements for stable algorithms
[algorithm.stable]
17.6.5.8
Reentrancy
[reentrancy]
17.6.5.9
Data race avoidance
[res.on.data.races]
17.6.5.10
Protection within classes
[protection.within.classes]
17.6.5.11
Derived classes
[derivation]
17.6.5.12
Restrictions on exception handling
[res.on.exception.handling]
17.6.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
17.6.5.14
Value of error codes
[value.error.codes]
17.6.5.15
Moved-from state of library types
[lib.types.movedfrom]
18
Language support library
[language.support]
18.1
General
[support.general]
18.2
Types
[support.types]
18.3
Implementation properties
[support.limits]
18.3.1
In general
[support.limits.general]
18.3.2
Numeric limits
[limits]
18.3.2.1
Class template numeric_limits
[limits.numeric]
18.3.2.2
Header synopsis
[limits.syn]
18.3.2.3
Class template numeric_limits
[numeric.limits]
18.3.2.4
numeric_limits members
[numeric.limits.members]
18.3.2.5
Type float_round_style
[round.style]
18.3.2.6
Type float_denorm_style
[denorm.style]
18.3.2.7
numeric_limits specializations
[numeric.special]
18.3.3
C library
[c.limits]
18.4
Integer types
[cstdint]
18.4.1
Header synopsis
[cstdint.syn]
18.5
Start and termination
[support.start.term]
18.6
Dynamic memory management
[support.dynamic]
18.6.1
Storage allocation and deallocation
[new.delete]
18.6.1.1
Single-object forms
[new.delete.single]
18.6.1.2
Array forms
[new.delete.array]
18.6.1.3
Placement forms
[new.delete.placement]
18.6.1.4
Data races
[new.delete.dataraces]
18.6.2
Storage allocation errors
[alloc.errors]
18.6.2.1
Class bad_alloc
[bad.alloc]
18.6.2.2
Class bad_array_new_length
[new.badlength]
18.6.2.3
Type new_handler
[new.handler]
18.6.2.4
set_new_handler
[set.new.handler]
18.6.2.5
get_new_handler
[get.new.handler]
18.7
Type identification
[support.rtti]
18.7.1
Class type_info
[type.info]
18.7.2
Class bad_cast
[bad.cast]
18.7.3
Class bad_typeid
[bad.typeid]
18.8
Exception handling
[support.exception]
18.8.1
Class exception
[exception]
18.8.2
Class bad_exception
[bad.exception]
18.8.3
Abnormal termination
[exception.terminate]
18.8.3.1
Type terminate_handler
[terminate.handler]
18.8.3.2
set_terminate
[set.terminate]
18.8.3.3
get_terminate
[get.terminate]
18.8.3.4
terminate
[terminate]
18.8.4
uncaught_exception
[uncaught]
18.8.5
Exception propagation
[propagation]
18.8.6
nested_exception
[except.nested]
18.9
Initializer lists
[support.initlist]
18.9.1
Initializer list constructors
[support.initlist.cons]
18.9.2
Initializer list access
[support.initlist.access]
18.9.3
Initializer list range access
[support.initlist.range]
18.10
Other runtime support
[support.runtime]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
Class logic_error
[logic.error]
19.2.2
Class domain_error
[domain.error]
19.2.3
Class invalid_argument
[invalid.argument]
19.2.4
Class length_error
[length.error]
19.2.5
Class out_of_range
[out.of.range]
19.2.6
Class runtime_error
[runtime.error]
19.2.7
Class range_error
[range.error]
19.2.8
Class overflow_error
[overflow.error]
19.2.9
Class underflow_error
[underflow.error]
19.3
Assertions
[assertions]
19.4
Error numbers
[errno]
19.5
System error support
[syserr]
19.5.1
Class error_category
[syserr.errcat]
19.5.1.1
Class error_category overview
[syserr.errcat.overview]
19.5.1.2
Class error_category virtual members
[syserr.errcat.virtuals]
19.5.1.3
Class error_category non-virtual members
[syserr.errcat.nonvirtuals]
19.5.1.4
Program defined classes derived from error_category
[syserr.errcat.derived]
19.5.1.5
Error category objects
[syserr.errcat.objects]
19.5.2
Class error_code
[syserr.errcode]
19.5.2.1
Class error_code overview
[syserr.errcode.overview]
19.5.2.2
Class error_code constructors
[syserr.errcode.constructors]
19.5.2.3
Class error_code modifiers
[syserr.errcode.modifiers]
19.5.2.4
Class error_code observers
[syserr.errcode.observers]
19.5.2.5
Class error_code non-member functions
[syserr.errcode.nonmembers]
19.5.3
Class error_condition
[syserr.errcondition]
19.5.3.1
Class error_condition overview
[syserr.errcondition.overview]
19.5.3.2
Class error_condition constructors
[syserr.errcondition.constructors]
19.5.3.3
Class error_condition modifiers
[syserr.errcondition.modifiers]
19.5.3.4
Class error_condition observers
[syserr.errcondition.observers]
19.5.3.5
Class error_condition non-member functions
[syserr.errcondition.nonmembers]
19.5.4
Comparison operators
[syserr.compare]
19.5.5
System error hash support
[syserr.hash]
19.5.6
Class system_error
[syserr.syserr]
19.5.6.1
Class system_error overview
[syserr.syserr.overview]
19.5.6.2
Class system_error members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Operators
[operators]
20.2.2
swap
[utility.swap]
20.2.3
exchange
[utility.exchange]
20.2.4
forward/move helpers
[forward]
20.2.5
Function template declval
[declval]
20.3
Pairs
[pairs]
20.3.1
In general
[pairs.general]
20.3.2
Class template pair
[pairs.pair]
20.3.3
Specialized algorithms
[pairs.spec]
20.3.4
Tuple-like access to pair
[pair.astuple]
20.3.5
Piecewise construction
[pair.piecewise]
20.4
Tuples
[tuple]
20.4.1
In general
[tuple.general]
20.4.2
Class template tuple
[tuple.tuple]
20.4.2.1
Construction
[tuple.cnstr]
20.4.2.2
Assignment
[tuple.assign]
20.4.2.3
swap
[tuple.swap]
20.4.2.4
Tuple creation functions
[tuple.creation]
20.4.2.5
Tuple helper classes
[tuple.helper]
20.4.2.6
Element access
[tuple.elem]
20.4.2.7
Relational operators
[tuple.rel]
20.4.2.8
Tuple traits
[tuple.traits]
20.4.2.9
Tuple specialized algorithms
[tuple.special]
20.5
Compile-time integer sequences
[intseq]
20.5.1
In general
[intseq.general]
20.5.2
Class template integer_sequence
[intseq.intseq]
20.5.3
Alias template make_integer_sequence
[intseq.make]
20.6
Class template bitset
[template.bitset]
20.6.1
bitset constructors
[bitset.cons]
20.6.2
bitset members
[bitset.members]
20.6.3
bitset hash support
[bitset.hash]
20.6.4
bitset operators
[bitset.operators]
20.7
Memory
[memory]
20.7.1
In general
[memory.general]
20.7.2
Header synopsis
[memory.syn]
20.7.3
Pointer traits
[pointer.traits]
20.7.3.1
Pointer traits member types
[pointer.traits.types]
20.7.3.2
Pointer traits member functions
[pointer.traits.functions]
20.7.4
Pointer safety
[util.dynamic.safety]
20.7.5
Align
[ptr.align]
20.7.6
Allocator argument tag
[allocator.tag]
20.7.7
uses_allocator
[allocator.uses]
20.7.7.1
uses_allocator trait
[allocator.uses.trait]
20.7.7.2
uses-allocator construction
[allocator.uses.construction]
20.7.8
Allocator traits
[allocator.traits]
20.7.8.1
Allocator traits member types
[allocator.traits.types]
20.7.8.2
Allocator traits static member functions
[allocator.traits.members]
20.7.9
The default allocator
[default.allocator]
20.7.9.1
allocator members
[allocator.members]
20.7.9.2
allocator globals
[allocator.globals]
20.7.10
Raw storage iterator
[storage.iterator]
20.7.11
Temporary buffers
[temporary.buffer]
20.7.12
Specialized algorithms
[specialized.algorithms]
20.7.12.1
addressof
[specialized.addressof]
20.7.12.2
uninitialized_copy
[uninitialized.copy]
20.7.12.3
uninitialized_fill
[uninitialized.fill]
20.7.12.4
uninitialized_fill_n
[uninitialized.fill.n]
20.7.13
C library
[c.malloc]
20.8
Smart pointers
[smartptr]
20.8.1
Class template unique_ptr
[unique.ptr]
20.8.1.1
Default deleters
[unique.ptr.dltr]
20.8.1.1.1
In general
[unique.ptr.dltr.general]
20.8.1.1.2
default_delete
[unique.ptr.dltr.dflt]
20.8.1.1.3
default_delete
[unique.ptr.dltr.dflt1]
20.8.1.2
unique_ptr for single objects
[unique.ptr.single]
20.8.1.2.1
unique_ptr constructors
[unique.ptr.single.ctor]
20.8.1.2.2
unique_ptr destructor
[unique.ptr.single.dtor]
20.8.1.2.3
unique_ptr assignment
[unique.ptr.single.asgn]
20.8.1.2.4
unique_ptr observers
[unique.ptr.single.observers]
20.8.1.2.5
unique_ptr modifiers
[unique.ptr.single.modifiers]
20.8.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.8.1.3.1
unique_ptr constructors
[unique.ptr.runtime.ctor]
20.8.1.3.2
unique_ptr observers
[unique.ptr.runtime.observers]
20.8.1.3.3
unique_ptr modifiers
[unique.ptr.runtime.modifiers]
20.8.1.4
unique_ptr creation
[unique.ptr.create]
20.8.1.5
unique_ptr specialized algorithms
[unique.ptr.special]
20.8.2
Shared-ownership pointers
[util.smartptr]
20.8.2.1
Class bad_weak_ptr
[util.smartptr.weakptr]
20.8.2.2
Class template shared_ptr
[util.smartptr.shared]
20.8.2.2.1
shared_ptr constructors
[util.smartptr.shared.const]
20.8.2.2.2
shared_ptr destructor
[util.smartptr.shared.dest]
20.8.2.2.3
shared_ptr assignment
[util.smartptr.shared.assign]
20.8.2.2.4
shared_ptr modifiers
[util.smartptr.shared.mod]
20.8.2.2.5
shared_ptr observers
[util.smartptr.shared.obs]
20.8.2.2.6
shared_ptr creation
[util.smartptr.shared.create]
20.8.2.2.7
shared_ptr comparison
[util.smartptr.shared.cmp]
20.8.2.2.8
shared_ptr specialized algorithms
[util.smartptr.shared.spec]
20.8.2.2.9
shared_ptr casts
[util.smartptr.shared.cast]
20.8.2.2.10
get_deleter
[util.smartptr.getdeleter]
20.8.2.2.11
shared_ptr I/O
[util.smartptr.shared.io]
20.8.2.3
Class template weak_ptr
[util.smartptr.weak]
20.8.2.3.1
weak_ptr constructors
[util.smartptr.weak.const]
20.8.2.3.2
weak_ptr destructor
[util.smartptr.weak.dest]
20.8.2.3.3
weak_ptr assignment
[util.smartptr.weak.assign]
20.8.2.3.4
weak_ptr modifiers
[util.smartptr.weak.mod]
20.8.2.3.5
weak_ptr observers
[util.smartptr.weak.obs]
20.8.2.3.6
weak_ptr specialized algorithms
[util.smartptr.weak.spec]
20.8.2.4
Class template owner_less
[util.smartptr.ownerless]
20.8.2.5
Class template enable_shared_from_this
[util.smartptr.enab]
20.8.2.6
shared_ptr atomic access
[util.smartptr.shared.atomic]
20.8.2.7
Smart pointer hash support
[util.smartptr.hash]
20.9
Function objects
[function.objects]
20.9.1
Definitions
[func.def]
20.9.2
Requirements
[func.require]
20.9.3
Class template reference_wrapper
[refwrap]
20.9.3.1
reference_wrapper construct/copy/destroy
[refwrap.const]
20.9.3.2
reference_wrapper assignment
[refwrap.assign]
20.9.3.3
reference_wrapper access
[refwrap.access]
20.9.3.4
reference_wrapper invocation
[refwrap.invoke]
20.9.3.5
reference_wrapper helper functions
[refwrap.helpers]
20.9.4
Arithmetic operations
[arithmetic.operations]
20.9.5
Comparisons
[comparisons]
20.9.6
Logical operations
[logical.operations]
20.9.7
Bitwise operations
[bitwise.operations]
20.9.8
Negators
[negators]
20.9.9
Function object binders
[func.bind]
20.9.9.1
Class template is_bind_expression
[func.bind.isbind]
20.9.9.2
Class template is_placeholder
[func.bind.isplace]
20.9.9.3
Function template bind
[func.bind.bind]
20.9.9.4
Placeholders
[func.bind.place]
20.9.10
Function template mem_fn
[func.memfn]
20.9.11
Polymorphic function wrappers
[func.wrap]
20.9.11.1
Class bad_function_call
[func.wrap.badcall]
20.9.11.1.1
bad_function_call constructor
[func.wrap.badcall.const]
20.9.11.2
Class template function
[func.wrap.func]
20.9.11.2.1
function construct/copy/destroy
[func.wrap.func.con]
20.9.11.2.2
function modifiers
[func.wrap.func.mod]
20.9.11.2.3
function capacity
[func.wrap.func.cap]
20.9.11.2.4
function invocation
[func.wrap.func.inv]
20.9.11.2.5
function target access
[func.wrap.func.targ]
20.9.11.2.6
null pointer comparison operators
[func.wrap.func.nullptr]
20.9.11.2.7
specialized algorithms
[func.wrap.func.alg]
20.9.12
Class template hash
[unord.hash]
20.10
Metaprogramming and type traits
[meta]
20.10.1
Requirements
[meta.rqmts]
20.10.2
Header synopsis
[meta.type.synop]
20.10.3
Helper classes
[meta.help]
20.10.4
Unary type traits
[meta.unary]
20.10.4.1
Primary type categories
[meta.unary.cat]
20.10.4.2
Composite type traits
[meta.unary.comp]
20.10.4.3
Type properties
[meta.unary.prop]
20.10.5
Type property queries
[meta.unary.prop.query]
20.10.6
Relationships between types
[meta.rel]
20.10.7
Transformations between types
[meta.trans]
20.10.7.1
Const-volatile modifications
[meta.trans.cv]
20.10.7.2
Reference modifications
[meta.trans.ref]
20.10.7.3
Sign modifications
[meta.trans.sign]
20.10.7.4
Array modifications
[meta.trans.arr]
20.10.7.5
Pointer modifications
[meta.trans.ptr]
20.10.7.6
Other transformations
[meta.trans.other]
20.11
Compile-time rational arithmetic
[ratio]
20.11.1
In general
[ratio.general]
20.11.2
Header synopsis
[ratio.syn]
20.11.3
Class template ratio
[ratio.ratio]
20.11.4
Arithmetic on ratios
[ratio.arithmetic]
20.11.5
Comparison of ratios
[ratio.comparison]
20.11.6
SI types for ratio
[ratio.si]
20.12
Time utilities
[time]
20.12.1
In general
[time.general]
20.12.2
Header synopsis
[time.syn]
20.12.3
Clock requirements
[time.clock.req]
20.12.4
Time-related traits
[time.traits]
20.12.4.1
treat_as_floating_point
[time.traits.is_fp]
20.12.4.2
duration_values
[time.traits.duration_values]
20.12.4.3
Specializations of common_type
[time.traits.specializations]
20.12.5
Class template duration
[time.duration]
20.12.5.1
duration constructors
[time.duration.cons]
20.12.5.2
duration observer
[time.duration.observer]
20.12.5.3
duration arithmetic
[time.duration.arithmetic]
20.12.5.4
duration special values
[time.duration.special]
20.12.5.5
duration non-member arithmetic
[time.duration.nonmember]
20.12.5.6
duration comparisons
[time.duration.comparisons]
20.12.5.7
duration_cast
[time.duration.cast]
20.12.5.8
Suffixes for duration literals
[time.duration.literals]
20.12.6
Class template time_point
[time.point]
20.12.6.1
time_point constructors
[time.point.cons]
20.12.6.2
time_point observer
[time.point.observer]
20.12.6.3
time_point arithmetic
[time.point.arithmetic]
20.12.6.4
time_point special values
[time.point.special]
20.12.6.5
time_point non-member arithmetic
[time.point.nonmember]
20.12.6.6
time_point comparisons
[time.point.comparisons]
20.12.6.7
time_point_cast
[time.point.cast]
20.12.7
Clocks
[time.clock]
20.12.7.1
Class system_clock
[time.clock.system]
20.12.7.2
Class steady_clock
[time.clock.steady]
20.12.7.3
Class high_resolution_clock
[time.clock.hires]
20.12.8
Date and time functions
[date.time]
20.13
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.13.1
Header synopsis
[allocator.adaptor.syn]
20.13.2
Scoped allocator adaptor member types
[allocator.adaptor.types]
20.13.3
Scoped allocator adaptor constructors
[allocator.adaptor.cnstr]
20.13.4
Scoped allocator adaptor members
[allocator.adaptor.members]
20.13.5
Scoped allocator operators
[scoped.adaptor.operators]
20.14
Class type_index
[type.index]
20.14.1
Header synopsis
[type.index.synopsis]
20.14.2
type_index overview
[type.index.overview]
20.14.3
type_index members
[type.index.members]
20.14.4
Hash support
[type.index.hash]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
Character traits requirements
[char.traits.require]
21.2.2
traits typedefs
[char.traits.typedefs]
21.2.3
char_traits specializations
[char.traits.specializations]
21.2.3.1
struct char_traits
[char.traits.specializations.char]
21.2.3.2
struct char_traits
[char.traits.specializations.char16_t]
21.2.3.3
struct char_traits
[char.traits.specializations.char32_t]
21.2.3.4
struct char_traits
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.4
Class template basic_string
[basic.string]
21.4.1
basic_string general requirements
[string.require]
21.4.2
basic_string constructors and assignment operators
[string.cons]
21.4.3
basic_string iterator support
[string.iterators]
21.4.4
basic_string capacity
[string.capacity]
21.4.5
basic_string element access
[string.access]
21.4.6
basic_string modifiers
[string.modifiers]
21.4.6.1
basic_string::operator+=
[string::op+=]
21.4.6.2
basic_string::append
[string::append]
21.4.6.3
basic_string::assign
[string::assign]
21.4.6.4
basic_string::insert
[string::insert]
21.4.6.5
basic_string::erase
[string::erase]
21.4.6.6
basic_string::replace
[string::replace]
21.4.6.7
basic_string::copy
[string::copy]
21.4.6.8
basic_string::swap
[string::swap]
21.4.7
basic_string string operations
[string.ops]
21.4.7.1
basic_string accessors
[string.accessors]
21.4.7.2
basic_string::find
[string::find]
21.4.7.3
basic_string::rfind
[string::rfind]
21.4.7.4
basic_string::find_first_of
[string::find.first.of]
21.4.7.5
basic_string::find_last_of
[string::find.last.of]
21.4.7.6
basic_string::find_first_not_of
[string::find.first.not.of]
21.4.7.7
basic_string::find_last_not_of
[string::find.last.not.of]
21.4.7.8
basic_string::substr
[string::substr]
21.4.7.9
basic_string::compare
[string::compare]
21.4.8
basic_string non-member functions
[string.nonmembers]
21.4.8.1
operator+
[string::op+]
21.4.8.2
operator==
[string::operator==]
21.4.8.3
operator!=
[string::op!=]
21.4.8.4
operator<
[string::op<]
21.4.8.5
operator>
[string::op>]
21.4.8.6
operator<=
[string::op<=]
21.4.8.7
operator>=
[string::op>=]
21.4.8.8
swap
[string.special]
21.4.8.9
Inserters and extractors
[string.io]
21.5
Numeric conversions
[string.conversions]
21.6
Hash support
[basic.string.hash]
21.7
Suffix for basic_string literals
[basic.string.literals]
21.8
Null-terminated sequence utilities
[c.strings]
22
Localization library
[localization]
22.1
General
[localization.general]
22.2
Header synopsis
[locale.syn]
22.3
Locales
[locales]
22.3.1
Class locale
[locale]
22.3.1.1
locale types
[locale.types]
22.3.1.1.1
Type locale::category
[locale.category]
22.3.1.1.2
Class locale::facet
[locale.facet]
22.3.1.1.3
Class locale::id
[locale.id]
22.3.1.2
locale constructors and destructor
[locale.cons]
22.3.1.3
locale members
[locale.members]
22.3.1.4
locale operators
[locale.operators]
22.3.1.5
locale static members
[locale.statics]
22.3.2
locale globals
[locale.global.templates]
22.3.3
Convenience interfaces
[locale.convenience]
22.3.3.1
Character classification
[classification]
22.3.3.2
Conversions
[conversions]
22.3.3.2.1
Character conversions
[conversions.character]
22.3.3.2.2
string conversions
[conversions.string]
22.3.3.2.3
Buffer conversions
[conversions.buffer]
22.4
Standard locale categories
[locale.categories]
22.4.1
The ctype category
[category.ctype]
22.4.1.1
Class template ctype
[locale.ctype]
22.4.1.1.1
ctype members
[locale.ctype.members]
22.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
22.4.1.2
Class template ctype_byname
[locale.ctype.byname]
22.4.1.3
ctype specializations
[facet.ctype.special]
22.4.1.3.1
ctype destructor
[facet.ctype.char.dtor]
22.4.1.3.2
ctype members
[facet.ctype.char.members]
22.4.1.3.3
ctype static members
[facet.ctype.char.statics]
22.4.1.3.4
ctype virtual functions
[facet.ctype.char.virtuals]
22.4.1.4
Class template codecvt
[locale.codecvt]
22.4.1.4.1
codecvt members
[locale.codecvt.members]
22.4.1.4.2
codecvt virtual functions
[locale.codecvt.virtuals]
22.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
22.4.2
The numeric category
[category.numeric]
22.4.2.1
Class template num_get
[locale.num.get]
22.4.2.1.1
num_get members
[facet.num.get.members]
22.4.2.1.2
num_get virtual functions
[facet.num.get.virtuals]
22.4.2.2
Class template num_put
[locale.nm.put]
22.4.2.2.1
num_put members
[facet.num.put.members]
22.4.2.2.2
num_put virtual functions
[facet.num.put.virtuals]
22.4.3
The numeric punctuation facet
[facet.numpunct]
22.4.3.1
Class template numpunct
[locale.numpunct]
22.4.3.1.1
numpunct members
[facet.numpunct.members]
22.4.3.1.2
numpunct virtual functions
[facet.numpunct.virtuals]
22.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
22.4.4
The collate category
[category.collate]
22.4.4.1
Class template collate
[locale.collate]
22.4.4.1.1
collate members
[locale.collate.members]
22.4.4.1.2
collate virtual functions
[locale.collate.virtuals]
22.4.4.2
Class template collate_byname
[locale.collate.byname]
22.4.5
The time category
[category.time]
22.4.5.1
Class template time_get
[locale.time.get]
22.4.5.1.1
time_get members
[locale.time.get.members]
22.4.5.1.2
time_get virtual functions
[locale.time.get.virtuals]
22.4.5.2
Class template time_get_byname
[locale.time.get.byname]
22.4.5.3
Class template time_put
[locale.time.put]
22.4.5.3.1
time_put members
[locale.time.put.members]
22.4.5.3.2
time_put virtual functions
[locale.time.put.virtuals]
22.4.5.4
Class template time_put_byname
[locale.time.put.byname]
22.4.6
The monetary category
[category.monetary]
22.4.6.1
Class template money_get
[locale.money.get]
22.4.6.1.1
money_get members
[locale.money.get.members]
22.4.6.1.2
money_get virtual functions
[locale.money.get.virtuals]
22.4.6.2
Class template money_put
[locale.money.put]
22.4.6.2.1
money_put members
[locale.money.put.members]
22.4.6.2.2
money_put virtual functions
[locale.money.put.virtuals]
22.4.6.3
Class template moneypunct
[locale.moneypunct]
22.4.6.3.1
moneypunct members
[locale.moneypunct.members]
22.4.6.3.2
moneypunct virtual functions
[locale.moneypunct.virtuals]
22.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
22.4.7
The message retrieval category
[category.messages]
22.4.7.1
Class template messages
[locale.messages]
22.4.7.1.1
messages members
[locale.messages.members]
22.4.7.1.2
messages virtual functions
[locale.messages.virtuals]
22.4.7.2
Class template messages_byname
[locale.messages.byname]
22.4.8
Program-defined facets
[facets.examples]
22.5
Standard code conversion facets
[locale.stdcvt]
22.6
C library locales
[c.locales]
23
Containers library
[containers]
23.1
General
[containers.general]
23.2
Container requirements
[container.requirements]
23.2.1
General container requirements
[container.requirements.general]
23.2.2
Container data races
[container.requirements.dataraces]
23.2.3
Sequence containers
[sequence.reqmts]
23.2.4
Associative containers
[associative.reqmts]
23.2.4.1
Exception safety guarantees
[associative.reqmts.except]
23.2.5
Unordered associative containers
[unord.req]
23.2.5.1
Exception safety guarantees
[unord.req.except]
23.3
Sequence containers
[sequences]
23.3.1
In general
[sequences.general]
23.3.2
Class template array
[array]
23.3.2.1
Class template array overview
[array.overview]
23.3.2.2
array constructors, copy, and assignment
[array.cons]
23.3.2.3
array specialized algorithms
[array.special]
23.3.2.4
array::size
[array.size]
23.3.2.5
array::data
[array.data]
23.3.2.6
array::fill
[array.fill]
23.3.2.7
array::swap
[array.swap]
23.3.2.8
Zero sized arrays
[array.zero]
23.3.2.9
Tuple interface to class template array
[array.tuple]
23.3.3
Class template deque
[deque]
23.3.3.1
Class template deque overview
[deque.overview]
23.3.3.2
deque constructors, copy, and assignment
[deque.cons]
23.3.3.3
deque capacity
[deque.capacity]
23.3.3.4
deque modifiers
[deque.modifiers]
23.3.3.5
deque specialized algorithms
[deque.special]
23.3.4
Class template forward_list
[forwardlist]
23.3.4.1
Class template forward_list overview
[forwardlist.overview]
23.3.4.2
forward_list constructors, copy, assignment
[forwardlist.cons]
23.3.4.3
forward_list iterators
[forwardlist.iter]
23.3.4.4
forward_list element access
[forwardlist.access]
23.3.4.5
forward_list modifiers
[forwardlist.modifiers]
23.3.4.6
forward_list operations
[forwardlist.ops]
23.3.4.7
forward_list specialized algorithms
[forwardlist.spec]
23.3.5
Class template list
[list]
23.3.5.1
Class template list overview
[list.overview]
23.3.5.2
list constructors, copy, and assignment
[list.cons]
23.3.5.3
list capacity
[list.capacity]
23.3.5.4
list modifiers
[list.modifiers]
23.3.5.5
list operations
[list.ops]
23.3.5.6
list specialized algorithms
[list.special]
23.3.6
Class template vector
[vector]
23.3.6.1
Class template vector overview
[vector.overview]
23.3.6.2
vector constructors, copy, and assignment
[vector.cons]
23.3.6.3
vector capacity
[vector.capacity]
23.3.6.4
vector data
[vector.data]
23.3.6.5
vector modifiers
[vector.modifiers]
23.3.6.6
vector specialized algorithms
[vector.special]
23.3.7
Class vector
[vector.bool]
23.4
Associative containers
[associative]
23.4.1
In general
[associative.general]
23.4.2
Header synopsis
[associative.map.syn]
23.4.3
Header synopsis
[associative.set.syn]
23.4.4
Class template map
[map]
23.4.4.1
Class template map overview
[map.overview]
23.4.4.2
map constructors, copy, and assignment
[map.cons]
23.4.4.3
map element access
[map.access]
23.4.4.4
map modifiers
[map.modifiers]
23.4.4.5
map specialized algorithms
[map.special]
23.4.5
Class template multimap
[multimap]
23.4.5.1
Class template multimap overview
[multimap.overview]
23.4.5.2
multimap constructors
[multimap.cons]
23.4.5.3
multimap modifiers
[multimap.modifiers]
23.4.5.4
multimap specialized algorithms
[multimap.special]
23.4.6
Class template set
[set]
23.4.6.1
Class template set overview
[set.overview]
23.4.6.2
set constructors, copy, and assignment
[set.cons]
23.4.6.3
set specialized algorithms
[set.special]
23.4.7
Class template multiset
[multiset]
23.4.7.1
Class template multiset overview
[multiset.overview]
23.4.7.2
multiset constructors
[multiset.cons]
23.4.7.3
multiset specialized algorithms
[multiset.special]
23.5
Unordered associative containers
[unord]
23.5.1
In general
[unord.general]
23.5.2
Header synopsis
[unord.map.syn]
23.5.3
Header synopsis
[unord.set.syn]
23.5.4
Class template unordered_map
[unord.map]
23.5.4.1
Class template unordered_map overview
[unord.map.overview]
23.5.4.2
unordered_map constructors
[unord.map.cnstr]
23.5.4.3
unordered_map element access
[unord.map.elem]
23.5.4.4
unordered_map modifiers
[unord.map.modifiers]
23.5.4.5
unordered_map swap
[unord.map.swap]
23.5.5
Class template unordered_multimap
[unord.multimap]
23.5.5.1
Class template unordered_multimap overview
[unord.multimap.overview]
23.5.5.2
unordered_multimap constructors
[unord.multimap.cnstr]
23.5.5.3
unordered_multimap modifiers
[unord.multimap.modifiers]
23.5.5.4
unordered_multimap swap
[unord.multimap.swap]
23.5.6
Class template unordered_set
[unord.set]
23.5.6.1
Class template unordered_set overview
[unord.set.overview]
23.5.6.2
unordered_set constructors
[unord.set.cnstr]
23.5.6.3
unordered_set swap
[unord.set.swap]
23.5.7
Class template unordered_multiset
[unord.multiset]
23.5.7.1
Class template unordered_multiset overview
[unord.multiset.overview]
23.5.7.2
unordered_multiset constructors
[unord.multiset.cnstr]
23.5.7.3
unordered_multiset swap
[unord.multiset.swap]
23.6
Container adaptors
[container.adaptors]
23.6.1
In general
[container.adaptors.general]
23.6.2
Header synopsis
[queue.syn]
23.6.3
Class template queue
[queue]
23.6.3.1
queue definition
[queue.defn]
23.6.3.2
queue constructors
[queue.cons]
23.6.3.3
queue constructors with allocators
[queue.cons.alloc]
23.6.3.4
queue operators
[queue.ops]
23.6.3.5
queue specialized algorithms
[queue.special]
23.6.4
Class template priority_queue
[priority.queue]
23.6.4.1
priority_queue constructors
[priqueue.cons]
23.6.4.2
priority_queue constructors with allocators
[priqueue.cons.alloc]
23.6.4.3
priority_queue members
[priqueue.members]
23.6.4.4
priority_queue specialized algorithms
[priqueue.special]
23.6.5
Class template stack
[stack]
23.6.5.1
Header synopsis
[stack.syn]
23.6.5.2
stack definition
[stack.defn]
23.6.5.3
stack constructors
[stack.cons]
23.6.5.4
stack constructors with allocators
[stack.cons.alloc]
23.6.5.5
stack operators
[stack.ops]
23.6.5.6
stack specialized algorithms
[stack.special]
24
Iterators library
[iterators]
24.1
General
[iterators.general]
24.2
Iterator requirements
[iterator.requirements]
24.2.1
In general
[iterator.requirements.general]
24.2.2
Iterator
[iterator.iterators]
24.2.3
Input iterators
[input.iterators]
24.2.4
Output iterators
[output.iterators]
24.2.5
Forward iterators
[forward.iterators]
24.2.6
Bidirectional iterators
[bidirectional.iterators]
24.2.7
Random access iterators
[random.access.iterators]
24.3
Header synopsis
[iterator.synopsis]
24.4
Iterator primitives
[iterator.primitives]
24.4.1
Iterator traits
[iterator.traits]
24.4.2
Basic iterator
[iterator.basic]
24.4.3
Standard iterator tags
[std.iterator.tags]
24.4.4
Iterator operations
[iterator.operations]
24.5
Iterator adaptors
[predef.iterators]
24.5.1
Reverse iterators
[reverse.iterators]
24.5.1.1
Class template reverse_iterator
[reverse.iterator]
24.5.1.2
reverse_iterator requirements
[reverse.iter.requirements]
24.5.1.3
reverse_iterator operations
[reverse.iter.ops]
24.5.1.3.1
reverse_iterator constructor
[reverse.iter.cons]
24.5.1.3.2
reverse_iterator::operator=
[reverse.iter.op=]
24.5.1.3.3
Conversion
[reverse.iter.conv]
24.5.1.3.4
operator*
[reverse.iter.op.star]
24.5.1.3.5
operator->
[reverse.iter.opref]
24.5.1.3.6
operator++
[reverse.iter.op++]
24.5.1.3.7
operator--
[reverse.iter.op--]
24.5.1.3.8
operator+
[reverse.iter.op+]
24.5.1.3.9
operator+=
[reverse.iter.op+=]
24.5.1.3.10
operator-
[reverse.iter.op-]
24.5.1.3.11
operator-=
[reverse.iter.op-=]
24.5.1.3.12
operator[]
[reverse.iter.opindex]
24.5.1.3.13
operator==
[reverse.iter.op==]
24.5.1.3.14
operator<
[reverse.iter.op<]
24.5.1.3.15
operator!=
[reverse.iter.op!=]
24.5.1.3.16
operator>
[reverse.iter.op>]
24.5.1.3.17
operator>=
[reverse.iter.op>=]
24.5.1.3.18
operator<=
[reverse.iter.op<=]
24.5.1.3.19
operator-
[reverse.iter.opdiff]
24.5.1.3.20
operator+
[reverse.iter.opsum]
24.5.1.3.21
Non-member function make_reverse_iterator()
[reverse.iter.make]
24.5.2
Insert iterators
[insert.iterators]
24.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
24.5.2.2
back_insert_iterator operations
[back.insert.iter.ops]
24.5.2.2.1
back_insert_iterator constructor
[back.insert.iter.cons]
24.5.2.2.2
back_insert_iterator::operator=
[back.insert.iter.op=]
24.5.2.2.3
back_insert_iterator::operator*
[back.insert.iter.op*]
24.5.2.2.4
back_insert_iterator::operator++
[back.insert.iter.op++]
24.5.2.2.5
back_inserter
[back.inserter]
24.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
24.5.2.4
front_insert_iterator operations
[front.insert.iter.ops]
24.5.2.4.1
front_insert_iterator constructor
[front.insert.iter.cons]
24.5.2.4.2
front_insert_iterator::operator=
[front.insert.iter.op=]
24.5.2.4.3
front_insert_iterator::operator*
[front.insert.iter.op*]
24.5.2.4.4
front_insert_iterator::operator++
[front.insert.iter.op++]
24.5.2.4.5
front_inserter
[front.inserter]
24.5.2.5
Class template insert_iterator
[insert.iterator]
24.5.2.6
insert_iterator operations
[insert.iter.ops]
24.5.2.6.1
insert_iterator constructor
[insert.iter.cons]
24.5.2.6.2
insert_iterator::operator=
[insert.iter.op=]
24.5.2.6.3
insert_iterator::operator*
[insert.iter.op*]
24.5.2.6.4
insert_iterator::operator++
[insert.iter.op++]
24.5.2.6.5
inserter
[inserter]
24.5.3
Move iterators
[move.iterators]
24.5.3.1
Class template move_iterator
[move.iterator]
24.5.3.2
move_iterator requirements
[move.iter.requirements]
24.5.3.3
move_iterator operations
[move.iter.ops]
24.5.3.3.1
move_iterator constructors
[move.iter.op.const]
24.5.3.3.2
move_iterator::operator=
[move.iter.op=]
24.5.3.3.3
move_iterator conversion
[move.iter.op.conv]
24.5.3.3.4
move_iterator::operator*
[move.iter.op.star]
24.5.3.3.5
move_iterator::operator->
[move.iter.op.ref]
24.5.3.3.6
move_iterator::operator++
[move.iter.op.incr]
24.5.3.3.7
move_iterator::operator--
[move.iter.op.decr]
24.5.3.3.8
move_iterator::operator+
[move.iter.op.+]
24.5.3.3.9
move_iterator::operator+=
[move.iter.op.+=]
24.5.3.3.10
move_iterator::operator-
[move.iter.op.-]
24.5.3.3.11
move_iterator::operator-=
[move.iter.op.-=]
24.5.3.3.12
move_iterator::operator[]
[move.iter.op.index]
24.5.3.3.13
move_iterator comparisons
[move.iter.op.comp]
24.5.3.3.14
move_iterator non-member functions
[move.iter.nonmember]
24.6
Stream iterators
[stream.iterators]
24.6.1
Class template istream_iterator
[istream.iterator]
24.6.1.1
istream_iterator constructors and destructor
[istream.iterator.cons]
24.6.1.2
istream_iterator operations
[istream.iterator.ops]
24.6.2
Class template ostream_iterator
[ostream.iterator]
24.6.2.1
ostream_iterator constructors and destructor
[ostream.iterator.cons.des]
24.6.2.2
ostream_iterator operations
[ostream.iterator.ops]
24.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
24.6.3.1
Class template istreambuf_iterator::proxy
[istreambuf.iterator::proxy]
24.6.3.2
istreambuf_iterator constructors
[istreambuf.iterator.cons]
24.6.3.3
istreambuf_iterator::operator*
[istreambuf.iterator::op*]
24.6.3.4
istreambuf_iterator::operator++
[istreambuf.iterator::op++]
24.6.3.5
istreambuf_iterator::equal
[istreambuf.iterator::equal]
24.6.3.6
operator==
[istreambuf.iterator::op==]
24.6.3.7
operator!=
[istreambuf.iterator::op!=]
24.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
24.6.4.1
ostreambuf_iterator constructors
[ostreambuf.iter.cons]
24.6.4.2
ostreambuf_iterator operations
[ostreambuf.iter.ops]
24.7
range access
[iterator.range]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Non-modifying sequence operations
[alg.nonmodifying]
25.2.1
All of
[alg.all_of]
25.2.2
Any of
[alg.any_of]
25.2.3
None of
[alg.none_of]
25.2.4
For each
[alg.foreach]
25.2.5
Find
[alg.find]
25.2.6
Find end
[alg.find.end]
25.2.7
Find first
[alg.find.first.of]
25.2.8
Adjacent find
[alg.adjacent.find]
25.2.9
Count
[alg.count]
25.2.10
Mismatch
[mismatch]
25.2.11
Equal
[alg.equal]
25.2.12
Is permutation
[alg.is_permutation]
25.2.13
Search
[alg.search]
25.3
Mutating sequence operations
[alg.modifying.operations]
25.3.1
Copy
[alg.copy]
25.3.2
Move
[alg.move]
25.3.3
swap
[alg.swap]
25.3.4
Transform
[alg.transform]
25.3.5
Replace
[alg.replace]
25.3.6
Fill
[alg.fill]
25.3.7
Generate
[alg.generate]
25.3.8
Remove
[alg.remove]
25.3.9
Unique
[alg.unique]
25.3.10
Reverse
[alg.reverse]
25.3.11
Rotate
[alg.rotate]
25.3.12
Shuffle
[alg.random.shuffle]
25.3.13
Partitions
[alg.partitions]
25.4
Sorting and related operations
[alg.sorting]
25.4.1
Sorting
[alg.sort]
25.4.1.1
sort
[sort]
25.4.1.2
stable_sort
[stable.sort]
25.4.1.3
partial_sort
[partial.sort]
25.4.1.4
partial_sort_copy
[partial.sort.copy]
25.4.1.5
is_sorted
[is.sorted]
25.4.2
Nth element
[alg.nth.element]
25.4.3
Binary search
[alg.binary.search]
25.4.3.1
lower_bound
[lower.bound]
25.4.3.2
upper_bound
[upper.bound]
25.4.3.3
equal_range
[equal.range]
25.4.3.4
binary_search
[binary.search]
25.4.4
Merge
[alg.merge]
25.4.5
Set operations on sorted structures
[alg.set.operations]
25.4.5.1
includes
[includes]
25.4.5.2
set_union
[set.union]
25.4.5.3
set_intersection
[set.intersection]
25.4.5.4
set_difference
[set.difference]
25.4.5.5
set_symmetric_difference
[set.symmetric.difference]
25.4.6
Heap operations
[alg.heap.operations]
25.4.6.1
push_heap
[push.heap]
25.4.6.2
pop_heap
[pop.heap]
25.4.6.3
make_heap
[make.heap]
25.4.6.4
sort_heap
[sort.heap]
25.4.6.5
is_heap
[is.heap]
25.4.7
Minimum and maximum
[alg.min.max]
25.4.8
Lexicographical comparison
[alg.lex.comparison]
25.4.9
Permutation generators
[alg.permutation.generators]
25.5
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Numeric type requirements
[numeric.requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header synopsis
[cfenv.syn]
26.4
Complex numbers
[complex.numbers]
26.4.1
Header synopsis
[complex.syn]
26.4.2
Class template complex
[complex]
26.4.3
complex specializations
[complex.special]
26.4.4
complex member functions
[complex.members]
26.4.5
complex member operators
[complex.member.ops]
26.4.6
complex non-member operations
[complex.ops]
26.4.7
complex value operations
[complex.value.ops]
26.4.8
complex transcendentals
[complex.transcendentals]
26.4.9
Additional overloads
[cmplx.over]
26.4.10
Suffixes for complex number literals
[complex.literals]
26.4.11
Header
[ccmplx]
26.5
Random number generation
[rand]
26.5.1
Requirements
[rand.req]
26.5.1.1
General requirements
[rand.req.genl]
26.5.1.2
Seed sequence requirements
[rand.req.seedseq]
26.5.1.3
Uniform random number generator requirements
[rand.req.urng]
26.5.1.4
Random number engine requirements
[rand.req.eng]
26.5.1.5
Random number engine adaptor requirements
[rand.req.adapt]
26.5.1.6
Random number distribution requirements
[rand.req.dist]
26.5.2
Header synopsis
[rand.synopsis]
26.5.3
Random number engine class templates
[rand.eng]
26.5.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
26.5.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
26.5.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
26.5.4
Random number engine adaptor class templates
[rand.adapt]
26.5.4.1
In general
[rand.adapt.general]
26.5.4.2
Class template discard_block_engine
[rand.adapt.disc]
26.5.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
26.5.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
26.5.5
Engines and engine adaptors with predefined parameters
[rand.predef]
26.5.6
Class random_device
[rand.device]
26.5.7
Utilities
[rand.util]
26.5.7.1
Class seed_seq
[rand.util.seedseq]
26.5.7.2
Function template generate_canonical
[rand.util.canonical]
26.5.8
Random number distribution class templates
[rand.dist]
26.5.8.1
In general
[rand.dist.general]
26.5.8.2
Uniform distributions
[rand.dist.uni]
26.5.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
26.5.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
26.5.8.3
Bernoulli distributions
[rand.dist.bern]
26.5.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
26.5.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
26.5.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
26.5.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
26.5.8.4
Poisson distributions
[rand.dist.pois]
26.5.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
26.5.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
26.5.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
26.5.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
26.5.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
26.5.8.5
Normal distributions
[rand.dist.norm]
26.5.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
26.5.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
26.5.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
26.5.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
26.5.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
26.5.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
26.5.8.6
Sampling distributions
[rand.dist.samp]
26.5.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
26.5.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
26.5.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
26.6
Numeric arrays
[numarray]
26.6.1
Header synopsis
[valarray.syn]
26.6.2
Class template valarray
[template.valarray]
26.6.2.1
Class template valarray overview
[template.valarray.overview]
26.6.2.2
valarray constructors
[valarray.cons]
26.6.2.3
valarray assignment
[valarray.assign]
26.6.2.4
valarray element access
[valarray.access]
26.6.2.5
valarray subset operations
[valarray.sub]
26.6.2.6
valarray unary operators
[valarray.unary]
26.6.2.7
valarray computed assignment
[valarray.cassign]
26.6.2.8
valarray member functions
[valarray.members]
26.6.3
valarray non-member operations
[valarray.nonmembers]
26.6.3.1
valarray binary operators
[valarray.binary]
26.6.3.2
valarray logical operators
[valarray.comparison]
26.6.3.3
valarray transcendentals
[valarray.transcend]
26.6.3.4
valarray specialized algorithms
[valarray.special]
26.6.4
Class slice
[class.slice]
26.6.4.1
Class slice overview
[class.slice.overview]
26.6.4.2
slice constructors
[cons.slice]
26.6.4.3
slice access functions
[slice.access]
26.6.5
Class template slice_array
[template.slice.array]
26.6.5.1
Class template slice_array overview
[template.slice.array.overview]
26.6.5.2
slice_array assignment
[slice.arr.assign]
26.6.5.3
slice_array computed assignment
[slice.arr.comp.assign]
26.6.5.4
slice_array fill function
[slice.arr.fill]
26.6.6
The gslice class
[class.gslice]
26.6.6.1
The gslice class overview
[class.gslice.overview]
26.6.6.2
gslice constructors
[gslice.cons]
26.6.6.3
gslice access functions
[gslice.access]
26.6.7
Class template gslice_array
[template.gslice.array]
26.6.7.1
Class template gslice_array overview
[template.gslice.array.overview]
26.6.7.2
gslice_array assignment
[gslice.array.assign]
26.6.7.3
gslice_array
[gslice.array.comp.assign]
26.6.7.4
gslice_array fill function
[gslice.array.fill]
26.6.8
Class template mask_array
[template.mask.array]
26.6.8.1
Class template mask_array overview
[template.mask.array.overview]
26.6.8.2
mask_array assignment
[mask.array.assign]
26.6.8.3
mask_array computed assignment
[mask.array.comp.assign]
26.6.8.4
mask_array fill function
[mask.array.fill]
26.6.9
Class template indirect_array
[template.indirect.array]
26.6.9.1
Class template indirect_array overview
[template.indirect.array.overview]
26.6.9.2
indirect_array assignment
[indirect.array.assign]
26.6.9.3
indirect_array computed assignment
[indirect.array.comp.assign]
26.6.9.4
indirect_array fill function
[indirect.array.fill]
26.6.10
valarray range access
[valarray.range]
26.7
Generalized numeric operations
[numeric.ops]
26.7.1
Header synopsis
[numeric.ops.overview]
26.7.2
Accumulate
[accumulate]
26.7.3
Inner product
[inner.product]
26.7.4
Partial sum
[partial.sum]
26.7.5
Adjacent difference
[adjacent.difference]
26.7.6
Iota
[numeric.iota]
26.8
C library
[c.math]
27
Input/output library
[input.output]
27.1
General
[input.output.general]
27.2
Iostreams requirements
[iostreams.requirements]
27.2.1
Imbue limitations
[iostream.limits.imbue]
27.2.2
Positioning type limitations
[iostreams.limits.pos]
27.2.3
Thread safety
[iostreams.threadsafety]
27.3
Forward declarations
[iostream.forward]
27.4
Standard iostream objects
[iostream.objects]
27.4.1
Overview
[iostream.objects.overview]
27.4.2
Narrow stream objects
[narrow.stream.objects]
27.4.3
Wide stream objects
[wide.stream.objects]
27.5
Iostreams base classes
[iostreams.base]
27.5.1
Overview
[iostreams.base.overview]
27.5.2
Types
[stream.types]
27.5.3
Class ios_base
[ios.base]
27.5.3.1
Types
[ios.types]
27.5.3.1.1
Class ios_base::failure
[ios::failure]
27.5.3.1.2
Type ios_base::fmtflags
[ios::fmtflags]
27.5.3.1.3
Type ios_base::iostate
[ios::iostate]
27.5.3.1.4
Type ios_base::openmode
[ios::openmode]
27.5.3.1.5
Type ios_base::seekdir
[ios::seekdir]
27.5.3.1.6
Class ios_base::Init
[ios::Init]
27.5.3.2
ios_base state functions
[fmtflags.state]
27.5.3.3
ios_base functions
[ios.base.locales]
27.5.3.4
ios_base static members
[ios.members.static]
27.5.3.5
ios_base storage functions
[ios.base.storage]
27.5.3.6
ios_base callbacks
[ios.base.callback]
27.5.3.7
ios_base constructors/destructor
[ios.base.cons]
27.5.4
Class template fpos
[fpos]
27.5.4.1
fpos members
[fpos.members]
27.5.4.2
fpos requirements
[fpos.operations]
27.5.5
Class template basic_ios
[ios]
27.5.5.1
Overview
[ios.overview]
27.5.5.2
basic_ios constructors
[basic.ios.cons]
27.5.5.3
Member functions
[basic.ios.members]
27.5.5.4
basic_ios flags functions
[iostate.flags]
27.5.6
ios_base manipulators
[std.ios.manip]
27.5.6.1
fmtflags manipulators
[fmtflags.manip]
27.5.6.2
adjustfield manipulators
[adjustfield.manip]
27.5.6.3
basefield manipulators
[basefield.manip]
27.5.6.4
floatfield manipulators
[floatfield.manip]
27.5.6.5
Error reporting
[error.reporting]
27.6
Stream buffers
[stream.buffers]
27.6.1
Overview
[stream.buffers.overview]
27.6.2
Stream buffer requirements
[streambuf.reqts]
27.6.3
Class template basic_streambuf
[streambuf]
27.6.3.1
basic_streambuf constructors
[streambuf.cons]
27.6.3.2
basic_streambuf public member functions
[streambuf.members]
27.6.3.2.1
Locales
[streambuf.locales]
27.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
27.6.3.2.3
Get area
[streambuf.pub.get]
27.6.3.2.4
Putback
[streambuf.pub.pback]
27.6.3.2.5
Put area
[streambuf.pub.put]
27.6.3.3
basic_streambuf protected member functions
[streambuf.protected]
27.6.3.3.1
Assignment
[streambuf.assign]
27.6.3.3.2
Get area access
[streambuf.get.area]
27.6.3.3.3
Put area access
[streambuf.put.area]
27.6.3.4
basic_streambuf virtual functions
[streambuf.virtuals]
27.6.3.4.1
Locales
[streambuf.virt.locales]
27.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
27.6.3.4.3
Get area
[streambuf.virt.get]
27.6.3.4.4
Putback
[streambuf.virt.pback]
27.6.3.4.5
Put area
[streambuf.virt.put]
27.7
Formatting and manipulators
[iostream.format]
27.7.1
Overview
[iostream.format.overview]
27.7.2
Input streams
[input.streams]
27.7.2.1
Class template basic_istream
[istream]
27.7.2.1.1
basic_istream constructors
[istream.cons]
27.7.2.1.2
Class basic_istream assign and swap
[istream.assign]
27.7.2.1.3
Class basic_istream::sentry
[istream::sentry]
27.7.2.2
Formatted input functions
[istream.formatted]
27.7.2.2.1
Common requirements
[istream.formatted.reqmts]
27.7.2.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
27.7.2.2.3
basic_istream::operator>>
[istream::extractors]
27.7.2.3
Unformatted input functions
[istream.unformatted]
27.7.2.4
Standard basic_istream manipulators
[istream.manip]
27.7.2.5
Class template basic_iostream
[iostreamclass]
27.7.2.5.1
basic_iostream constructors
[iostream.cons]
27.7.2.5.2
basic_iostream destructor
[iostream.dest]
27.7.2.5.3
basic_iostream assign and swap
[iostream.assign]
27.7.2.6
Rvalue stream extraction
[istream.rvalue]
27.7.3
Output streams
[output.streams]
27.7.3.1
Class template basic_ostream
[ostream]
27.7.3.2
basic_ostream constructors
[ostream.cons]
27.7.3.3
Class basic_ostream assign and swap
[ostream.assign]
27.7.3.4
Class basic_ostream::sentry
[ostream::sentry]
27.7.3.5
basic_ostream seek members
[ostream.seeks]
27.7.3.6
Formatted output functions
[ostream.formatted]
27.7.3.6.1
Common requirements
[ostream.formatted.reqmts]
27.7.3.6.2
Arithmetic inserters
[ostream.inserters.arithmetic]
27.7.3.6.3
basic_ostream::operator<<
[ostream.inserters]
27.7.3.6.4
Character inserter function templates
[ostream.inserters.character]
27.7.3.7
Unformatted output functions
[ostream.unformatted]
27.7.3.8
Standard basic_ostream manipulators
[ostream.manip]
27.7.3.9
Rvalue stream insertion
[ostream.rvalue]
27.7.4
Standard manipulators
[std.manip]
27.7.5
Extended manipulators
[ext.manip]
27.7.6
Quoted manipulators
[quoted.manip]
27.8
String-based streams
[string.streams]
27.8.1
Overview
[string.streams.overview]
27.8.2
Class template basic_stringbuf
[stringbuf]
27.8.2.1
basic_stringbuf constructors
[stringbuf.cons]
27.8.2.2
Assign and swap
[stringbuf.assign]
27.8.2.3
Member functions
[stringbuf.members]
27.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
27.8.3
Class template basic_istringstream
[istringstream]
27.8.3.1
basic_istringstream constructors
[istringstream.cons]
27.8.3.2
Assign and swap
[istringstream.assign]
27.8.3.3
Member functions
[istringstream.members]
27.8.4
Class template basic_ostringstream
[ostringstream]
27.8.4.1
basic_ostringstream constructors
[ostringstream.cons]
27.8.4.2
Assign and swap
[ostringstream.assign]
27.8.4.3
Member functions
[ostringstream.members]
27.8.5
Class template basic_stringstream
[stringstream]
27.8.5.1
basic_stringstream constructors
[stringstream.cons]
27.8.5.2
Assign and swap
[stringstream.assign]
27.8.5.3
Member functions
[stringstream.members]
27.9
File-based streams
[file.streams]
27.9.1
File streams
[fstreams]
27.9.1.1
Class template basic_filebuf
[filebuf]
27.9.1.2
basic_filebuf constructors
[filebuf.cons]
27.9.1.3
Assign and swap
[filebuf.assign]
27.9.1.4
Member functions
[filebuf.members]
27.9.1.5
Overridden virtual functions
[filebuf.virtuals]
27.9.1.6
Class template basic_ifstream
[ifstream]
27.9.1.7
basic_ifstream constructors
[ifstream.cons]
27.9.1.8
Assign and swap
[ifstream.assign]
27.9.1.9
Member functions
[ifstream.members]
27.9.1.10
Class template basic_ofstream
[ofstream]
27.9.1.11
basic_ofstream constructors
[ofstream.cons]
27.9.1.12
Assign and swap
[ofstream.assign]
27.9.1.13
Member functions
[ofstream.members]
27.9.1.14
Class template basic_fstream
[fstream]
27.9.1.15
basic_fstream constructors
[fstream.cons]
27.9.1.16
Assign and swap
[fstream.assign]
27.9.1.17
Member functions
[fstream.members]
27.9.2
C library files
[c.files]
28
Regular expressions library
[re]
28.1
General
[re.general]
28.2
Definitions
[re.def]
28.2.1
collating element
[defns.regex.collating.element]
28.2.2
finite state machine
[defns.regex.finite.state.machine]
28.2.3
format specifier
[defns.regex.format.specifier]
28.2.4
matched
[defns.regex.matched]
28.2.5
primary equivalence class
[defns.regex.primary.equivalence.class]
28.2.6
regular expression
[defns.regex.regular.expression]
28.2.7
sub-expression
[defns.regex.subexpression]
28.3
Requirements
[re.req]
28.4
Header synopsis
[re.syn]
28.5
Namespace std::regex_constants
[re.const]
28.5.1
Bitmask type syntax_option_type
[re.synopt]
28.5.2
Bitmask type regex_constants::match_flag_type
[re.matchflag]
28.5.3
Implementation-defined error_type
[re.err]
28.6
Class regex_error
[re.badexp]
28.7
Class template regex_traits
[re.traits]
28.8
Class template basic_regex
[re.regex]
28.8.1
basic_regex constants
[re.regex.const]
28.8.2
basic_regex constructors
[re.regex.construct]
28.8.3
basic_regex assign
[re.regex.assign]
28.8.4
basic_regex constant operations
[re.regex.operations]
28.8.5
basic_regex locale
[re.regex.locale]
28.8.6
basic_regex swap
[re.regex.swap]
28.8.7
basic_regex non-member functions
[re.regex.nonmemb]
28.8.7.1
basic_regex non-member swap
[re.regex.nmswap]
28.9
Class template sub_match
[re.submatch]
28.9.1
sub_match members
[re.submatch.members]
28.9.2
sub_match non-member operators
[re.submatch.op]
28.10
Class template match_results
[re.results]
28.10.1
match_results constructors
[re.results.const]
28.10.2
match_results state
[re.results.state]
28.10.3
match_results size
[re.results.size]
28.10.4
match_results element access
[re.results.acc]
28.10.5
match_results formatting
[re.results.form]
28.10.6
match_results allocator
[re.results.all]
28.10.7
match_results swap
[re.results.swap]
28.10.8
match_results non-member functions
[re.results.nonmember]
28.11
Regular expression algorithms
[re.alg]
28.11.1
exceptions
[re.except]
28.11.2
regex_match
[re.alg.match]
28.11.3
regex_search
[re.alg.search]
28.11.4
regex_replace
[re.alg.replace]
28.12
Regular expression iterators
[re.iter]
28.12.1
Class template regex_iterator
[re.regiter]
28.12.1.1
regex_iterator constructors
[re.regiter.cnstr]
28.12.1.2
regex_iterator comparisons
[re.regiter.comp]
28.12.1.3
regex_iterator indirection
[re.regiter.deref]
28.12.1.4
regex_iterator increment
[re.regiter.incr]
28.12.2
Class template regex_token_iterator
[re.tokiter]
28.12.2.1
regex_token_iterator constructors
[re.tokiter.cnstr]
28.12.2.2
regex_token_iterator comparisons
[re.tokiter.comp]
28.12.2.3
regex_token_iterator indirection
[re.tokiter.deref]
28.12.2.4
regex_token_iterator increment
[re.tokiter.incr]
28.13
Modified ECMAScript regular expression grammar
[re.grammar]
29
Atomic operations library
[atomics]
29.1
General
[atomics.general]
29.2
Header synopsis
[atomics.syn]
29.3
Order and consistency
[atomics.order]
29.4
Lock-free property
[atomics.lockfree]
29.5
Atomic types
[atomics.types.generic]
29.6
Operations on atomic types
[atomics.types.operations]
29.6.1
General operations on atomic types
[atomics.types.operations.general]
29.6.2
Templated operations on atomic types
[atomics.types.operations.templ]
29.6.3
Arithmetic operations on atomic types
[atomics.types.operations.arith]
29.6.4
Operations on atomic pointer types
[atomics.types.operations.pointer]
29.6.5
Requirements for operations on atomic types
[atomics.types.operations.req]
29.7
Flag type and operations
[atomics.flag]
29.8
Fences
[atomics.fences]
30
Thread support library
[thread]
30.1
General
[thread.general]
30.2
Requirements
[thread.req]
30.2.1
Template parameter names
[thread.req.paramname]
30.2.2
Exceptions
[thread.req.exception]
30.2.3
Native handles
[thread.req.native]
30.2.4
Timing specifications
[thread.req.timing]
30.2.5
Requirements for Lockable types
[thread.req.lockable]
30.2.5.1
In general
[thread.req.lockable.general]
30.2.5.2
BasicLockable requirements
[thread.req.lockable.basic]
30.2.5.3
Lockable requirements
[thread.req.lockable.req]
30.2.5.4
TimedLockable requirements
[thread.req.lockable.timed]
30.2.6
decay_copy
[thread.decaycopy]
30.3
Threads
[thread.threads]
30.3.1
Class thread
[thread.thread.class]
30.3.1.1
Class thread::id
[thread.thread.id]
30.3.1.2
thread constructors
[thread.thread.constr]
30.3.1.3
thread destructor
[thread.thread.destr]
30.3.1.4
thread assignment
[thread.thread.assign]
30.3.1.5
thread members
[thread.thread.member]
30.3.1.6
thread static members
[thread.thread.static]
30.3.1.7
thread specialized algorithms
[thread.thread.algorithm]
30.3.2
Namespace this_thread
[thread.thread.this]
30.4
Mutual exclusion
[thread.mutex]
30.4.1
Mutex requirements
[thread.mutex.requirements]
30.4.1.1
In general
[thread.mutex.requirements.general]
30.4.1.2
Mutex types
[thread.mutex.requirements.mutex]
30.4.1.2.1
Class mutex
[thread.mutex.class]
30.4.1.2.2
Class recursive_mutex
[thread.mutex.recursive]
30.4.1.3
Timed mutex types
[thread.timedmutex.requirements]
30.4.1.3.1
Class timed_mutex
[thread.timedmutex.class]
30.4.1.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
30.4.1.4
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
30.4.1.4.1
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
30.4.2
Locks
[thread.lock]
30.4.2.1
Class template lock_guard
[thread.lock.guard]
30.4.2.2
Class template unique_lock
[thread.lock.unique]
30.4.2.2.1
unique_lock constructors, destructor, and assignment
[thread.lock.unique.cons]
30.4.2.2.2
unique_lock locking
[thread.lock.unique.locking]
30.4.2.2.3
unique_lock modifiers
[thread.lock.unique.mod]
30.4.2.2.4
unique_lock observers
[thread.lock.unique.obs]
30.4.2.3
Class template shared_lock
[thread.lock.shared]
30.4.2.3.1
shared_lock constructors, destructor, and assignment
[thread.lock.shared.cons]
30.4.2.3.2
shared_lock locking
[thread.lock.shared.locking]
30.4.2.3.3
shared_lock modifiers
[thread.lock.shared.mod]
30.4.2.3.4
shared_lock observers
[thread.lock.shared.obs]
30.4.3
Generic locking algorithms
[thread.lock.algorithm]
30.4.4
Call once
[thread.once]
30.4.4.1
Struct once_flag
[thread.once.onceflag]
30.4.4.2
Function call_once
[thread.once.callonce]
30.5
Condition variables
[thread.condition]
30.5.1
Class condition_variable
[thread.condition.condvar]
30.5.2
Class condition_variable_any
[thread.condition.condvarany]
30.6
Futures
[futures]
30.6.1
Overview
[futures.overview]
30.6.2
Error handling
[futures.errors]
30.6.3
Class future_error
[futures.future_error]
30.6.4
Shared state
[futures.state]
30.6.5
Class template promise
[futures.promise]
30.6.6
Class template future
[futures.unique_future]
30.6.7
Class template shared_future
[futures.shared_future]
30.6.8
Function template async
[futures.async]
30.6.9
Class template packaged_task
[futures.task]
30.6.9.1
packaged_task member functions
[futures.task.members]
30.6.9.2
packaged_task globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basic concepts
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Declarators
[gram.decl]
A.8
Classes
[gram.class]
A.9
Derived classes
[gram.derived]
A.10
Special member functions
[gram.special]
A.11
Overloading
[gram.over]
A.12
Templates
[gram.temp]
A.13
Exception handling
[gram.except]
A.14
Preprocessing directives
[gram.cpp]
Annex B (informative)
Implementation quantities
[implimits]
Annex C (informative)
Compatibility
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
Clause [lex]: lexical conventions
[diff.lex]
C.1.2
Clause [basic]: basic concepts
[diff.basic]
C.1.3
Clause [conv]: standard conversions
[diff.conv]
C.1.4
Clause [expr]: expressions
[diff.expr]
C.1.5
Clause [stmt.stmt]: statements
[diff.stat]
C.1.6
Clause [dcl.dcl]: declarations
[diff.dcl]
C.1.7
Clause [dcl.decl]: declarators
[diff.decl]
C.1.8
Clause [class]: classes
[diff.class]
C.1.9
Clause [special]: special member functions
[diff.special]
C.1.10
Clause [cpp]: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.2.2
Clause [conv]: standard conversions
[diff.cpp03.conv]
C.2.3
Clause [expr]: expressions
[diff.cpp03.expr]
C.2.4
Clause [dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.2.5
Clause [dcl.decl]: declarators
[diff.cpp03.dcl.decl]
C.2.6
Clause [special]: special member functions
[diff.cpp03.special]
C.2.7
Clause [temp]: templates
[diff.cpp03.temp]
C.2.8
Clause [library]: library introduction
[diff.cpp03.library]
C.2.9
Clause [language.support]: language support library
[diff.cpp03.language.support]
C.2.10
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.2.11
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.2.12
Clause [strings]: strings library
[diff.cpp03.strings]
C.2.13
Clause [containers]: containers library
[diff.cpp03.containers]
C.2.14
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.2.15
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.2.16
Clause [input.output]: Input/output library
[diff.cpp03.input.output]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
Clause [lex]: lexical conventions
[diff.cpp11.lex]
C.3.2
Clause [basic]: basic concepts
[diff.cpp11.basic]
C.3.3
Clause [dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.4
Clause [input.output]: input/output library
[diff.cpp11.input.output]
C.4
C standard library
[diff.library]
C.4.1
Modifications to headers
[diff.mods.to.headers]
C.4.2
Modifications to definitions
[diff.mods.to.definitions]
C.4.2.1
Types char16_t and char32_t
[diff.char16]
C.4.2.2
Type wchar_t
[diff.wchar.t]
C.4.2.3
Header
[diff.header.iso646.h]
C.4.2.4
Macro NULL
[diff.null]
C.4.3
Modifications to declarations
[diff.mods.to.declarations]
C.4.4
Modifications to behavior
[diff.mods.to.behavior]
C.4.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.4.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
D.1
Increment operator with bool operand
[depr.incr.bool]
D.2
register keyword
[depr.register]
D.3
Implicit declaration of copy functions
[depr.impldec]
D.4
Dynamic exception specifications
[depr.except.spec]
D.5
C standard library headers
[depr.c.headers]
D.6
Old iostreams members
[depr.ios.members]
D.7
char* streams
[depr.str.strstreams]
D.7.1
Class strstreambuf
[depr.strstreambuf]
D.7.1.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.7.1.2
Member functions
[depr.strstreambuf.members]
D.7.1.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.7.2
Class istrstream
[depr.istrstream]
D.7.2.1
istrstream constructors
[depr.istrstream.cons]
D.7.2.2
Member functions
[depr.istrstream.members]
D.7.3
Class ostrstream
[depr.ostrstream]
D.7.3.1
ostrstream constructors
[depr.ostrstream.cons]
D.7.3.2
Member functions
[depr.ostrstream.members]
D.7.4
Class strstream
[depr.strstream]
D.7.4.1
strstream constructors
[depr.strstream.cons]
D.7.4.2
strstream destructor
[depr.strstream.dest]
D.7.4.3
strstream operations
[depr.strstream.oper]
D.8
Function objects
[depr.function.objects]
D.8.1
Base
[depr.base]
D.8.2
Function adaptors
[depr.adaptors]
D.8.2.1
Adaptors for pointers to functions
[depr.function.pointer.adaptors]
D.8.2.2
Adaptors for pointers to members
[depr.member.pointer.adaptors]
D.9
Binders
[depr.lib.binders]
D.9.1
Class template binder1st
[depr.lib.binder.1st]
D.9.2
bind1st
[depr.lib.bind.1st]
D.9.3
Class template binder2nd
[depr.lib.binder.2nd]
D.9.4
bind2nd
[depr.lib.bind.2nd]
D.10
auto_ptr
[depr.auto.ptr]
D.10.1
Class template auto_ptr
[auto.ptr]
D.10.1.1
auto_ptr constructors
[auto.ptr.cons]
D.10.1.2
auto_ptr members
[auto.ptr.members]
D.10.1.3
auto_ptr conversions
[auto.ptr.conv]
D.11
Violating exception-specifications
[exception.unexpected]
D.11.1
Type unexpected_handler
[unexpected.handler]
D.11.2
set_unexpected
[set.unexpected]
D.11.3
get_unexpected
[get.unexpected]
D.11.4
unexpected
[unexpected]
D.12
Random shuffle
[depr.alg.random.shuffle]
Annex E (normative)
Universal character names for identifier characters
[charname]
E.1
Ranges of characters allowed
[charname.allowed]
E.2
Ranges of characters disallowed initially
[charname.disallowed]
C++17⁻ (N4618)
1
General
[intro]
1.1
Scope
[intro.scope]
1.2
Normative references
[intro.refs]
1.3
Terms and definitions
[intro.defs]
1.3.1
access
[defns.access]
1.3.2
argument
[defns.argument]
1.3.3
argument
[defns.argument.macro]
1.3.4
argument
[defns.argument.throw]
1.3.5
argument
[defns.argument.templ]
1.3.6
block
[defns.block]
1.3.7
conditionally-supported
[defns.cond.supp]
1.3.8
diagnostic message
[defns.diagnostic]
1.3.9
dynamic type
[defns.dynamic.type]
1.3.10
dynamic type
[defns.dynamic.type.prvalue]
1.3.11
ill-formed program
[defns.ill.formed]
1.3.12
implementation-defined behavior
[defns.impl.defined]
1.3.13
implementation limits
[defns.impl.limits]
1.3.14
locale-specific behavior
[defns.locale.specific]
1.3.15
multibyte character
[defns.multibyte]
1.3.16
parameter
[defns.parameter]
1.3.17
parameter
[defns.parameter.macro]
1.3.18
parameter
[defns.parameter.templ]
1.3.19
signature
[defns.signature]
1.3.20
signature
[defns.signature.templ]
1.3.21
signature
[defns.signature.spec]
1.3.22
signature
[defns.signature.member]
1.3.23
signature
[defns.signature.member.templ]
1.3.24
signature
[defns.signature.member.spec]
1.3.25
static type
[defns.static.type]
1.3.26
unblock
[defns.unblock]
1.3.27
undefined behavior
[defns.undefined]
1.3.28
unspecified behavior
[defns.unspecified]
1.3.29
well-formed program
[defns.well.formed]
1.4
Implementation compliance
[intro.compliance]
1.5
Structure of this International Standard
[intro.structure]
1.6
Syntax notation
[syntax]
1.7
The C++ memory model
[intro.memory]
1.8
The C++ object model
[intro.object]
1.9
Program execution
[intro.execution]
1.10
Multi-threaded executions and data races
[intro.multithread]
1.10.1
Data races
[intro.races]
1.10.2
Forward progress
[intro.progress]
1.11
Acknowledgments
[intro.ack]
2
Lexical conventions
[lex]
2.1
Separate translation
[lex.separate]
2.2
Phases of translation
[lex.phases]
2.3
Character sets
[lex.charset]
2.4
Preprocessing tokens
[lex.pptoken]
2.5
Alternative tokens
[lex.digraph]
2.6
Tokens
[lex.token]
2.7
Comments
[lex.comment]
2.8
Header names
[lex.header]
2.9
Preprocessing numbers
[lex.ppnumber]
2.10
Identifiers
[lex.name]
2.11
Keywords
[lex.key]
2.12
Operators and punctuators
[lex.operators]
2.13
Literals
[lex.literal]
2.13.1
Kinds of literals
[lex.literal.kinds]
2.13.2
Integer literals
[lex.icon]
2.13.3
Character literals
[lex.ccon]
2.13.4
Floating literals
[lex.fcon]
2.13.5
String literals
[lex.string]
2.13.6
Boolean literals
[lex.bool]
2.13.7
Pointer literals
[lex.nullptr]
2.13.8
User-defined literals
[lex.ext]
3
Basic concepts
[basic]
3.1
Declarations and definitions
[basic.def]
3.2
One-definition rule
[basic.def.odr]
3.3
Scope
[basic.scope]
3.3.1
Declarative regions and scopes
[basic.scope.declarative]
3.3.2
Point of declaration
[basic.scope.pdecl]
3.3.3
Block scope
[basic.scope.block]
3.3.4
Function prototype scope
[basic.scope.proto]
3.3.5
Function scope
[basic.funscope]
3.3.6
Namespace scope
[basic.scope.namespace]
3.3.7
Class scope
[basic.scope.class]
3.3.8
Enumeration scope
[basic.scope.enum]
3.3.9
Template parameter scope
[basic.scope.temp]
3.3.10
Name hiding
[basic.scope.hiding]
3.4
Name lookup
[basic.lookup]
3.4.1
Unqualified name lookup
[basic.lookup.unqual]
3.4.2
Argument-dependent name lookup
[basic.lookup.argdep]
3.4.3
Qualified name lookup
[basic.lookup.qual]
3.4.3.1
Class members
[class.qual]
3.4.3.2
Namespace members
[namespace.qual]
3.4.4
Elaborated type specifiers
[basic.lookup.elab]
3.4.5
Class member access
[basic.lookup.classref]
3.4.6
Using-directives and namespace aliases
[basic.lookup.udir]
3.5
Program and linkage
[basic.link]
3.6
Start and termination
[basic.start]
3.6.1
Main function
[basic.start.main]
3.6.2
Static initialization
[basic.start.static]
3.6.3
Dynamic initialization of non-local variables
[basic.start.dynamic]
3.6.4
Termination
[basic.start.term]
3.7
Storage duration
[basic.stc]
3.7.1
Static storage duration
[basic.stc.static]
3.7.2
Thread storage duration
[basic.stc.thread]
3.7.3
Automatic storage duration
[basic.stc.auto]
3.7.4
Dynamic storage duration
[basic.stc.dynamic]
3.7.4.1
Allocation functions
[basic.stc.dynamic.allocation]
3.7.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
3.7.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
3.7.5
Duration of subobjects
[basic.stc.inherit]
3.8
Object lifetime
[basic.life]
3.9
Types
[basic.types]
3.9.1
Fundamental types
[basic.fundamental]
3.9.2
Compound types
[basic.compound]
3.9.3
CV-qualifiers
[basic.type.qualifier]
3.10
Lvalues and rvalues
[basic.lval]
3.11
Alignment
[basic.align]
4
Standard conversions
[conv]
4.1
Lvalue-to-rvalue conversion
[conv.lval]
4.2
Array-to-pointer conversion
[conv.array]
4.3
Function-to-pointer conversion
[conv.func]
4.4
Temporary materialization conversion
[conv.rval]
4.5
Qualification conversions
[conv.qual]
4.6
Integral promotions
[conv.prom]
4.7
Floating-point promotion
[conv.fpprom]
4.8
Integral conversions
[conv.integral]
4.9
Floating-point conversions
[conv.double]
4.10
Floating-integral conversions
[conv.fpint]
4.11
Pointer conversions
[conv.ptr]
4.12
Pointer to member conversions
[conv.mem]
4.13
Function pointer conversions
[conv.fctptr]
4.14
Boolean conversions
[conv.bool]
4.15
Integer conversion rank
[conv.rank]
5
Expressions
[expr]
5.1
Primary expressions
[expr.prim]
5.1.1
Literals
[expr.prim.literal]
5.1.2
This
[expr.prim.this]
5.1.3
Parentheses
[expr.prim.paren]
5.1.4
Names
[expr.prim.id]
5.1.4.1
Unqualified names
[expr.prim.id.unqual]
5.1.4.2
Qualified names
[expr.prim.id.qual]
5.1.5
Lambda expressions
[expr.prim.lambda]
5.1.6
Fold expressions
[expr.prim.fold]
5.2
Postfix expressions
[expr.post]
5.2.1
Subscripting
[expr.sub]
5.2.2
Function call
[expr.call]
5.2.3
Explicit type conversion (functional notation)
[expr.type.conv]
5.2.4
Pseudo destructor call
[expr.pseudo]
5.2.5
Class member access
[expr.ref]
5.2.6
Increment and decrement
[expr.post.incr]
5.2.7
Dynamic cast
[expr.dynamic.cast]
5.2.8
Type identification
[expr.typeid]
5.2.9
Static cast
[expr.static.cast]
5.2.10
Reinterpret cast
[expr.reinterpret.cast]
5.2.11
Const cast
[expr.const.cast]
5.3
Unary expressions
[expr.unary]
5.3.1
Unary operators
[expr.unary.op]
5.3.2
Increment and decrement
[expr.pre.incr]
5.3.3
Sizeof
[expr.sizeof]
5.3.4
New
[expr.new]
5.3.5
Delete
[expr.delete]
5.3.6
Alignof
[expr.alignof]
5.3.7
noexcept operator
[expr.unary.noexcept]
5.4
Explicit type conversion (cast notation)
[expr.cast]
5.5
Pointer-to-member operators
[expr.mptr.oper]
5.6
Multiplicative operators
[expr.mul]
5.7
Additive operators
[expr.add]
5.8
Shift operators
[expr.shift]
5.9
Relational operators
[expr.rel]
5.10
Equality operators
[expr.eq]
5.11
Bitwise AND operator
[expr.bit.and]
5.12
Bitwise exclusive OR operator
[expr.xor]
5.13
Bitwise inclusive OR operator
[expr.or]
5.14
Logical AND operator
[expr.log.and]
5.15
Logical OR operator
[expr.log.or]
5.16
Conditional operator
[expr.cond]
5.17
Throwing an exception
[expr.throw]
5.18
Assignment and compound assignment operators
[expr.ass]
5.19
Comma operator
[expr.comma]
5.20
Constant expressions
[expr.const]
6
Statements
[stmt.stmt]
6.1
Labeled statement
[stmt.label]
6.2
Expression statement
[stmt.expr]
6.3
Compound statement or block
[stmt.block]
6.4
Selection statements
[stmt.select]
6.4.1
The if statement
[stmt.if]
6.4.2
The switch statement
[stmt.switch]
6.5
Iteration statements
[stmt.iter]
6.5.1
The while statement
[stmt.while]
6.5.2
The do statement
[stmt.do]
6.5.3
The for statement
[stmt.for]
6.5.4
The range-based for statement
[stmt.ranged]
6.6
Jump statements
[stmt.jump]
6.6.1
The break statement
[stmt.break]
6.6.2
The continue statement
[stmt.cont]
6.6.3
The return statement
[stmt.return]
6.6.4
The goto statement
[stmt.goto]
6.7
Declaration statement
[stmt.dcl]
6.8
Ambiguity resolution
[stmt.ambig]
7
Declarations
[dcl.dcl]
7.1
Specifiers
[dcl.spec]
7.1.1
Storage class specifiers
[dcl.stc]
7.1.2
Function specifiers
[dcl.fct.spec]
7.1.3
The typedef specifier
[dcl.typedef]
7.1.4
The friend specifier
[dcl.friend]
7.1.5
The constexpr specifier
[dcl.constexpr]
7.1.6
The inline specifier
[dcl.inline]
7.1.7
Type specifiers
[dcl.type]
7.1.7.1
The cv-qualifiers
[dcl.type.cv]
7.1.7.2
Simple type specifiers
[dcl.type.simple]
7.1.7.3
Elaborated type specifiers
[dcl.type.elab]
7.1.7.4
The auto specifier
[dcl.spec.auto]
7.1.7.4.1
Placeholder type deduction
[dcl.type.auto.deduct]
7.1.7.5
Deduced class template specialization types
[dcl.type.class.deduct]
7.2
Enumeration declarations
[dcl.enum]
7.3
Namespaces
[basic.namespace]
7.3.1
Namespace definition
[namespace.def]
7.3.1.1
Unnamed namespaces
[namespace.unnamed]
7.3.1.2
Namespace member definitions
[namespace.memdef]
7.3.2
Namespace alias
[namespace.alias]
7.3.3
The using declaration
[namespace.udecl]
7.3.4
Using directive
[namespace.udir]
7.4
The asm declaration
[dcl.asm]
7.5
Linkage specifications
[dcl.link]
7.6
Attributes
[dcl.attr]
7.6.1
Attribute syntax and semantics
[dcl.attr.grammar]
7.6.2
Alignment specifier
[dcl.align]
7.6.3
Carries dependency attribute
[dcl.attr.depend]
7.6.4
Deprecated attribute
[dcl.attr.deprecated]
7.6.5
Fallthrough attribute
[dcl.attr.fallthrough]
7.6.6
Maybe unused attribute
[dcl.attr.unused]
7.6.7
Nodiscard attribute
[dcl.attr.nodiscard]
7.6.8
Noreturn attribute
[dcl.attr.noreturn]
8
Declarators
[dcl.decl]
8.1
Type names
[dcl.name]
8.2
Ambiguity resolution
[dcl.ambig.res]
8.3
Meaning of declarators
[dcl.meaning]
8.3.1
Pointers
[dcl.ptr]
8.3.2
References
[dcl.ref]
8.3.3
Pointers to members
[dcl.mptr]
8.3.4
Arrays
[dcl.array]
8.3.5
Functions
[dcl.fct]
8.3.6
Default arguments
[dcl.fct.default]
8.4
Function definitions
[dcl.fct.def]
8.4.1
In general
[dcl.fct.def.general]
8.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
8.4.3
Deleted definitions
[dcl.fct.def.delete]
8.5
Decomposition declarations
[dcl.decomp]
8.6
Initializers
[dcl.init]
8.6.1
Aggregates
[dcl.init.aggr]
8.6.2
Character arrays
[dcl.init.string]
8.6.3
References
[dcl.init.ref]
8.6.4
List-initialization
[dcl.init.list]
9
Classes
[class]
9.1
Class names
[class.name]
9.2
Class members
[class.mem]
9.2.1
Member functions
[class.mfct]
9.2.2
Non-static member functions
[class.mfct.non-static]
9.2.2.1
The this pointer
[class.this]
9.2.3
Static members
[class.static]
9.2.3.1
Static member functions
[class.static.mfct]
9.2.3.2
Static data members
[class.static.data]
9.2.4
Bit-fields
[class.bit]
9.2.5
Nested class declarations
[class.nest]
9.2.6
Nested type names
[class.nested.type]
9.3
Unions
[class.union]
9.3.1
Anonymous unions
[class.union.anon]
9.4
Local class declarations
[class.local]
10
Derived classes
[class.derived]
10.1
Multiple base classes
[class.mi]
10.2
Member name lookup
[class.member.lookup]
10.3
Virtual functions
[class.virtual]
10.4
Abstract classes
[class.abstract]
11
Member access control
[class.access]
11.1
Access specifiers
[class.access.spec]
11.2
Accessibility of base classes and base class members
[class.access.base]
11.3
Friends
[class.friend]
11.4
Protected member access
[class.protected]
11.5
Access to virtual functions
[class.access.virt]
11.6
Multiple access
[class.paths]
11.7
Nested classes
[class.access.nest]
12
Special member functions
[special]
12.1
Constructors
[class.ctor]
12.2
Temporary objects
[class.temporary]
12.3
Conversions
[class.conv]
12.3.1
Conversion by constructor
[class.conv.ctor]
12.3.2
Conversion functions
[class.conv.fct]
12.4
Destructors
[class.dtor]
12.5
Free store
[class.free]
12.6
Initialization
[class.init]
12.6.1
Explicit initialization
[class.expl.init]
12.6.2
Initializing bases and members
[class.base.init]
12.6.3
Initialization by inherited constructor
[class.inhctor.init]
12.7
Construction and destruction
[class.cdtor]
12.8
Copying and moving class objects
[class.copy]
12.8.1
Copy/move constructors
[class.copy.ctor]
12.8.2
Copy/move assignment operator
[class.copy.assign]
12.8.3
Copy/move elision
[class.copy.elision]
13
Overloading
[over]
13.1
Overloadable declarations
[over.load]
13.2
Declaration matching
[over.dcl]
13.3
Overload resolution
[over.match]
13.3.1
Candidate functions and argument lists
[over.match.funcs]
13.3.1.1
Function call syntax
[over.match.call]
13.3.1.1.1
Call to named function
[over.call.func]
13.3.1.1.2
Call to object of class type
[over.call.object]
13.3.1.2
Operators in expressions
[over.match.oper]
13.3.1.3
Initialization by constructor
[over.match.ctor]
13.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
13.3.1.5
Initialization by conversion function
[over.match.conv]
13.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
13.3.1.7
Initialization by list-initialization
[over.match.list]
13.3.1.8
Class template argument deduction
[over.match.class.deduct]
13.3.2
Viable functions
[over.match.viable]
13.3.3
Best viable function
[over.match.best]
13.3.3.1
Implicit conversion sequences
[over.best.ics]
13.3.3.1.1
Standard conversion sequences
[over.ics.scs]
13.3.3.1.2
User-defined conversion sequences
[over.ics.user]
13.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
13.3.3.1.4
Reference binding
[over.ics.ref]
13.3.3.1.5
List-initialization sequence
[over.ics.list]
13.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
13.4
Address of overloaded function
[over.over]
13.5
Overloaded operators
[over.oper]
13.5.1
Unary operators
[over.unary]
13.5.2
Binary operators
[over.binary]
13.5.3
Assignment
[over.ass]
13.5.4
Function call
[over.call]
13.5.5
Subscripting
[over.sub]
13.5.6
Class member access
[over.ref]
13.5.7
Increment and decrement
[over.inc]
13.5.8
User-defined literals
[over.literal]
13.6
Built-in operators
[over.built]
14
Templates
[temp]
14.1
Template parameters
[temp.param]
14.2
Names of template specializations
[temp.names]
14.3
Template arguments
[temp.arg]
14.3.1
Template type arguments
[temp.arg.type]
14.3.2
Template non-type arguments
[temp.arg.nontype]
14.3.3
Template template arguments
[temp.arg.template]
14.4
Type equivalence
[temp.type]
14.5
Template declarations
[temp.decls]
14.5.1
Class templates
[temp.class]
14.5.1.1
Member functions of class templates
[temp.mem.func]
14.5.1.2
Member classes of class templates
[temp.mem.class]
14.5.1.3
Static data members of class templates
[temp.static]
14.5.1.4
Enumeration members of class templates
[temp.mem.enum]
14.5.2
Member templates
[temp.mem]
14.5.3
Variadic templates
[temp.variadic]
14.5.4
Friends
[temp.friend]
14.5.5
Class template partial specializations
[temp.class.spec]
14.5.5.1
Matching of class template partial specializations
[temp.class.spec.match]
14.5.5.2
Partial ordering of class template specializations
[temp.class.order]
14.5.5.3
Members of class template specializations
[temp.class.spec.mfunc]
14.5.6
Function templates
[temp.fct]
14.5.6.1
Function template overloading
[temp.over.link]
14.5.6.2
Partial ordering of function templates
[temp.func.order]
14.5.7
Alias templates
[temp.alias]
14.6
Name resolution
[temp.res]
14.6.1
Locally declared names
[temp.local]
14.6.2
Dependent names
[temp.dep]
14.6.2.1
Dependent types
[temp.dep.type]
14.6.2.2
Type-dependent expressions
[temp.dep.expr]
14.6.2.3
Value-dependent expressions
[temp.dep.constexpr]
14.6.2.4
Dependent template arguments
[temp.dep.temp]
14.6.3
Non-dependent names
[temp.nondep]
14.6.4
Dependent name resolution
[temp.dep.res]
14.6.4.1
Point of instantiation
[temp.point]
14.6.4.2
Candidate functions
[temp.dep.candidate]
14.6.5
Friend names declared within a class template
[temp.inject]
14.7
Template instantiation and specialization
[temp.spec]
14.7.1
Implicit instantiation
[temp.inst]
14.7.2
Explicit instantiation
[temp.explicit]
14.7.3
Explicit specialization
[temp.expl.spec]
14.8
Function template specializations
[temp.fct.spec]
14.8.1
Explicit template argument specification
[temp.arg.explicit]
14.8.2
Template argument deduction
[temp.deduct]
14.8.2.1
Deducing template arguments from a function call
[temp.deduct.call]
14.8.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
14.8.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
14.8.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
14.8.2.5
Deducing template arguments from a type
[temp.deduct.type]
14.8.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
14.8.3
Overload resolution
[temp.over]
14.9
Deduction guides
[temp.deduct.guide]
15
Exception handling
[except]
15.1
Throwing an exception
[except.throw]
15.2
Constructors and destructors
[except.ctor]
15.3
Handling an exception
[except.handle]
15.4
Exception specifications
[except.spec]
15.5
Special functions
[except.special]
15.5.1
The std::terminate() function
[except.terminate]
15.5.2
The std::uncaught_exceptions() function
[except.uncaught]
16
Preprocessing directives
[cpp]
16.1
Conditional inclusion
[cpp.cond]
16.2
Source file inclusion
[cpp.include]
16.3
Macro replacement
[cpp.replace]
16.3.1
Argument substitution
[cpp.subst]
16.3.2
The # operator
[cpp.stringize]
16.3.3
The ## operator
[cpp.concat]
16.3.4
Rescanning and further replacement
[cpp.rescan]
16.3.5
Scope of macro definitions
[cpp.scope]
16.4
Line control
[cpp.line]
16.5
Error directive
[cpp.error]
16.6
Pragma directive
[cpp.pragma]
16.7
Null directive
[cpp.null]
16.8
Predefined macro names
[cpp.predefined]
16.9
Pragma operator
[cpp.pragma.op]
17
Library introduction
[library]
17.1
General
[library.general]
17.2
The C standard library
[library.c]
17.3
Definitions
[definitions]
17.3.1
arbitrary-positional stream
[defns.arbitrary.stream]
17.3.2
character
[defns.character]
17.3.3
character container type
[defns.character.container]
17.3.4
comparison function
[defns.comparison]
17.3.5
component
[defns.component]
17.3.6
constant subexpression
[defns.const.subexpr]
17.3.7
deadlock
[defns.deadlock]
17.3.8
default behavior
[defns.default.behavior.impl]
17.3.9
default behavior
[defns.default.behavior.func]
17.3.10
handler function
[defns.handler]
17.3.11
iostream class templates
[defns.iostream.templates]
17.3.12
modifier function
[defns.modifier]
17.3.13
move assignment
[defns.move.assign]
17.3.14
move construction
[defns.move.constr]
17.3.15
NTCTS
[defns.ntcts]
17.3.16
object state
[defns.obj.state]
17.3.17
observer function
[defns.observer]
17.3.18
referenceable type
[defns.referenceable]
17.3.19
replacement function
[defns.replacement]
17.3.20
repositional stream
[defns.repositional.stream]
17.3.21
required behavior
[defns.required.behavior]
17.3.22
reserved function
[defns.reserved.function]
17.3.23
stable algorithm
[defns.stable]
17.3.24
traits class
[defns.traits]
17.3.25
valid but unspecified state
[defns.valid]
17.4
Method of description (Informative)
[description]
17.4.1
Structure of each clause
[structure]
17.4.1.1
Elements
[structure.elements]
17.4.1.2
Summary
[structure.summary]
17.4.1.3
Requirements
[structure.requirements]
17.4.1.4
Detailed specifications
[structure.specifications]
17.4.1.5
C library
[structure.see.also]
17.4.2
Other conventions
[conventions]
17.4.2.1
Type descriptions
[type.descriptions]
17.4.2.1.1
General
[type.descriptions.general]
17.4.2.1.2
Exposition-only types
[expos.only.types]
17.4.2.1.3
Enumerated types
[enumerated.types]
17.4.2.1.4
Bitmask types
[bitmask.types]
17.4.2.1.5
Character sequences
[character.seq]
17.4.2.1.5.1
Byte strings
[byte.strings]
17.4.2.1.5.2
Multibyte strings
[multibyte.strings]
17.4.2.2
Functions within classes
[functions.within.classes]
17.4.2.3
Private members
[objects.within.classes]
17.5
Library-wide requirements
[requirements]
17.5.1
Library contents and organization
[organization]
17.5.1.1
Library contents
[contents]
17.5.1.2
Headers
[headers]
17.5.1.3
Freestanding implementations
[compliance]
17.5.2
Using the library
[using]
17.5.2.1
Overview
[using.overview]
17.5.2.2
Headers
[using.headers]
17.5.2.3
Linkage
[using.linkage]
17.5.3
Requirements on types and expressions
[utility.requirements]
17.5.3.1
Template argument requirements
[utility.arg.requirements]
17.5.3.2
Swappable requirements
[swappable.requirements]
17.5.3.3
NullablePointer requirements
[nullablepointer.requirements]
17.5.3.4
Hash requirements
[hash.requirements]
17.5.3.5
Allocator requirements
[allocator.requirements]
17.5.3.5.1
Allocator completeness requirements
[allocator.requirements.completeness]
17.5.4
Constraints on programs
[constraints]
17.5.4.1
Overview
[constraints.overview]
17.5.4.2
Namespace use
[namespace.constraints]
17.5.4.2.1
Namespace std
[namespace.std]
17.5.4.2.2
Namespace posix
[namespace.posix]
17.5.4.2.3
Namespaces for future standardization
[namespace.future]
17.5.4.3
Reserved names
[reserved.names]
17.5.4.3.1
Zombie names
[zombie.names]
17.5.4.3.2
Macro names
[macro.names]
17.5.4.3.3
External linkage
[extern.names]
17.5.4.3.4
Types
[extern.types]
17.5.4.3.5
User-defined literal suffixes
[usrlit.suffix]
17.5.4.4
Headers
[alt.headers]
17.5.4.5
Derived classes
[derived.classes]
17.5.4.6
Replacement functions
[replacement.functions]
17.5.4.7
Handler functions
[handler.functions]
17.5.4.8
Other functions
[res.on.functions]
17.5.4.9
Function arguments
[res.on.arguments]
17.5.4.10
Library object access
[res.on.objects]
17.5.4.11
Requires paragraph
[res.on.required]
17.5.5
Conforming implementations
[conforming]
17.5.5.1
Overview
[conforming.overview]
17.5.5.2
Headers
[res.on.headers]
17.5.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
17.5.5.4
Non-member functions
[global.functions]
17.5.5.5
Member functions
[member.functions]
17.5.5.6
constexpr functions and constructors
[constexpr.functions]
17.5.5.7
Requirements for stable algorithms
[algorithm.stable]
17.5.5.8
Reentrancy
[reentrancy]
17.5.5.9
Data race avoidance
[res.on.data.races]
17.5.5.10
Protection within classes
[protection.within.classes]
17.5.5.11
Derived classes
[derivation]
17.5.5.12
Restrictions on exception handling
[res.on.exception.handling]
17.5.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
17.5.5.14
Value of error codes
[value.error.codes]
17.5.5.15
Moved-from state of library types
[lib.types.movedfrom]
18
Language support library
[language.support]
18.1
General
[support.general]
18.2
Common definitions
[support.types]
18.2.1
Header synopsis
[cstddef.syn]
18.2.2
Header synopsis
[cstdlib.syn]
18.2.3
Null pointers
[support.types.nullptr]
18.2.4
Sizes, alignments, and offsets
[support.types.layout]
18.3
Implementation properties
[support.limits]
18.3.1
In general
[support.limits.general]
18.3.2
Numeric limits
[limits]
18.3.2.1
Class template numeric_limits
[limits.numeric]
18.3.2.2
Header synopsis
[limits.syn]
18.3.2.3
Class template numeric_limits
[numeric.limits]
18.3.2.4
numeric_limits members
[numeric.limits.members]
18.3.2.5
Type float_round_style
[round.style]
18.3.2.6
Type float_denorm_style
[denorm.style]
18.3.2.7
numeric_limits specializations
[numeric.special]
18.3.3
C library
[c.limits]
18.3.3.1
Header synopsis
[climits.syn]
18.3.3.2
Header synopsis
[cfloat.syn]
18.4
Integer types
[cstdint]
18.4.1
Header synopsis
[cstdint.syn]
18.5
Start and termination
[support.start.term]
18.6
Dynamic memory management
[support.dynamic]
18.6.1
Header synopsis
[new.syn]
18.6.2
Storage allocation and deallocation
[new.delete]
18.6.2.1
Single-object forms
[new.delete.single]
18.6.2.2
Array forms
[new.delete.array]
18.6.2.3
Non-allocating forms
[new.delete.placement]
18.6.2.4
Data races
[new.delete.dataraces]
18.6.3
Storage allocation errors
[alloc.errors]
18.6.3.1
Class bad_alloc
[bad.alloc]
18.6.3.2
Class bad_array_new_length
[new.badlength]
18.6.3.3
Type new_handler
[new.handler]
18.6.3.4
set_new_handler
[set.new.handler]
18.6.3.5
get_new_handler
[get.new.handler]
18.6.4
Pointer optimization barrier
[ptr.launder]
18.6.5
Hardware interference size
[hardware.interference]
18.7
Type identification
[support.rtti]
18.7.1
Header synopsis
[typeinfo.syn]
18.7.2
Class type_info
[type.info]
18.7.3
Class bad_cast
[bad.cast]
18.7.4
Class bad_typeid
[bad.typeid]
18.8
Exception handling
[support.exception]
18.8.1
Header synopsis
[exception.syn]
18.8.2
Class exception
[exception]
18.8.3
Class bad_exception
[bad.exception]
18.8.4
Abnormal termination
[exception.terminate]
18.8.4.1
Type terminate_handler
[terminate.handler]
18.8.4.2
set_terminate
[set.terminate]
18.8.4.3
get_terminate
[get.terminate]
18.8.4.4
terminate
[terminate]
18.8.5
uncaught_exceptions
[uncaught.exceptions]
18.8.6
Exception propagation
[propagation]
18.8.7
nested_exception
[except.nested]
18.9
Initializer lists
[support.initlist]
18.9.1
Header synopsis
[initializer_list.syn]
18.9.2
Initializer list constructors
[support.initlist.cons]
18.9.3
Initializer list access
[support.initlist.access]
18.9.4
Initializer list range access
[support.initlist.range]
18.10
Other runtime support
[support.runtime]
18.10.1
Header synopsis
[cstdarg.syn]
18.10.2
Header synopsis
[csetjmp.syn]
18.10.3
Header synopsis
[cstdbool.syn]
18.10.4
Header synopsis
[cstdalign.syn]
18.10.5
Header synopsis
[csignal.syn]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
Header synopsis
[stdexcept.syn]
19.2.2
Class logic_error
[logic.error]
19.2.3
Class domain_error
[domain.error]
19.2.4
Class invalid_argument
[invalid.argument]
19.2.5
Class length_error
[length.error]
19.2.6
Class out_of_range
[out.of.range]
19.2.7
Class runtime_error
[runtime.error]
19.2.8
Class range_error
[range.error]
19.2.9
Class overflow_error
[overflow.error]
19.2.10
Class underflow_error
[underflow.error]
19.3
Assertions
[assertions]
19.3.1
Header synopsis
[cassert.syn]
19.3.2
The assert macro
[assertions.assert]
19.4
Error numbers
[errno]
19.4.1
Header synopsis
[cerrno.syn]
19.5
System error support
[syserr]
19.5.1
Header synopsis
[system_error.syn]
19.5.2
Class error_category
[syserr.errcat]
19.5.2.1
Class error_category overview
[syserr.errcat.overview]
19.5.2.2
Class error_category virtual members
[syserr.errcat.virtuals]
19.5.2.3
Class error_category non-virtual members
[syserr.errcat.nonvirtuals]
19.5.2.4
Program defined classes derived from error_category
[syserr.errcat.derived]
19.5.2.5
Error category objects
[syserr.errcat.objects]
19.5.3
Class error_code
[syserr.errcode]
19.5.3.1
Class error_code overview
[syserr.errcode.overview]
19.5.3.2
Class error_code constructors
[syserr.errcode.constructors]
19.5.3.3
Class error_code modifiers
[syserr.errcode.modifiers]
19.5.3.4
Class error_code observers
[syserr.errcode.observers]
19.5.3.5
Class error_code non-member functions
[syserr.errcode.nonmembers]
19.5.4
Class error_condition
[syserr.errcondition]
19.5.4.1
Class error_condition overview
[syserr.errcondition.overview]
19.5.4.2
Class error_condition constructors
[syserr.errcondition.constructors]
19.5.4.3
Class error_condition modifiers
[syserr.errcondition.modifiers]
19.5.4.4
Class error_condition observers
[syserr.errcondition.observers]
19.5.4.5
Class error_condition non-member functions
[syserr.errcondition.nonmembers]
19.5.5
Comparison operators
[syserr.compare]
19.5.6
System error hash support
[syserr.hash]
19.5.7
Class system_error
[syserr.syserr]
19.5.7.1
Class system_error overview
[syserr.syserr.overview]
19.5.7.2
Class system_error members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Operators
[operators]
20.2.2
swap
[utility.swap]
20.2.3
exchange
[utility.exchange]
20.2.4
forward/move helpers
[forward]
20.2.5
Function template as_const
[utility.as_const]
20.2.6
Function template declval
[declval]
20.2.7
Primitive numeric output conversion
[utility.to.chars]
20.2.8
Primitive numeric input conversion
[utility.from.chars]
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
Class template tuple
[tuple.tuple]
20.5.2.1
Construction
[tuple.cnstr]
20.5.2.2
Assignment
[tuple.assign]
20.5.2.3
swap
[tuple.swap]
20.5.2.4
Tuple creation functions
[tuple.creation]
20.5.2.5
Calling a function with a tuple of arguments
[tuple.apply]
20.5.2.6
Tuple helper classes
[tuple.helper]
20.5.2.7
Element access
[tuple.elem]
20.5.2.8
Relational operators
[tuple.rel]
20.5.2.9
Tuple traits
[tuple.traits]
20.5.2.10
Tuple specialized algorithms
[tuple.special]
20.6
Optional objects
[optional]
20.6.1
In general
[optional.general]
20.6.2
Header synopsis
[optional.syn]
20.6.3
Class template optional
[optional.optional]
20.6.3.1
Constructors
[optional.ctor]
20.6.3.2
Destructor
[optional.dtor]
20.6.3.3
Assignment
[optional.assign]
20.6.3.4
Swap
[optional.swap]
20.6.3.5
Observers
[optional.observe]
20.6.3.6
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
Class template variant
[variant.variant]
20.7.2.1
Constructors
[variant.ctor]
20.7.2.2
Destructor
[variant.dtor]
20.7.2.3
Assignment
[variant.assign]
20.7.2.4
Modifiers
[variant.mod]
20.7.2.5
Value status
[variant.status]
20.7.2.6
Swap
[variant.swap]
20.7.3
variant helper classes
[variant.helper]
20.7.4
Value access
[variant.get]
20.7.5
Relational operators
[variant.relops]
20.7.6
Visitation
[variant.visit]
20.7.7
Class monostate
[variant.monostate]
20.7.8
monostate relational operators
[variant.monostate.relops]
20.7.9
Specialized algorithms
[variant.specalg]
20.7.10
Class bad_variant_access
[variant.bad.access]
20.7.11
Hash support
[variant.hash]
20.7.12
Allocator-related traits
[variant.traits]
20.8
Storage for any type
[any]
20.8.1
Header synopsis
[any.synop]
20.8.2
Class bad_any_cast
[any.bad_any_cast]
20.8.3
Class any
[any.class]
20.8.3.1
Construction and destruction
[any.cons]
20.8.3.2
Assignment
[any.assign]
20.8.3.3
Modifiers
[any.modifiers]
20.8.3.4
Observers
[any.observers]
20.8.4
Non-member functions
[any.nonmembers]
20.9
Class template bitset
[template.bitset]
20.9.1
bitset constructors
[bitset.cons]
20.9.2
bitset 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 synopsis
[memory.syn]
20.10.3
Pointer traits
[pointer.traits]
20.10.3.1
Pointer traits member types
[pointer.traits.types]
20.10.3.2
Pointer traits member functions
[pointer.traits.functions]
20.10.4
Pointer safety
[util.dynamic.safety]
20.10.5
Align
[ptr.align]
20.10.6
Allocator argument tag
[allocator.tag]
20.10.7
uses_allocator
[allocator.uses]
20.10.7.1
uses_allocator trait
[allocator.uses.trait]
20.10.7.2
uses-allocator construction
[allocator.uses.construction]
20.10.8
Allocator traits
[allocator.traits]
20.10.8.1
Allocator traits member types
[allocator.traits.types]
20.10.8.2
Allocator traits static member functions
[allocator.traits.members]
20.10.9
The default allocator
[default.allocator]
20.10.9.1
allocator members
[allocator.members]
20.10.9.2
allocator globals
[allocator.globals]
20.10.10
Specialized algorithms
[specialized.algorithms]
20.10.10.1
addressof
[specialized.addressof]
20.10.10.2
uninitialized_default_construct
[uninitialized.construct.default]
20.10.10.3
uninitialized_value_construct
[uninitialized.construct.value]
20.10.10.4
uninitialized_copy
[uninitialized.copy]
20.10.10.5
uninitialized_move
[uninitialized.move]
20.10.10.6
uninitialized_fill
[uninitialized.fill]
20.10.10.7
destroy
[specialized.destroy]
20.10.11
C library memory allocation
[c.malloc]
20.11
Smart pointers
[smartptr]
20.11.1
Class template unique_ptr
[unique.ptr]
20.11.1.1
Default deleters
[unique.ptr.dltr]
20.11.1.1.1
In general
[unique.ptr.dltr.general]
20.11.1.1.2
default_delete
[unique.ptr.dltr.dflt]
20.11.1.1.3
default_delete
[unique.ptr.dltr.dflt1]
20.11.1.2
unique_ptr for single objects
[unique.ptr.single]
20.11.1.2.1
unique_ptr constructors
[unique.ptr.single.ctor]
20.11.1.2.2
unique_ptr destructor
[unique.ptr.single.dtor]
20.11.1.2.3
unique_ptr assignment
[unique.ptr.single.asgn]
20.11.1.2.4
unique_ptr observers
[unique.ptr.single.observers]
20.11.1.2.5
unique_ptr modifiers
[unique.ptr.single.modifiers]
20.11.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.11.1.3.1
unique_ptr constructors
[unique.ptr.runtime.ctor]
20.11.1.3.2
unique_ptr assignment
[unique.ptr.runtime.asgn]
20.11.1.3.3
unique_ptr observers
[unique.ptr.runtime.observers]
20.11.1.3.4
unique_ptr modifiers
[unique.ptr.runtime.modifiers]
20.11.1.4
unique_ptr creation
[unique.ptr.create]
20.11.1.5
unique_ptr specialized algorithms
[unique.ptr.special]
20.11.2
Shared-ownership pointers
[util.smartptr]
20.11.2.1
Class bad_weak_ptr
[util.smartptr.weak.bad]
20.11.2.2
Class template shared_ptr
[util.smartptr.shared]
20.11.2.2.1
shared_ptr constructors
[util.smartptr.shared.const]
20.11.2.2.2
shared_ptr destructor
[util.smartptr.shared.dest]
20.11.2.2.3
shared_ptr assignment
[util.smartptr.shared.assign]
20.11.2.2.4
shared_ptr modifiers
[util.smartptr.shared.mod]
20.11.2.2.5
shared_ptr observers
[util.smartptr.shared.obs]
20.11.2.2.6
shared_ptr creation
[util.smartptr.shared.create]
20.11.2.2.7
shared_ptr comparison
[util.smartptr.shared.cmp]
20.11.2.2.8
shared_ptr specialized algorithms
[util.smartptr.shared.spec]
20.11.2.2.9
shared_ptr casts
[util.smartptr.shared.cast]
20.11.2.2.10
get_deleter
[util.smartptr.getdeleter]
20.11.2.2.11
shared_ptr I/O
[util.smartptr.shared.io]
20.11.2.3
Class template weak_ptr
[util.smartptr.weak]
20.11.2.3.1
weak_ptr constructors
[util.smartptr.weak.const]
20.11.2.3.2
weak_ptr destructor
[util.smartptr.weak.dest]
20.11.2.3.3
weak_ptr assignment
[util.smartptr.weak.assign]
20.11.2.3.4
weak_ptr modifiers
[util.smartptr.weak.mod]
20.11.2.3.5
weak_ptr observers
[util.smartptr.weak.obs]
20.11.2.3.6
weak_ptr specialized algorithms
[util.smartptr.weak.spec]
20.11.2.4
Class template owner_less
[util.smartptr.ownerless]
20.11.2.5
Class template enable_shared_from_this
[util.smartptr.enab]
20.11.2.6
shared_ptr atomic access
[util.smartptr.shared.atomic]
20.11.2.7
Smart pointer hash support
[util.smartptr.hash]
20.12
Memory resources
[mem.res]
20.12.1
Header synopsis
[mem.res.syn]
20.12.2
Class memory_resource
[mem.res.class]
20.12.2.1
memory_resource public member functions
[mem.res.public]
20.12.2.2
memory_resource private virtual member functions
[mem.res.private]
20.12.2.3
memory_resource equality
[mem.res.eq]
20.12.3
Class template polymorphic_allocator
[mem.poly.allocator.class]
20.12.3.1
polymorphic_allocator constructors
[mem.poly.allocator.ctor]
20.12.3.2
polymorphic_allocator member functions
[mem.poly.allocator.mem]
20.12.3.3
polymorphic_allocator 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
Pool resource constructors and destructors
[mem.res.pool.ctor]
20.12.5.4
Pool resource members
[mem.res.pool.mem]
20.12.6
Class monotonic_buffer_resource
[mem.res.monotonic.buffer]
20.12.6.1
monotonic_buffer_resource constructor and destructor
[mem.res.monotonic.buffer.ctor]
20.12.6.2
monotonic_buffer_resource members
[mem.res.monotonic.buffer.mem]
20.13
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.13.1
Header synopsis
[allocator.adaptor.syn]
20.13.2
Scoped allocator adaptor member types
[allocator.adaptor.types]
20.13.3
Scoped allocator adaptor constructors
[allocator.adaptor.cnstr]
20.13.4
Scoped allocator adaptor members
[allocator.adaptor.members]
20.13.5
Scoped allocator operators
[scoped.adaptor.operators]
20.14
Function objects
[function.objects]
20.14.1
Definitions
[func.def]
20.14.2
Requirements
[func.require]
20.14.3
Function template invoke
[func.invoke]
20.14.4
Class template reference_wrapper
[refwrap]
20.14.4.1
reference_wrapper construct/copy/destroy
[refwrap.const]
20.14.4.2
reference_wrapper assignment
[refwrap.assign]
20.14.4.3
reference_wrapper access
[refwrap.access]
20.14.4.4
reference_wrapper invocation
[refwrap.invoke]
20.14.4.5
reference_wrapper helper functions
[refwrap.helpers]
20.14.5
Arithmetic operations
[arithmetic.operations]
20.14.5.1
class template plus
[arithmetic.operations.plus]
20.14.5.2
class template minus
[arithmetic.operations.minus]
20.14.5.3
class template multiplies
[arithmetic.operations.multiplies]
20.14.5.4
class template divides
[arithmetic.operations.divides]
20.14.5.5
class template modulus
[arithmetic.operations.modulus]
20.14.5.6
class template negate
[arithmetic.operations.negate]
20.14.6
Comparisons
[comparisons]
20.14.6.1
class template equal_to
[comparisons.equal_to]
20.14.6.2
class template not_equal_to
[comparisons.not_equal_to]
20.14.6.3
class template greater
[comparisons.greater]
20.14.6.4
class template less
[comparisons.less]
20.14.6.5
class template greater_equal
[comparisons.greater_equal]
20.14.6.6
class template less_equal
[comparisons.less_equal]
20.14.7
Logical operations
[logical.operations]
20.14.7.1
class template logical_and
[logical.operations.and]
20.14.7.2
class template logical_or
[logical.operations.or]
20.14.7.3
class template logical_not
[logical.operations.not]
20.14.8
Bitwise operations
[bitwise.operations]
20.14.8.1
class template bit_and
[bitwise.operations.and]
20.14.8.2
class template bit_or
[bitwise.operations.or]
20.14.8.3
class template bit_xor
[bitwise.operations.xor]
20.14.8.4
class template bit_not
[bitwise.operations.not]
20.14.9
Function template not_fn
[func.not_fn]
20.14.10
Function object binders
[func.bind]
20.14.10.1
Class template is_bind_expression
[func.bind.isbind]
20.14.10.2
Class template is_placeholder
[func.bind.isplace]
20.14.10.3
Function template bind
[func.bind.bind]
20.14.10.4
Placeholders
[func.bind.place]
20.14.11
Function template mem_fn
[func.memfn]
20.14.12
Polymorphic function wrappers
[func.wrap]
20.14.12.1
Class bad_function_call
[func.wrap.badcall]
20.14.12.1.1
bad_function_call constructor
[func.wrap.badcall.const]
20.14.12.2
Class template function
[func.wrap.func]
20.14.12.2.1
function construct/copy/destroy
[func.wrap.func.con]
20.14.12.2.2
function modifiers
[func.wrap.func.mod]
20.14.12.2.3
function capacity
[func.wrap.func.cap]
20.14.12.2.4
function invocation
[func.wrap.func.inv]
20.14.12.2.5
function target access
[func.wrap.func.targ]
20.14.12.2.6
null pointer comparison operators
[func.wrap.func.nullptr]
20.14.12.2.7
specialized algorithms
[func.wrap.func.alg]
20.14.13
Searchers
[func.search]
20.14.13.1
Class template default_searcher
[func.search.default]
20.14.13.1.1
default_searcher creation functions
[func.search.default.creation]
20.14.13.2
Class template boyer_moore_searcher
[func.search.bm]
20.14.13.2.1
boyer_moore_searcher creation functions
[func.search.bm.creation]
20.14.13.3
Class template boyer_moore_horspool_searcher
[func.search.bmh]
20.14.13.3.1
boyer_moore_horspool_searcher creation functions
[func.search.bmh.creation]
20.14.14
Class template hash
[unord.hash]
20.14.15
Default functor traits
[func.default.traits]
20.15
Metaprogramming and type traits
[meta]
20.15.1
Requirements
[meta.rqmts]
20.15.2
Header synopsis
[meta.type.synop]
20.15.3
Helper classes
[meta.help]
20.15.4
Unary type traits
[meta.unary]
20.15.4.1
Primary type categories
[meta.unary.cat]
20.15.4.2
Composite type traits
[meta.unary.comp]
20.15.4.3
Type properties
[meta.unary.prop]
20.15.5
Type property queries
[meta.unary.prop.query]
20.15.6
Relationships between types
[meta.rel]
20.15.7
Transformations between types
[meta.trans]
20.15.7.1
Const-volatile modifications
[meta.trans.cv]
20.15.7.2
Reference modifications
[meta.trans.ref]
20.15.7.3
Sign modifications
[meta.trans.sign]
20.15.7.4
Array modifications
[meta.trans.arr]
20.15.7.5
Pointer modifications
[meta.trans.ptr]
20.15.7.6
Other transformations
[meta.trans.other]
20.15.8
Logical operator traits
[meta.logical]
20.16
Compile-time rational arithmetic
[ratio]
20.16.1
In general
[ratio.general]
20.16.2
Header synopsis
[ratio.syn]
20.16.3
Class template ratio
[ratio.ratio]
20.16.4
Arithmetic on ratios
[ratio.arithmetic]
20.16.5
Comparison of ratios
[ratio.comparison]
20.16.6
SI types for ratio
[ratio.si]
20.17
Time utilities
[time]
20.17.1
In general
[time.general]
20.17.2
Header synopsis
[time.syn]
20.17.3
Clock requirements
[time.clock.req]
20.17.4
Time-related traits
[time.traits]
20.17.4.1
treat_as_floating_point
[time.traits.is_fp]
20.17.4.2
duration_values
[time.traits.duration_values]
20.17.4.3
Specializations of common_type
[time.traits.specializations]
20.17.5
Class template duration
[time.duration]
20.17.5.1
duration constructors
[time.duration.cons]
20.17.5.2
duration observer
[time.duration.observer]
20.17.5.3
duration arithmetic
[time.duration.arithmetic]
20.17.5.4
duration special values
[time.duration.special]
20.17.5.5
duration non-member arithmetic
[time.duration.nonmember]
20.17.5.6
duration comparisons
[time.duration.comparisons]
20.17.5.7
duration_cast
[time.duration.cast]
20.17.5.8
Suffixes for duration literals
[time.duration.literals]
20.17.5.9
duration algorithms
[time.duration.alg]
20.17.6
Class template time_point
[time.point]
20.17.6.1
time_point constructors
[time.point.cons]
20.17.6.2
time_point observer
[time.point.observer]
20.17.6.3
time_point arithmetic
[time.point.arithmetic]
20.17.6.4
time_point special values
[time.point.special]
20.17.6.5
time_point non-member arithmetic
[time.point.nonmember]
20.17.6.6
time_point comparisons
[time.point.comparisons]
20.17.6.7
time_point_cast
[time.point.cast]
20.17.7
Clocks
[time.clock]
20.17.7.1
Class system_clock
[time.clock.system]
20.17.7.2
Class steady_clock
[time.clock.steady]
20.17.7.3
Class high_resolution_clock
[time.clock.hires]
20.17.8
Header synopsis
[ctime.syn]
20.18
Class type_index
[type.index]
20.18.1
Header synopsis
[type.index.synopsis]
20.18.2
type_index overview
[type.index.overview]
20.18.3
type_index members
[type.index.members]
20.18.4
Hash support
[type.index.hash]
20.19
Execution policies
[execpol]
20.19.1
In general
[execpol.general]
20.19.2
Header synopsis
[execution.syn]
20.19.3
Execution policy type trait
[execpol.type]
20.19.4
Sequenced execution policy
[execpol.seq]
20.19.5
Parallel execution policy
[execpol.par]
20.19.6
Parallel and unsequenced execution policy
[execpol.parunseq]
20.19.7
Execution policy objects
[execpol.objects]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
Character traits requirements
[char.traits.require]
21.2.2
traits typedefs
[char.traits.typedefs]
21.2.3
char_traits specializations
[char.traits.specializations]
21.2.3.1
struct char_traits
[char.traits.specializations.char]
21.2.3.2
struct char_traits
[char.traits.specializations.char16_t]
21.2.3.3
struct char_traits
[char.traits.specializations.char32_t]
21.2.3.4
struct char_traits
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.3.1
Class template basic_string
[basic.string]
21.3.1.1
basic_string general requirements
[string.require]
21.3.1.2
basic_string constructors and assignment operators
[string.cons]
21.3.1.3
basic_string iterator support
[string.iterators]
21.3.1.4
basic_string capacity
[string.capacity]
21.3.1.5
basic_string element access
[string.access]
21.3.1.6
basic_string modifiers
[string.modifiers]
21.3.1.6.1
basic_string::operator+=
[string.op+=]
21.3.1.6.2
basic_string::append
[string.append]
21.3.1.6.3
basic_string::assign
[string.assign]
21.3.1.6.4
basic_string::insert
[string.insert]
21.3.1.6.5
basic_string::erase
[string.erase]
21.3.1.6.6
basic_string::replace
[string.replace]
21.3.1.6.7
basic_string::copy
[string.copy]
21.3.1.6.8
basic_string::swap
[string.swap]
21.3.1.7
basic_string string operations
[string.ops]
21.3.1.7.1
basic_string accessors
[string.accessors]
21.3.1.7.2
basic_string::find
[string.find]
21.3.1.7.3
basic_string::rfind
[string.rfind]
21.3.1.7.4
basic_string::find_first_of
[string.find.first.of]
21.3.1.7.5
basic_string::find_last_of
[string.find.last.of]
21.3.1.7.6
basic_string::find_first_not_of
[string.find.first.not.of]
21.3.1.7.7
basic_string::find_last_not_of
[string.find.last.not.of]
21.3.1.7.8
basic_string::substr
[string.substr]
21.3.1.7.9
basic_string::compare
[string.compare]
21.3.2
basic_string non-member functions
[string.nonmembers]
21.3.2.1
operator+
[string.op+]
21.3.2.2
operator==
[string.operator==]
21.3.2.3
operator!=
[string.op!=]
21.3.2.4
operator<
[string.op<]
21.3.2.5
operator>
[string.op>]
21.3.2.6
operator<=
[string.op<=]
21.3.2.7
operator>=
[string.op>=]
21.3.2.8
swap
[string.special]
21.3.2.9
Inserters and extractors
[string.io]
21.3.3
Numeric conversions
[string.conversions]
21.3.4
Hash support
[basic.string.hash]
21.3.5
Suffix for basic_string literals
[basic.string.literals]
21.4
String view classes
[string.view]
21.4.1
Header synopsis
[string.view.synop]
21.4.2
Class template basic_string_view
[string.view.template]
21.4.2.1
Construction and assignment
[string.view.cons]
21.4.2.2
Iterator support
[string.view.iterators]
21.4.2.3
Capacity
[string.view.capacity]
21.4.2.4
Element access
[string.view.access]
21.4.2.5
Modifiers
[string.view.modifiers]
21.4.2.6
String operations
[string.view.ops]
21.4.2.7
Searching
[string.view.find]
21.4.3
Non-member comparison functions
[string.view.comparison]
21.4.4
Inserters and extractors
[string.view.io]
21.4.5
Hash support
[string.view.hash]
21.4.6
Suffix for basic_string_view literals
[string.view.literals]
21.5
Null-terminated sequence utilities
[c.strings]
21.5.1
Header synopsis
[cctype.syn]
21.5.2
Header synopsis
[cwctype.syn]
21.5.3
Header synopsis
[cstring.syn]
21.5.4
Header synopsis
[cwchar.syn]
21.5.5
Header synopsis
[cuchar.syn]
21.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
22
Localization library
[localization]
22.1
General
[localization.general]
22.2
Header synopsis
[locale.syn]
22.3
Locales
[locales]
22.3.1
Class locale
[locale]
22.3.1.1
locale types
[locale.types]
22.3.1.1.1
Type locale::category
[locale.category]
22.3.1.1.2
Class locale::facet
[locale.facet]
22.3.1.1.3
Class locale::id
[locale.id]
22.3.1.2
locale constructors and destructor
[locale.cons]
22.3.1.3
locale members
[locale.members]
22.3.1.4
locale operators
[locale.operators]
22.3.1.5
locale static members
[locale.statics]
22.3.2
locale globals
[locale.global.templates]
22.3.3
Convenience interfaces
[locale.convenience]
22.3.3.1
Character classification
[classification]
22.3.3.2
Conversions
[conversions]
22.3.3.2.1
Character conversions
[conversions.character]
22.3.3.2.2
string conversions
[conversions.string]
22.3.3.2.3
Buffer conversions
[conversions.buffer]
22.4
Standard locale categories
[locale.categories]
22.4.1
The ctype category
[category.ctype]
22.4.1.1
Class template ctype
[locale.ctype]
22.4.1.1.1
ctype members
[locale.ctype.members]
22.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
22.4.1.2
Class template ctype_byname
[locale.ctype.byname]
22.4.1.3
ctype specializations
[facet.ctype.special]
22.4.1.3.1
ctype destructor
[facet.ctype.char.dtor]
22.4.1.3.2
ctype members
[facet.ctype.char.members]
22.4.1.3.3
ctype static members
[facet.ctype.char.statics]
22.4.1.3.4
ctype virtual functions
[facet.ctype.char.virtuals]
22.4.1.4
Class template codecvt
[locale.codecvt]
22.4.1.4.1
codecvt members
[locale.codecvt.members]
22.4.1.4.2
codecvt virtual functions
[locale.codecvt.virtuals]
22.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
22.4.2
The numeric category
[category.numeric]
22.4.2.1
Class template num_get
[locale.num.get]
22.4.2.1.1
num_get members
[facet.num.get.members]
22.4.2.1.2
num_get virtual functions
[facet.num.get.virtuals]
22.4.2.2
Class template num_put
[locale.nm.put]
22.4.2.2.1
num_put members
[facet.num.put.members]
22.4.2.2.2
num_put virtual functions
[facet.num.put.virtuals]
22.4.3
The numeric punctuation facet
[facet.numpunct]
22.4.3.1
Class template numpunct
[locale.numpunct]
22.4.3.1.1
numpunct members
[facet.numpunct.members]
22.4.3.1.2
numpunct virtual functions
[facet.numpunct.virtuals]
22.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
22.4.4
The collate category
[category.collate]
22.4.4.1
Class template collate
[locale.collate]
22.4.4.1.1
collate members
[locale.collate.members]
22.4.4.1.2
collate virtual functions
[locale.collate.virtuals]
22.4.4.2
Class template collate_byname
[locale.collate.byname]
22.4.5
The time category
[category.time]
22.4.5.1
Class template time_get
[locale.time.get]
22.4.5.1.1
time_get members
[locale.time.get.members]
22.4.5.1.2
time_get virtual functions
[locale.time.get.virtuals]
22.4.5.2
Class template time_get_byname
[locale.time.get.byname]
22.4.5.3
Class template time_put
[locale.time.put]
22.4.5.3.1
time_put members
[locale.time.put.members]
22.4.5.3.2
time_put virtual functions
[locale.time.put.virtuals]
22.4.5.4
Class template time_put_byname
[locale.time.put.byname]
22.4.6
The monetary category
[category.monetary]
22.4.6.1
Class template money_get
[locale.money.get]
22.4.6.1.1
money_get members
[locale.money.get.members]
22.4.6.1.2
money_get virtual functions
[locale.money.get.virtuals]
22.4.6.2
Class template money_put
[locale.money.put]
22.4.6.2.1
money_put members
[locale.money.put.members]
22.4.6.2.2
money_put virtual functions
[locale.money.put.virtuals]
22.4.6.3
Class template moneypunct
[locale.moneypunct]
22.4.6.3.1
moneypunct members
[locale.moneypunct.members]
22.4.6.3.2
moneypunct virtual functions
[locale.moneypunct.virtuals]
22.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
22.4.7
The message retrieval category
[category.messages]
22.4.7.1
Class template messages
[locale.messages]
22.4.7.1.1
messages members
[locale.messages.members]
22.4.7.1.2
messages virtual functions
[locale.messages.virtuals]
22.4.7.2
Class template messages_byname
[locale.messages.byname]
22.4.8
Program-defined facets
[facets.examples]
22.5
Standard code conversion facets
[locale.stdcvt]
22.6
C library locales
[c.locales]
23
Containers library
[containers]
23.1
General
[containers.general]
23.2
Container requirements
[container.requirements]
23.2.1
General container requirements
[container.requirements.general]
23.2.2
Container data races
[container.requirements.dataraces]
23.2.3
Sequence containers
[sequence.reqmts]
23.2.4
Node handles
[container.node]
23.2.4.1
node_handle overview
[container.node.overview]
23.2.4.2
node_handle constructors, copy, and assignment
[container.node.cons]
23.2.4.3
node_handle destructor
[container.node.dtor]
23.2.4.4
node_handle observers
[container.node.observers]
23.2.4.5
node_handle modifiers
[container.node.modifiers]
23.2.5
Insert return type
[container.insert.return]
23.2.6
Associative containers
[associative.reqmts]
23.2.6.1
Exception safety guarantees
[associative.reqmts.except]
23.2.7
Unordered associative containers
[unord.req]
23.2.7.1
Exception safety guarantees
[unord.req.except]
23.3
Sequence containers
[sequences]
23.3.1
In general
[sequences.general]
23.3.2
Header synopsis
[array.syn]
23.3.3
Header synopsis
[deque.syn]
23.3.4
Header synopsis
[forward_list.syn]
23.3.5
Header synopsis
[list.syn]
23.3.6
Header synopsis
[vector.syn]
23.3.7
Class template array
[array]
23.3.7.1
Class template array overview
[array.overview]
23.3.7.2
array constructors, copy, and assignment
[array.cons]
23.3.7.3
array specialized algorithms
[array.special]
23.3.7.4
array::size
[array.size]
23.3.7.5
array::data
[array.data]
23.3.7.6
array::fill
[array.fill]
23.3.7.7
array::swap
[array.swap]
23.3.7.8
Zero sized arrays
[array.zero]
23.3.7.9
Tuple interface to class template array
[array.tuple]
23.3.8
Class template deque
[deque]
23.3.8.1
Class template deque overview
[deque.overview]
23.3.8.2
deque constructors, copy, and assignment
[deque.cons]
23.3.8.3
deque capacity
[deque.capacity]
23.3.8.4
deque modifiers
[deque.modifiers]
23.3.8.5
deque specialized algorithms
[deque.special]
23.3.9
Class template forward_list
[forwardlist]
23.3.9.1
Class template forward_list overview
[forwardlist.overview]
23.3.9.2
forward_list constructors, copy, assignment
[forwardlist.cons]
23.3.9.3
forward_list iterators
[forwardlist.iter]
23.3.9.4
forward_list element access
[forwardlist.access]
23.3.9.5
forward_list modifiers
[forwardlist.modifiers]
23.3.9.6
forward_list operations
[forwardlist.ops]
23.3.9.7
forward_list specialized algorithms
[forwardlist.spec]
23.3.10
Class template list
[list]
23.3.10.1
Class template list overview
[list.overview]
23.3.10.2
list constructors, copy, and assignment
[list.cons]
23.3.10.3
list capacity
[list.capacity]
23.3.10.4
list modifiers
[list.modifiers]
23.3.10.5
list operations
[list.ops]
23.3.10.6
list specialized algorithms
[list.special]
23.3.11
Class template vector
[vector]
23.3.11.1
Class template vector overview
[vector.overview]
23.3.11.2
vector constructors, copy, and assignment
[vector.cons]
23.3.11.3
vector capacity
[vector.capacity]
23.3.11.4
vector data
[vector.data]
23.3.11.5
vector modifiers
[vector.modifiers]
23.3.11.6
vector specialized algorithms
[vector.special]
23.3.12
Class vector
[vector.bool]
23.4
Associative containers
[associative]
23.4.1
In general
[associative.general]
23.4.2
Header synopsis
[associative.map.syn]
23.4.3
Header synopsis
[associative.set.syn]
23.4.4
Class template map
[map]
23.4.4.1
Class template map overview
[map.overview]
23.4.4.2
map constructors, copy, and assignment
[map.cons]
23.4.4.3
map element access
[map.access]
23.4.4.4
map modifiers
[map.modifiers]
23.4.4.5
map specialized algorithms
[map.special]
23.4.5
Class template multimap
[multimap]
23.4.5.1
Class template multimap overview
[multimap.overview]
23.4.5.2
multimap constructors
[multimap.cons]
23.4.5.3
multimap modifiers
[multimap.modifiers]
23.4.5.4
multimap specialized algorithms
[multimap.special]
23.4.6
Class template set
[set]
23.4.6.1
Class template set overview
[set.overview]
23.4.6.2
set constructors, copy, and assignment
[set.cons]
23.4.6.3
set specialized algorithms
[set.special]
23.4.7
Class template multiset
[multiset]
23.4.7.1
Class template multiset overview
[multiset.overview]
23.4.7.2
multiset constructors
[multiset.cons]
23.4.7.3
multiset specialized algorithms
[multiset.special]
23.5
Unordered associative containers
[unord]
23.5.1
In general
[unord.general]
23.5.2
Header synopsis
[unord.map.syn]
23.5.3
Header synopsis
[unord.set.syn]
23.5.4
Class template unordered_map
[unord.map]
23.5.4.1
Class template unordered_map overview
[unord.map.overview]
23.5.4.2
unordered_map constructors
[unord.map.cnstr]
23.5.4.3
unordered_map element access
[unord.map.elem]
23.5.4.4
unordered_map modifiers
[unord.map.modifiers]
23.5.4.5
unordered_map swap
[unord.map.swap]
23.5.5
Class template unordered_multimap
[unord.multimap]
23.5.5.1
Class template unordered_multimap overview
[unord.multimap.overview]
23.5.5.2
unordered_multimap constructors
[unord.multimap.cnstr]
23.5.5.3
unordered_multimap modifiers
[unord.multimap.modifiers]
23.5.5.4
unordered_multimap swap
[unord.multimap.swap]
23.5.6
Class template unordered_set
[unord.set]
23.5.6.1
Class template unordered_set overview
[unord.set.overview]
23.5.6.2
unordered_set constructors
[unord.set.cnstr]
23.5.6.3
unordered_set swap
[unord.set.swap]
23.5.7
Class template unordered_multiset
[unord.multiset]
23.5.7.1
Class template unordered_multiset overview
[unord.multiset.overview]
23.5.7.2
unordered_multiset constructors
[unord.multiset.cnstr]
23.5.7.3
unordered_multiset swap
[unord.multiset.swap]
23.6
Container adaptors
[container.adaptors]
23.6.1
In general
[container.adaptors.general]
23.6.2
Header synopsis
[queue.syn]
23.6.3
Header synopsis
[stack.syn]
23.6.4
Class template queue
[queue]
23.6.4.1
queue definition
[queue.defn]
23.6.4.2
queue constructors
[queue.cons]
23.6.4.3
queue constructors with allocators
[queue.cons.alloc]
23.6.4.4
queue operators
[queue.ops]
23.6.4.5
queue specialized algorithms
[queue.special]
23.6.5
Class template priority_queue
[priority.queue]
23.6.5.1
priority_queue constructors
[priqueue.cons]
23.6.5.2
priority_queue constructors with allocators
[priqueue.cons.alloc]
23.6.5.3
priority_queue members
[priqueue.members]
23.6.5.4
priority_queue specialized algorithms
[priqueue.special]
23.6.6
Class template stack
[stack]
23.6.6.1
stack definition
[stack.defn]
23.6.6.2
stack constructors
[stack.cons]
23.6.6.3
stack constructors with allocators
[stack.cons.alloc]
23.6.6.4
stack operators
[stack.ops]
23.6.6.5
stack specialized algorithms
[stack.special]
24
Iterators library
[iterators]
24.1
General
[iterators.general]
24.2
Iterator requirements
[iterator.requirements]
24.2.1
In general
[iterator.requirements.general]
24.2.2
Iterator
[iterator.iterators]
24.2.3
Input iterators
[input.iterators]
24.2.4
Output iterators
[output.iterators]
24.2.5
Forward iterators
[forward.iterators]
24.2.6
Bidirectional iterators
[bidirectional.iterators]
24.2.7
Random access iterators
[random.access.iterators]
24.3
Header synopsis
[iterator.synopsis]
24.4
Iterator primitives
[iterator.primitives]
24.4.1
Iterator traits
[iterator.traits]
24.4.2
Standard iterator tags
[std.iterator.tags]
24.4.3
Iterator operations
[iterator.operations]
24.5
Iterator adaptors
[predef.iterators]
24.5.1
Reverse iterators
[reverse.iterators]
24.5.1.1
Class template reverse_iterator
[reverse.iterator]
24.5.1.2
reverse_iterator requirements
[reverse.iter.requirements]
24.5.1.3
reverse_iterator operations
[reverse.iter.ops]
24.5.1.3.1
reverse_iterator constructor
[reverse.iter.cons]
24.5.1.3.2
reverse_iterator::operator=
[reverse.iter.op=]
24.5.1.3.3
Conversion
[reverse.iter.conv]
24.5.1.3.4
operator*
[reverse.iter.op.star]
24.5.1.3.5
operator->
[reverse.iter.opref]
24.5.1.3.6
operator++
[reverse.iter.op++]
24.5.1.3.7
operator--
[reverse.iter.op--]
24.5.1.3.8
operator+
[reverse.iter.op+]
24.5.1.3.9
operator+=
[reverse.iter.op+=]
24.5.1.3.10
operator-
[reverse.iter.op-]
24.5.1.3.11
operator-=
[reverse.iter.op-=]
24.5.1.3.12
operator[]
[reverse.iter.opindex]
24.5.1.3.13
operator==
[reverse.iter.op==]
24.5.1.3.14
operator<
[reverse.iter.op<]
24.5.1.3.15
operator!=
[reverse.iter.op!=]
24.5.1.3.16
operator>
[reverse.iter.op>]
24.5.1.3.17
operator>=
[reverse.iter.op>=]
24.5.1.3.18
operator<=
[reverse.iter.op<=]
24.5.1.3.19
operator-
[reverse.iter.opdiff]
24.5.1.3.20
operator+
[reverse.iter.opsum]
24.5.1.3.21
Non-member function make_reverse_iterator()
[reverse.iter.make]
24.5.2
Insert iterators
[insert.iterators]
24.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
24.5.2.2
back_insert_iterator operations
[back.insert.iter.ops]
24.5.2.2.1
back_insert_iterator constructor
[back.insert.iter.cons]
24.5.2.2.2
back_insert_iterator::operator=
[back.insert.iter.op=]
24.5.2.2.3
back_insert_iterator::operator*
[back.insert.iter.op*]
24.5.2.2.4
back_insert_iterator::operator++
[back.insert.iter.op++]
24.5.2.2.5
back_inserter
[back.inserter]
24.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
24.5.2.4
front_insert_iterator operations
[front.insert.iter.ops]
24.5.2.4.1
front_insert_iterator constructor
[front.insert.iter.cons]
24.5.2.4.2
front_insert_iterator::operator=
[front.insert.iter.op=]
24.5.2.4.3
front_insert_iterator::operator*
[front.insert.iter.op*]
24.5.2.4.4
front_insert_iterator::operator++
[front.insert.iter.op++]
24.5.2.4.5
front_inserter
[front.inserter]
24.5.2.5
Class template insert_iterator
[insert.iterator]
24.5.2.6
insert_iterator operations
[insert.iter.ops]
24.5.2.6.1
insert_iterator constructor
[insert.iter.cons]
24.5.2.6.2
insert_iterator::operator=
[insert.iter.op=]
24.5.2.6.3
insert_iterator::operator*
[insert.iter.op*]
24.5.2.6.4
insert_iterator::operator++
[insert.iter.op++]
24.5.2.6.5
inserter
[inserter]
24.5.3
Move iterators
[move.iterators]
24.5.3.1
Class template move_iterator
[move.iterator]
24.5.3.2
move_iterator requirements
[move.iter.requirements]
24.5.3.3
move_iterator operations
[move.iter.ops]
24.5.3.3.1
move_iterator constructors
[move.iter.op.const]
24.5.3.3.2
move_iterator::operator=
[move.iter.op=]
24.5.3.3.3
move_iterator conversion
[move.iter.op.conv]
24.5.3.3.4
move_iterator::operator*
[move.iter.op.star]
24.5.3.3.5
move_iterator::operator->
[move.iter.op.ref]
24.5.3.3.6
move_iterator::operator++
[move.iter.op.incr]
24.5.3.3.7
move_iterator::operator--
[move.iter.op.decr]
24.5.3.3.8
move_iterator::operator+
[move.iter.op.+]
24.5.3.3.9
move_iterator::operator+=
[move.iter.op.+=]
24.5.3.3.10
move_iterator::operator-
[move.iter.op.-]
24.5.3.3.11
move_iterator::operator-=
[move.iter.op.-=]
24.5.3.3.12
move_iterator::operator[]
[move.iter.op.index]
24.5.3.3.13
move_iterator comparisons
[move.iter.op.comp]
24.5.3.3.14
move_iterator non-member functions
[move.iter.nonmember]
24.6
Stream iterators
[stream.iterators]
24.6.1
Class template istream_iterator
[istream.iterator]
24.6.1.1
istream_iterator constructors and destructor
[istream.iterator.cons]
24.6.1.2
istream_iterator operations
[istream.iterator.ops]
24.6.2
Class template ostream_iterator
[ostream.iterator]
24.6.2.1
ostream_iterator constructors and destructor
[ostream.iterator.cons.des]
24.6.2.2
ostream_iterator operations
[ostream.iterator.ops]
24.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
24.6.3.1
Class template istreambuf_iterator::proxy
[istreambuf.iterator::proxy]
24.6.3.2
istreambuf_iterator constructors
[istreambuf.iterator.cons]
24.6.3.3
istreambuf_iterator::operator*
[istreambuf.iterator::op*]
24.6.3.4
istreambuf_iterator::operator++
[istreambuf.iterator::op++]
24.6.3.5
istreambuf_iterator::equal
[istreambuf.iterator::equal]
24.6.3.6
operator==
[istreambuf.iterator::op==]
24.6.3.7
operator!=
[istreambuf.iterator::op!=]
24.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
24.6.4.1
ostreambuf_iterator constructors
[ostreambuf.iter.cons]
24.6.4.2
ostreambuf_iterator operations
[ostreambuf.iter.ops]
24.7
Range access
[iterator.range]
24.8
Container access
[iterator.container]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Parallel algorithms
[algorithms.parallel]
25.2.1
Terms and definitions
[algorithms.parallel.defns]
25.2.2
Requirements on user-provided function objects
[algorithms.parallel.user]
25.2.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
25.2.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
25.2.5
ExecutionPolicy algorithm overloads
[algorithms.parallel.overloads]
25.3
Non-modifying sequence operations
[alg.nonmodifying]
25.3.1
All of
[alg.all_of]
25.3.2
Any of
[alg.any_of]
25.3.3
None of
[alg.none_of]
25.3.4
For each
[alg.foreach]
25.3.5
Find
[alg.find]
25.3.6
Find end
[alg.find.end]
25.3.7
Find first
[alg.find.first.of]
25.3.8
Adjacent find
[alg.adjacent.find]
25.3.9
Count
[alg.count]
25.3.10
Mismatch
[mismatch]
25.3.11
Equal
[alg.equal]
25.3.12
Is permutation
[alg.is_permutation]
25.3.13
Search
[alg.search]
25.4
Mutating sequence operations
[alg.modifying.operations]
25.4.1
Copy
[alg.copy]
25.4.2
Move
[alg.move]
25.4.3
swap
[alg.swap]
25.4.4
Transform
[alg.transform]
25.4.5
Replace
[alg.replace]
25.4.6
Fill
[alg.fill]
25.4.7
Generate
[alg.generate]
25.4.8
Remove
[alg.remove]
25.4.9
Unique
[alg.unique]
25.4.10
Reverse
[alg.reverse]
25.4.11
Rotate
[alg.rotate]
25.4.12
Sample
[alg.random.sample]
25.4.13
Shuffle
[alg.random.shuffle]
25.4.14
Partitions
[alg.partitions]
25.5
Sorting and related operations
[alg.sorting]
25.5.1
Sorting
[alg.sort]
25.5.1.1
sort
[sort]
25.5.1.2
stable_sort
[stable.sort]
25.5.1.3
partial_sort
[partial.sort]
25.5.1.4
partial_sort_copy
[partial.sort.copy]
25.5.1.5
is_sorted
[is.sorted]
25.5.2
Nth element
[alg.nth.element]
25.5.3
Binary search
[alg.binary.search]
25.5.3.1
lower_bound
[lower.bound]
25.5.3.2
upper_bound
[upper.bound]
25.5.3.3
equal_range
[equal.range]
25.5.3.4
binary_search
[binary.search]
25.5.4
Merge
[alg.merge]
25.5.5
Set operations on sorted structures
[alg.set.operations]
25.5.5.1
includes
[includes]
25.5.5.2
set_union
[set.union]
25.5.5.3
set_intersection
[set.intersection]
25.5.5.4
set_difference
[set.difference]
25.5.5.5
set_symmetric_difference
[set.symmetric.difference]
25.5.6
Heap operations
[alg.heap.operations]
25.5.6.1
push_heap
[push.heap]
25.5.6.2
pop_heap
[pop.heap]
25.5.6.3
make_heap
[make.heap]
25.5.6.4
sort_heap
[sort.heap]
25.5.6.5
is_heap
[is.heap]
25.5.7
Minimum and maximum
[alg.min.max]
25.5.8
Bounded value
[alg.clamp]
25.5.9
Lexicographical comparison
[alg.lex.comparison]
25.5.10
Permutation generators
[alg.permutation.generators]
25.6
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Definitions
[numerics.defns]
26.3
Numeric type requirements
[numeric.requirements]
26.4
The floating-point environment
[cfenv]
26.4.1
Header synopsis
[cfenv.syn]
26.5
Complex numbers
[complex.numbers]
26.5.1
Header synopsis
[complex.syn]
26.5.2
Class template complex
[complex]
26.5.3
complex specializations
[complex.special]
26.5.4
complex member functions
[complex.members]
26.5.5
complex member operators
[complex.member.ops]
26.5.6
complex non-member operations
[complex.ops]
26.5.7
complex value operations
[complex.value.ops]
26.5.8
complex transcendentals
[complex.transcendentals]
26.5.9
Additional overloads
[cmplx.over]
26.5.10
Suffixes for complex number literals
[complex.literals]
26.5.11
Header synopsis
[ccomplex.syn]
26.6
Random number generation
[rand]
26.6.1
Requirements
[rand.req]
26.6.1.1
General requirements
[rand.req.genl]
26.6.1.2
Seed sequence requirements
[rand.req.seedseq]
26.6.1.3
Uniform random bit generator requirements
[rand.req.urng]
26.6.1.4
Random number engine requirements
[rand.req.eng]
26.6.1.5
Random number engine adaptor requirements
[rand.req.adapt]
26.6.1.6
Random number distribution requirements
[rand.req.dist]
26.6.2
Header synopsis
[rand.synopsis]
26.6.3
Random number engine class templates
[rand.eng]
26.6.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
26.6.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
26.6.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
26.6.4
Random number engine adaptor class templates
[rand.adapt]
26.6.4.1
In general
[rand.adapt.general]
26.6.4.2
Class template discard_block_engine
[rand.adapt.disc]
26.6.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
26.6.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
26.6.5
Engines and engine adaptors with predefined parameters
[rand.predef]
26.6.6
Class random_device
[rand.device]
26.6.7
Utilities
[rand.util]
26.6.7.1
Class seed_seq
[rand.util.seedseq]
26.6.7.2
Function template generate_canonical
[rand.util.canonical]
26.6.8
Random number distribution class templates
[rand.dist]
26.6.8.1
In general
[rand.dist.general]
26.6.8.2
Uniform distributions
[rand.dist.uni]
26.6.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
26.6.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
26.6.8.3
Bernoulli distributions
[rand.dist.bern]
26.6.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
26.6.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
26.6.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
26.6.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
26.6.8.4
Poisson distributions
[rand.dist.pois]
26.6.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
26.6.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
26.6.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
26.6.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
26.6.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
26.6.8.5
Normal distributions
[rand.dist.norm]
26.6.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
26.6.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
26.6.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
26.6.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
26.6.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
26.6.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
26.6.8.6
Sampling distributions
[rand.dist.samp]
26.6.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
26.6.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
26.6.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
26.6.9
Low-quality random number generation
[c.math.rand]
26.7
Numeric arrays
[numarray]
26.7.1
Header synopsis
[valarray.syn]
26.7.2
Class template valarray
[template.valarray]
26.7.2.1
Class template valarray overview
[template.valarray.overview]
26.7.2.2
valarray constructors
[valarray.cons]
26.7.2.3
valarray assignment
[valarray.assign]
26.7.2.4
valarray element access
[valarray.access]
26.7.2.5
valarray subset operations
[valarray.sub]
26.7.2.6
valarray unary operators
[valarray.unary]
26.7.2.7
valarray compound assignment
[valarray.cassign]
26.7.2.8
valarray member functions
[valarray.members]
26.7.3
valarray non-member operations
[valarray.nonmembers]
26.7.3.1
valarray binary operators
[valarray.binary]
26.7.3.2
valarray logical operators
[valarray.comparison]
26.7.3.3
valarray transcendentals
[valarray.transcend]
26.7.3.4
valarray specialized algorithms
[valarray.special]
26.7.4
Class slice
[class.slice]
26.7.4.1
Class slice overview
[class.slice.overview]
26.7.4.2
slice constructors
[cons.slice]
26.7.4.3
slice access functions
[slice.access]
26.7.5
Class template slice_array
[template.slice.array]
26.7.5.1
Class template slice_array overview
[template.slice.array.overview]
26.7.5.2
slice_array assignment
[slice.arr.assign]
26.7.5.3
slice_array compound assignment
[slice.arr.comp.assign]
26.7.5.4
slice_array fill function
[slice.arr.fill]
26.7.6
The gslice class
[class.gslice]
26.7.6.1
The gslice class overview
[class.gslice.overview]
26.7.6.2
gslice constructors
[gslice.cons]
26.7.6.3
gslice access functions
[gslice.access]
26.7.7
Class template gslice_array
[template.gslice.array]
26.7.7.1
Class template gslice_array overview
[template.gslice.array.overview]
26.7.7.2
gslice_array assignment
[gslice.array.assign]
26.7.7.3
gslice_array compound assignment
[gslice.array.comp.assign]
26.7.7.4
gslice_array fill function
[gslice.array.fill]
26.7.8
Class template mask_array
[template.mask.array]
26.7.8.1
Class template mask_array overview
[template.mask.array.overview]
26.7.8.2
mask_array assignment
[mask.array.assign]
26.7.8.3
mask_array compound assignment
[mask.array.comp.assign]
26.7.8.4
mask_array fill function
[mask.array.fill]
26.7.9
Class template indirect_array
[template.indirect.array]
26.7.9.1
Class template indirect_array overview
[template.indirect.array.overview]
26.7.9.2
indirect_array assignment
[indirect.array.assign]
26.7.9.3
indirect_array compound assignment
[indirect.array.comp.assign]
26.7.9.4
indirect_array fill function
[indirect.array.fill]
26.7.10
valarray range access
[valarray.range]
26.8
Generalized numeric operations
[numeric.ops]
26.8.1
Header synopsis
[numeric.ops.overview]
26.8.2
Accumulate
[accumulate]
26.8.3
Reduce
[reduce]
26.8.4
Transform reduce
[transform.reduce]
26.8.5
Inner product
[inner.product]
26.8.6
Partial sum
[partial.sum]
26.8.7
Exclusive scan
[exclusive.scan]
26.8.8
Inclusive scan
[inclusive.scan]
26.8.9
Transform exclusive scan
[transform.exclusive.scan]
26.8.10
Transform inclusive scan
[transform.inclusive.scan]
26.8.11
Adjacent difference
[adjacent.difference]
26.8.12
Iota
[numeric.iota]
26.8.13
Greatest common divisor
[numeric.ops.gcd]
26.8.14
Least common multiple
[numeric.ops.lcm]
26.9
Mathematical functions for floating-point types
[c.math]
26.9.1
Header synopsis
[cmath.syn]
26.9.2
Absolute values
[c.math.abs]
26.9.3
Three-dimensional hypotenuse
[c.math.hypot3]
26.9.4
Classification / comparison functions
[c.math.fpclass]
26.9.5
Mathematical special functions
[sf.cmath]
26.9.5.1
Associated Laguerre polynomials
[sf.cmath.assoc_laguerre]
26.9.5.2
Associated Legendre functions
[sf.cmath.assoc_legendre]
26.9.5.3
Beta function
[sf.cmath.beta]
26.9.5.4
(Complete) elliptic integral of the first kind
[sf.cmath.comp_ellint_1]
26.9.5.5
(Complete) elliptic integral of the second kind
[sf.cmath.comp_ellint_2]
26.9.5.6
(Complete) elliptic integral of the third kind
[sf.cmath.comp_ellint_3]
26.9.5.7
Regular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_i]
26.9.5.8
Cylindrical Bessel functions (of the first kind)
[sf.cmath.cyl_bessel_j]
26.9.5.9
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_k]
26.9.5.10
Cylindrical Neumann functions
[sf.cmath.cyl_neumann]
26.9.5.11
(Incomplete) elliptic integral of the first kind
[sf.cmath.ellint_1]
26.9.5.12
(Incomplete) elliptic integral of the second kind
[sf.cmath.ellint_2]
26.9.5.13
(Incomplete) elliptic integral of the third kind
[sf.cmath.ellint_3]
26.9.5.14
Exponential integral
[sf.cmath.expint]
26.9.5.15
Hermite polynomials
[sf.cmath.hermite]
26.9.5.16
Laguerre polynomials
[sf.cmath.laguerre]
26.9.5.17
Legendre polynomials
[sf.cmath.legendre]
26.9.5.18
Riemann zeta function
[sf.cmath.riemann_zeta]
26.9.5.19
Spherical Bessel functions (of the first kind)
[sf.cmath.sph_bessel]
26.9.5.20
Spherical associated Legendre functions
[sf.cmath.sph_legendre]
26.9.5.21
Spherical Neumann functions
[sf.cmath.sph_neumann]
26.9.6
Header synopsis
[ctgmath.syn]
27
Input/output library
[input.output]
27.1
General
[input.output.general]
27.2
Iostreams requirements
[iostreams.requirements]
27.2.1
Imbue limitations
[iostream.limits.imbue]
27.2.2
Positioning type limitations
[iostreams.limits.pos]
27.2.3
Thread safety
[iostreams.threadsafety]
27.3
Forward declarations
[iostream.forward]
27.4
Standard iostream objects
[iostream.objects]
27.4.1
Overview
[iostream.objects.overview]
27.4.2
Narrow stream objects
[narrow.stream.objects]
27.4.3
Wide stream objects
[wide.stream.objects]
27.5
Iostreams base classes
[iostreams.base]
27.5.1
Overview
[iostreams.base.overview]
27.5.2
Types
[stream.types]
27.5.3
Class ios_base
[ios.base]
27.5.3.1
Types
[ios.types]
27.5.3.1.1
Class ios_base::failure
[ios::failure]
27.5.3.1.2
Type ios_base::fmtflags
[ios::fmtflags]
27.5.3.1.3
Type ios_base::iostate
[ios::iostate]
27.5.3.1.4
Type ios_base::openmode
[ios::openmode]
27.5.3.1.5
Type ios_base::seekdir
[ios::seekdir]
27.5.3.1.6
Class ios_base::Init
[ios::Init]
27.5.3.2
ios_base state functions
[fmtflags.state]
27.5.3.3
ios_base functions
[ios.base.locales]
27.5.3.4
ios_base static members
[ios.members.static]
27.5.3.5
ios_base storage functions
[ios.base.storage]
27.5.3.6
ios_base callbacks
[ios.base.callback]
27.5.3.7
ios_base constructors/destructor
[ios.base.cons]
27.5.4
Class template fpos
[fpos]
27.5.4.1
fpos members
[fpos.members]
27.5.4.2
fpos requirements
[fpos.operations]
27.5.5
Class template basic_ios
[ios]
27.5.5.1
Overview
[ios.overview]
27.5.5.2
basic_ios constructors
[basic.ios.cons]
27.5.5.3
Member functions
[basic.ios.members]
27.5.5.4
basic_ios flags functions
[iostate.flags]
27.5.6
ios_base manipulators
[std.ios.manip]
27.5.6.1
fmtflags manipulators
[fmtflags.manip]
27.5.6.2
adjustfield manipulators
[adjustfield.manip]
27.5.6.3
basefield manipulators
[basefield.manip]
27.5.6.4
floatfield manipulators
[floatfield.manip]
27.5.6.5
Error reporting
[error.reporting]
27.6
Stream buffers
[stream.buffers]
27.6.1
Overview
[stream.buffers.overview]
27.6.2
Stream buffer requirements
[streambuf.reqts]
27.6.3
Class template basic_streambuf
[streambuf]
27.6.3.1
basic_streambuf constructors
[streambuf.cons]
27.6.3.2
basic_streambuf public member functions
[streambuf.members]
27.6.3.2.1
Locales
[streambuf.locales]
27.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
27.6.3.2.3
Get area
[streambuf.pub.get]
27.6.3.2.4
Putback
[streambuf.pub.pback]
27.6.3.2.5
Put area
[streambuf.pub.put]
27.6.3.3
basic_streambuf protected member functions
[streambuf.protected]
27.6.3.3.1
Assignment
[streambuf.assign]
27.6.3.3.2
Get area access
[streambuf.get.area]
27.6.3.3.3
Put area access
[streambuf.put.area]
27.6.3.4
basic_streambuf virtual functions
[streambuf.virtuals]
27.6.3.4.1
Locales
[streambuf.virt.locales]
27.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
27.6.3.4.3
Get area
[streambuf.virt.get]
27.6.3.4.4
Putback
[streambuf.virt.pback]
27.6.3.4.5
Put area
[streambuf.virt.put]
27.7
Formatting and manipulators
[iostream.format]
27.7.1
Overview
[iostream.format.overview]
27.7.2
Input streams
[input.streams]
27.7.2.1
Class template basic_istream
[istream]
27.7.2.1.1
basic_istream constructors
[istream.cons]
27.7.2.1.2
Class basic_istream assign and swap
[istream.assign]
27.7.2.1.3
Class basic_istream::sentry
[istream::sentry]
27.7.2.2
Formatted input functions
[istream.formatted]
27.7.2.2.1
Common requirements
[istream.formatted.reqmts]
27.7.2.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
27.7.2.2.3
basic_istream::operator>>
[istream.extractors]
27.7.2.3
Unformatted input functions
[istream.unformatted]
27.7.2.4
Standard basic_istream manipulators
[istream.manip]
27.7.2.5
Rvalue stream extraction
[istream.rvalue]
27.7.2.6
Class template basic_iostream
[iostreamclass]
27.7.2.6.1
basic_iostream constructors
[iostream.cons]
27.7.2.6.2
basic_iostream destructor
[iostream.dest]
27.7.2.6.3
basic_iostream assign and swap
[iostream.assign]
27.7.3
Output streams
[output.streams]
27.7.3.1
Class template basic_ostream
[ostream]
27.7.3.1.1
basic_ostream constructors
[ostream.cons]
27.7.3.1.2
Class basic_ostream assign and swap
[ostream.assign]
27.7.3.1.3
Class basic_ostream::sentry
[ostream::sentry]
27.7.3.1.4
basic_ostream seek members
[ostream.seeks]
27.7.3.2
Formatted output functions
[ostream.formatted]
27.7.3.2.1
Common requirements
[ostream.formatted.reqmts]
27.7.3.2.2
Arithmetic inserters
[ostream.inserters.arithmetic]
27.7.3.2.3
basic_ostream::operator<<
[ostream.inserters]
27.7.3.2.4
Character inserter function templates
[ostream.inserters.character]
27.7.3.3
Unformatted output functions
[ostream.unformatted]
27.7.3.4
Standard basic_ostream manipulators
[ostream.manip]
27.7.3.5
Rvalue stream insertion
[ostream.rvalue]
27.7.4
Standard manipulators
[std.manip]
27.7.5
Extended manipulators
[ext.manip]
27.7.6
Quoted manipulators
[quoted.manip]
27.8
String-based streams
[string.streams]
27.8.1
Overview
[string.streams.overview]
27.8.2
Class template basic_stringbuf
[stringbuf]
27.8.2.1
basic_stringbuf constructors
[stringbuf.cons]
27.8.2.2
Assign and swap
[stringbuf.assign]
27.8.2.3
Member functions
[stringbuf.members]
27.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
27.8.3
Class template basic_istringstream
[istringstream]
27.8.3.1
basic_istringstream constructors
[istringstream.cons]
27.8.3.2
Assign and swap
[istringstream.assign]
27.8.3.3
Member functions
[istringstream.members]
27.8.4
Class template basic_ostringstream
[ostringstream]
27.8.4.1
basic_ostringstream constructors
[ostringstream.cons]
27.8.4.2
Assign and swap
[ostringstream.assign]
27.8.4.3
Member functions
[ostringstream.members]
27.8.5
Class template basic_stringstream
[stringstream]
27.8.5.1
basic_stringstream constructors
[stringstream.cons]
27.8.5.2
Assign and swap
[stringstream.assign]
27.8.5.3
Member functions
[stringstream.members]
27.9
File-based streams
[file.streams]
27.9.1
Overview
[fstreams]
27.9.2
Class template basic_filebuf
[filebuf]
27.9.2.1
basic_filebuf constructors
[filebuf.cons]
27.9.2.2
Assign and swap
[filebuf.assign]
27.9.2.3
Member functions
[filebuf.members]
27.9.2.4
Overridden virtual functions
[filebuf.virtuals]
27.9.3
Class template basic_ifstream
[ifstream]
27.9.3.1
basic_ifstream constructors
[ifstream.cons]
27.9.3.2
Assign and swap
[ifstream.assign]
27.9.3.3
Member functions
[ifstream.members]
27.9.4
Class template basic_ofstream
[ofstream]
27.9.4.1
basic_ofstream constructors
[ofstream.cons]
27.9.4.2
Assign and swap
[ofstream.assign]
27.9.4.3
Member functions
[ofstream.members]
27.9.5
Class template basic_fstream
[fstream]
27.9.5.1
basic_fstream constructors
[fstream.cons]
27.9.5.2
Assign and swap
[fstream.assign]
27.9.5.3
Member functions
[fstream.members]
27.10
File systems
[filesystems]
27.10.1
General
[fs.general]
27.10.2
Conformance
[fs.conformance]
27.10.2.1
POSIX conformance
[fs.conform.9945]
27.10.2.2
Operating system dependent behavior conformance
[fs.conform.os]
27.10.2.3
File system race behavior
[fs.race.behavior]
27.10.3
Normative references
[fs.norm.ref]
27.10.4
Terms and definitions
[fs.definitions]
27.10.4.1
absolute path
[fs.def.absolute.path]
27.10.4.2
canonical path
[fs.def.canonical.path]
27.10.4.3
directory
[fs.def.directory]
27.10.4.4
file
[fs.def.file]
27.10.4.5
file system
[fs.def.filesystem]
27.10.4.6
file system race
[fs.def.race]
27.10.4.7
filename
[fs.def.filename]
27.10.4.8
hard link
[fs.def.hardlink]
27.10.4.9
link
[fs.def.link]
27.10.4.10
native encoding
[fs.def.native.encode]
27.10.4.11
native pathname format
[fs.def.native]
27.10.4.12
normal form
[fs.def.normal.form]
27.10.4.13
operating system dependent behavior
[fs.def.osdep]
27.10.4.14
parent directory
[fs.def.parent]
27.10.4.15
parent directory
[fs.def.parent.other]
27.10.4.16
path
[fs.def.path]
27.10.4.17
pathname
[fs.def.pathname]
27.10.4.18
pathname resolution
[fs.def.pathres]
27.10.4.19
relative path
[fs.def.relative-path]
27.10.4.20
symbolic link
[fs.def.symlink]
27.10.5
Requirements
[fs.req]
27.10.5.1
Namespaces and headers
[fs.req.namespace]
27.10.6
Header synopsis
[fs.filesystem.syn]
27.10.7
Error reporting
[fs.err.report]
27.10.8
Class path
[class.path]
27.10.8.1
Generic pathname format
[path.generic]
27.10.8.2
path conversions
[path.cvt]
27.10.8.2.1
path argument format conversions
[path.fmt.cvt]
27.10.8.2.2
path type and encoding conversions
[path.type.cvt]
27.10.8.3
path requirements
[path.req]
27.10.8.4
path members
[path.member]
27.10.8.4.1
path constructors
[path.construct]
27.10.8.4.2
path assignments
[path.assign]
27.10.8.4.3
path appends
[path.append]
27.10.8.4.4
path concatenation
[path.concat]
27.10.8.4.5
path modifiers
[path.modifiers]
27.10.8.4.6
path native format observers
[path.native.obs]
27.10.8.4.7
path generic format observers
[path.generic.obs]
27.10.8.4.8
path compare
[path.compare]
27.10.8.4.9
path decomposition
[path.decompose]
27.10.8.4.10
path query
[path.query]
27.10.8.4.11
path generation
[path.gen]
27.10.8.5
path iterators
[path.itr]
27.10.8.6
path non-member functions
[path.non-member]
27.10.8.6.1
path inserter and extractor
[path.io]
27.10.8.6.2
path factory functions
[path.factory]
27.10.9
Class filesystem_error
[class.filesystem_error]
27.10.9.1
filesystem_error members
[filesystem_error.members]
27.10.10
Enumerations
[fs.enum]
27.10.10.1
Enum class file_type
[enum.file_type]
27.10.10.2
Enum class copy_options
[enum.copy_options]
27.10.10.3
Enum class perms
[enum.perms]
27.10.10.4
Enum class directory_options
[enum.directory_options]
27.10.11
Class file_status
[class.file_status]
27.10.11.1
file_status constructors
[file_status.cons]
27.10.11.2
file_status observers
[file_status.obs]
27.10.11.3
file_status modifiers
[file_status.mods]
27.10.12
Class directory_entry
[class.directory_entry]
27.10.12.1
directory_entry constructors
[directory_entry.cons]
27.10.12.2
directory_entry modifiers
[directory_entry.mods]
27.10.12.3
directory_entry observers
[directory_entry.obs]
27.10.13
Class directory_iterator
[class.directory_iterator]
27.10.13.1
directory_iterator members
[directory_iterator.members]
27.10.13.2
directory_iterator non-member functions
[directory_iterator.nonmembers]
27.10.14
Class recursive_directory_iterator
[class.rec.dir.itr]
27.10.14.1
recursive_directory_iterator members
[rec.dir.itr.members]
27.10.14.2
recursive_directory_iterator non-member functions
[rec.dir.itr.nonmembers]
27.10.15
Filesystem operation functions
[fs.op.funcs]
27.10.15.1
Absolute
[fs.op.absolute]
27.10.15.2
Canonical
[fs.op.canonical]
27.10.15.3
Copy
[fs.op.copy]
27.10.15.4
Copy file
[fs.op.copy_file]
27.10.15.5
Copy symlink
[fs.op.copy_symlink]
27.10.15.6
Create directories
[fs.op.create_directories]
27.10.15.7
Create directory
[fs.op.create_directory]
27.10.15.8
Create directory symlink
[fs.op.create_dir_symlk]
27.10.15.9
Create hard link
[fs.op.create_hard_lk]
27.10.15.10
Create symlink
[fs.op.create_symlink]
27.10.15.11
Current path
[fs.op.current_path]
27.10.15.12
Equivalent
[fs.op.equivalent]
27.10.15.13
Exists
[fs.op.exists]
27.10.15.14
File size
[fs.op.file_size]
27.10.15.15
Hard link count
[fs.op.hard_lk_ct]
27.10.15.16
Is block file
[fs.op.is_block_file]
27.10.15.17
Is character file
[fs.op.is_char_file]
27.10.15.18
Is directory
[fs.op.is_directory]
27.10.15.19
Is empty
[fs.op.is_empty]
27.10.15.20
Is fifo
[fs.op.is_fifo]
27.10.15.21
Is other
[fs.op.is_other]
27.10.15.22
Is regular file
[fs.op.is_regular_file]
27.10.15.23
Is socket
[fs.op.is_socket]
27.10.15.24
Is symlink
[fs.op.is_symlink]
27.10.15.25
Last write time
[fs.op.last_write_time]
27.10.15.26
Permissions
[fs.op.permissions]
27.10.15.27
Proximate
[fs.op.proximate]
27.10.15.28
Read symlink
[fs.op.read_symlink]
27.10.15.29
Relative
[fs.op.relative]
27.10.15.30
Remove
[fs.op.remove]
27.10.15.31
Remove all
[fs.op.remove_all]
27.10.15.32
Rename
[fs.op.rename]
27.10.15.33
Resize file
[fs.op.resize_file]
27.10.15.34
Space
[fs.op.space]
27.10.15.35
Status
[fs.op.status]
27.10.15.36
Status known
[fs.op.status_known]
27.10.15.37
Symlink status
[fs.op.symlink_status]
27.10.15.38
System complete
[fs.op.system_complete]
27.10.15.39
Temporary directory path
[fs.op.temp_dir_path]
27.10.15.40
Weakly Canonical
[fs.op.weakly_canonical]
27.11
C library files
[c.files]
27.11.1
Header synopsis
[cstdio.syn]
27.11.2
Header synopsis
[cinttypes.syn]
28
Regular expressions library
[re]
28.1
General
[re.general]
28.2
Definitions
[re.def]
28.2.1
collating element
[defns.regex.collating.element]
28.2.2
finite state machine
[defns.regex.finite.state.machine]
28.2.3
format specifier
[defns.regex.format.specifier]
28.2.4
matched
[defns.regex.matched]
28.2.5
primary equivalence class
[defns.regex.primary.equivalence.class]
28.2.6
regular expression
[defns.regex.regular.expression]
28.2.7
sub-expression
[defns.regex.subexpression]
28.3
Requirements
[re.req]
28.4
Header synopsis
[re.syn]
28.5
Namespace std::regex_constants
[re.const]
28.5.1
Bitmask type syntax_option_type
[re.synopt]
28.5.2
Bitmask type match_flag_type
[re.matchflag]
28.5.3
Implementation-defined error_type
[re.err]
28.6
Class regex_error
[re.badexp]
28.7
Class template regex_traits
[re.traits]
28.8
Class template basic_regex
[re.regex]
28.8.1
basic_regex constants
[re.regex.const]
28.8.2
basic_regex constructors
[re.regex.construct]
28.8.3
basic_regex assign
[re.regex.assign]
28.8.4
basic_regex constant operations
[re.regex.operations]
28.8.5
basic_regex locale
[re.regex.locale]
28.8.6
basic_regex swap
[re.regex.swap]
28.8.7
basic_regex non-member functions
[re.regex.nonmemb]
28.8.7.1
basic_regex non-member swap
[re.regex.nmswap]
28.9
Class template sub_match
[re.submatch]
28.9.1
sub_match members
[re.submatch.members]
28.9.2
sub_match non-member operators
[re.submatch.op]
28.10
Class template match_results
[re.results]
28.10.1
match_results constructors
[re.results.const]
28.10.2
match_results state
[re.results.state]
28.10.3
match_results size
[re.results.size]
28.10.4
match_results element access
[re.results.acc]
28.10.5
match_results formatting
[re.results.form]
28.10.6
match_results allocator
[re.results.all]
28.10.7
match_results swap
[re.results.swap]
28.10.8
match_results non-member functions
[re.results.nonmember]
28.11
Regular expression algorithms
[re.alg]
28.11.1
exceptions
[re.except]
28.11.2
regex_match
[re.alg.match]
28.11.3
regex_search
[re.alg.search]
28.11.4
regex_replace
[re.alg.replace]
28.12
Regular expression iterators
[re.iter]
28.12.1
Class template regex_iterator
[re.regiter]
28.12.1.1
regex_iterator constructors
[re.regiter.cnstr]
28.12.1.2
regex_iterator comparisons
[re.regiter.comp]
28.12.1.3
regex_iterator indirection
[re.regiter.deref]
28.12.1.4
regex_iterator increment
[re.regiter.incr]
28.12.2
Class template regex_token_iterator
[re.tokiter]
28.12.2.1
regex_token_iterator constructors
[re.tokiter.cnstr]
28.12.2.2
regex_token_iterator comparisons
[re.tokiter.comp]
28.12.2.3
regex_token_iterator indirection
[re.tokiter.deref]
28.12.2.4
regex_token_iterator increment
[re.tokiter.incr]
28.13
Modified ECMAScript regular expression grammar
[re.grammar]
29
Atomic operations library
[atomics]
29.1
General
[atomics.general]
29.2
Header synopsis
[atomics.syn]
29.3
Order and consistency
[atomics.order]
29.4
Lock-free property
[atomics.lockfree]
29.5
Atomic types
[atomics.types.generic]
29.6
Operations on atomic types
[atomics.types.operations]
29.6.1
General operations on atomic types
[atomics.types.operations.general]
29.6.2
Templated operations on atomic types
[atomics.types.operations.templ]
29.6.3
Arithmetic operations on atomic types
[atomics.types.operations.arith]
29.6.4
Operations on atomic pointer types
[atomics.types.operations.pointer]
29.6.5
Requirements for operations on atomic types
[atomics.types.operations.req]
29.7
Flag type and operations
[atomics.flag]
29.8
Fences
[atomics.fences]
30
Thread support library
[thread]
30.1
General
[thread.general]
30.2
Requirements
[thread.req]
30.2.1
Template parameter names
[thread.req.paramname]
30.2.2
Exceptions
[thread.req.exception]
30.2.3
Native handles
[thread.req.native]
30.2.4
Timing specifications
[thread.req.timing]
30.2.5
Requirements for Lockable types
[thread.req.lockable]
30.2.5.1
In general
[thread.req.lockable.general]
30.2.5.2
BasicLockable requirements
[thread.req.lockable.basic]
30.2.5.3
Lockable requirements
[thread.req.lockable.req]
30.2.5.4
TimedLockable requirements
[thread.req.lockable.timed]
30.2.6
decay_copy
[thread.decaycopy]
30.3
Threads
[thread.threads]
30.3.1
Class thread
[thread.thread.class]
30.3.1.1
Class thread::id
[thread.thread.id]
30.3.1.2
thread constructors
[thread.thread.constr]
30.3.1.3
thread destructor
[thread.thread.destr]
30.3.1.4
thread assignment
[thread.thread.assign]
30.3.1.5
thread members
[thread.thread.member]
30.3.1.6
thread static members
[thread.thread.static]
30.3.1.7
thread specialized algorithms
[thread.thread.algorithm]
30.3.2
Namespace this_thread
[thread.thread.this]
30.4
Mutual exclusion
[thread.mutex]
30.4.1
Mutex requirements
[thread.mutex.requirements]
30.4.1.1
In general
[thread.mutex.requirements.general]
30.4.1.2
Mutex types
[thread.mutex.requirements.mutex]
30.4.1.2.1
Class mutex
[thread.mutex.class]
30.4.1.2.2
Class recursive_mutex
[thread.mutex.recursive]
30.4.1.3
Timed mutex types
[thread.timedmutex.requirements]
30.4.1.3.1
Class timed_mutex
[thread.timedmutex.class]
30.4.1.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
30.4.1.4
Shared mutex types
[thread.sharedmutex.requirements]
30.4.1.4.1
Class shared_mutex
[thread.sharedmutex.class]
30.4.1.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
30.4.1.5.1
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
30.4.2
Locks
[thread.lock]
30.4.2.1
Class template lock_guard
[thread.lock.guard]
30.4.2.2
Class template unique_lock
[thread.lock.unique]
30.4.2.2.1
unique_lock constructors, destructor, and assignment
[thread.lock.unique.cons]
30.4.2.2.2
unique_lock locking
[thread.lock.unique.locking]
30.4.2.2.3
unique_lock modifiers
[thread.lock.unique.mod]
30.4.2.2.4
unique_lock observers
[thread.lock.unique.obs]
30.4.2.3
Class template shared_lock
[thread.lock.shared]
30.4.2.3.1
shared_lock constructors, destructor, and assignment
[thread.lock.shared.cons]
30.4.2.3.2
shared_lock locking
[thread.lock.shared.locking]
30.4.2.3.3
shared_lock modifiers
[thread.lock.shared.mod]
30.4.2.3.4
shared_lock observers
[thread.lock.shared.obs]
30.4.3
Generic locking algorithms
[thread.lock.algorithm]
30.4.4
Call once
[thread.once]
30.4.4.1
Struct once_flag
[thread.once.onceflag]
30.4.4.2
Function call_once
[thread.once.callonce]
30.5
Condition variables
[thread.condition]
30.5.1
Class condition_variable
[thread.condition.condvar]
30.5.2
Class condition_variable_any
[thread.condition.condvarany]
30.6
Futures
[futures]
30.6.1
Overview
[futures.overview]
30.6.2
Error handling
[futures.errors]
30.6.3
Class future_error
[futures.future_error]
30.6.4
Shared state
[futures.state]
30.6.5
Class template promise
[futures.promise]
30.6.6
Class template future
[futures.unique_future]
30.6.7
Class template shared_future
[futures.shared_future]
30.6.8
Function template async
[futures.async]
30.6.9
Class template packaged_task
[futures.task]
30.6.9.1
packaged_task member functions
[futures.task.members]
30.6.9.2
packaged_task globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basic concepts
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Declarators
[gram.decl]
A.8
Classes
[gram.class]
A.9
Derived classes
[gram.derived]
A.10
Special member functions
[gram.special]
A.11
Overloading
[gram.over]
A.12
Templates
[gram.temp]
A.13
Exception handling
[gram.except]
A.14
Preprocessing directives
[gram.cpp]
Annex B (informative)
Implementation quantities
[implimits]
Annex C (informative)
Compatibility
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
Clause [lex]: lexical conventions
[diff.lex]
C.1.2
Clause [basic]: basic concepts
[diff.basic]
C.1.3
Clause [conv]: standard conversions
[diff.conv]
C.1.4
Clause [expr]: expressions
[diff.expr]
C.1.5
Clause [stmt.stmt]: statements
[diff.stat]
C.1.6
Clause [dcl.dcl]: declarations
[diff.dcl]
C.1.7
Clause [dcl.decl]: declarators
[diff.decl]
C.1.8
Clause [class]: classes
[diff.class]
C.1.9
Clause [special]: special member functions
[diff.special]
C.1.10
Clause [cpp]: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.2.2
Clause [conv]: standard conversions
[diff.cpp03.conv]
C.2.3
Clause [expr]: expressions
[diff.cpp03.expr]
C.2.4
Clause [dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.2.5
Clause [dcl.decl]: declarators
[diff.cpp03.dcl.decl]
C.2.6
Clause [special]: special member functions
[diff.cpp03.special]
C.2.7
Clause [temp]: templates
[diff.cpp03.temp]
C.2.8
Clause [library]: library introduction
[diff.cpp03.library]
C.2.9
Clause [language.support]: language support library
[diff.cpp03.language.support]
C.2.10
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.2.11
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.2.12
Clause [strings]: strings library
[diff.cpp03.strings]
C.2.13
Clause [containers]: containers library
[diff.cpp03.containers]
C.2.14
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.2.15
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.2.16
Clause [input.output]: Input/output library
[diff.cpp03.input.output]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
Clause [lex]: lexical conventions
[diff.cpp11.lex]
C.3.2
Clause [basic]: basic concepts
[diff.cpp11.basic]
C.3.3
Clause [expr]: expressions
[diff.cpp11.expr]
C.3.4
Clause [dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.5
Clause [dcl.decl]: declarators
[diff.cpp11.dcl.decl]
C.3.6
Clause [library]: library introduction
[diff.cpp11.library]
C.3.7
Clause [input.output]: input/output library
[diff.cpp11.input.output]
C.4
C++ and ISO C++ 2014
[diff.cpp14]
C.4.1
Clause [lex]: lexical conventions
[diff.cpp14.lex]
C.4.2
Clause [expr]: expressions
[diff.cpp14.expr]
C.4.3
Clause [dcl.dcl]: declarations
[diff.cpp14.dcl.dcl]
C.4.4
Clause [dcl.decl]: declarators
[diff.cpp14.decl]
C.4.5
Clause [special]: special member functions
[diff.cpp14.special]
C.4.6
Clause [temp]: templates
[diff.cpp14.temp]
C.4.7
Clause [except]: exception handling
[diff.cpp14.except]
C.4.8
Clause [library]: library introduction
[diff.cpp14.library]
C.4.9
Clause [utilities]: General utilities library
[diff.cpp14.utilities]
C.4.10
Clause [strings]: strings library
[diff.cpp14.string]
C.4.11
Clause [containers]: containers library
[diff.cpp14.containers]
C.4.12
Annex [depr]: compatibility features
[diff.cpp14.depr]
C.5
C standard library
[diff.library]
C.5.1
Modifications to headers
[diff.mods.to.headers]
C.5.2
Modifications to definitions
[diff.mods.to.definitions]
C.5.2.1
Types char16_t and char32_t
[diff.char16]
C.5.2.2
Type wchar_t
[diff.wchar.t]
C.5.2.3
Header
[diff.header.assert.h]
C.5.2.4
Header
[diff.header.iso646.h]
C.5.2.5
Header
[diff.header.stdalign.h]
C.5.2.6
Header
[diff.header.stdbool.h]
C.5.2.7
Macro NULL
[diff.null]
C.5.3
Modifications to declarations
[diff.mods.to.declarations]
C.5.4
Modifications to behavior
[diff.mods.to.behavior]
C.5.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.5.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
D.1
Redeclaration of static constexpr data members
[depr.static_constexpr]
D.2
Implicit declaration of copy functions
[depr.impldec]
D.3
Deprecated exception specifications
[depr.except.spec]
D.4
C standard library headers
[depr.c.headers]
D.5
char* streams
[depr.str.strstreams]
D.5.1
Class strstreambuf
[depr.strstreambuf]
D.5.1.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.5.1.2
Member functions
[depr.strstreambuf.members]
D.5.1.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.5.2
Class istrstream
[depr.istrstream]
D.5.2.1
istrstream constructors
[depr.istrstream.cons]
D.5.2.2
Member functions
[depr.istrstream.members]
D.5.3
Class ostrstream
[depr.ostrstream]
D.5.3.1
ostrstream constructors
[depr.ostrstream.cons]
D.5.3.2
Member functions
[depr.ostrstream.members]
D.5.4
Class strstream
[depr.strstream]
D.5.4.1
strstream constructors
[depr.strstream.cons]
D.5.4.2
strstream destructor
[depr.strstream.dest]
D.5.4.3
strstream operations
[depr.strstream.oper]
D.6
uncaught_exception
[depr.uncaught]
D.7
Old adaptable function bindings
[depr.func.adaptor.binding]
D.7.1
Weak result types
[depr.weak.result_type]
D.7.2
Typedefs to support function binders
[depr.func.adaptor.typedefs]
D.7.3
Negators
[depr.negators]
D.8
The default allocator
[depr.default.allocator]
D.9
Raw storage iterator
[depr.storage.iterator]
D.10
Temporary buffers
[depr.temporary.buffer]
D.11
Deprecated Type Traits
[depr.meta.types]
D.12
Deprecated Iterator primitives
[depr.iterator.primitives]
D.12.1
Basic iterator
[depr.iterator.basic]
D.13
Deprecated shared_ptr observers
[depr.util.smartptr.shared.obs]
C++17 (N4659)
1
Scope
[intro.scope]
2
Normative references
[intro.refs]
3
Terms and definitions
[intro.defs]
3.1
access
[defns.access]
3.2
argument
[defns.argument]
3.3
argument
[defns.argument.macro]
3.4
argument
[defns.argument.throw]
3.5
argument
[defns.argument.templ]
3.6
block
[defns.block]
3.7
conditionally-supported
[defns.cond.supp]
3.8
diagnostic message
[defns.diagnostic]
3.9
dynamic type
[defns.dynamic.type]
3.10
dynamic type
[defns.dynamic.type.prvalue]
3.11
ill-formed program
[defns.ill.formed]
3.12
implementation-defined behavior
[defns.impl.defined]
3.13
implementation limits
[defns.impl.limits]
3.14
locale-specific behavior
[defns.locale.specific]
3.15
multibyte character
[defns.multibyte]
3.16
parameter
[defns.parameter]
3.17
parameter
[defns.parameter.macro]
3.18
parameter
[defns.parameter.templ]
3.19
signature
[defns.signature]
3.20
signature
[defns.signature.templ]
3.21
signature
[defns.signature.spec]
3.22
signature
[defns.signature.member]
3.23
signature
[defns.signature.member.templ]
3.24
signature
[defns.signature.member.spec]
3.25
static type
[defns.static.type]
3.26
unblock
[defns.unblock]
3.27
undefined behavior
[defns.undefined]
3.28
unspecified behavior
[defns.unspecified]
3.29
well-formed program
[defns.well.formed]
4
General principles
[intro]
4.1
Implementation compliance
[intro.compliance]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
4.4
The C++ memory model
[intro.memory]
4.5
The C++ object model
[intro.object]
4.6
Program execution
[intro.execution]
4.7
Multi-threaded executions and data races
[intro.multithread]
4.7.1
Data races
[intro.races]
4.7.2
Forward progress
[intro.progress]
4.8
Acknowledgments
[intro.ack]
5
Lexical conventions
[lex]
5.1
Separate translation
[lex.separate]
5.2
Phases of translation
[lex.phases]
5.3
Character sets
[lex.charset]
5.4
Preprocessing tokens
[lex.pptoken]
5.5
Alternative tokens
[lex.digraph]
5.6
Tokens
[lex.token]
5.7
Comments
[lex.comment]
5.8
Header names
[lex.header]
5.9
Preprocessing numbers
[lex.ppnumber]
5.10
Identifiers
[lex.name]
5.11
Keywords
[lex.key]
5.12
Operators and punctuators
[lex.operators]
5.13
Literals
[lex.literal]
5.13.1
Kinds of literals
[lex.literal.kinds]
5.13.2
Integer literals
[lex.icon]
5.13.3
Character literals
[lex.ccon]
5.13.4
Floating literals
[lex.fcon]
5.13.5
String literals
[lex.string]
5.13.6
Boolean literals
[lex.bool]
5.13.7
Pointer literals
[lex.nullptr]
5.13.8
User-defined literals
[lex.ext]
6
Basic concepts
[basic]
6.1
Declarations and definitions
[basic.def]
6.2
One-definition rule
[basic.def.odr]
6.3
Scope
[basic.scope]
6.3.1
Declarative regions and scopes
[basic.scope.declarative]
6.3.2
Point of declaration
[basic.scope.pdecl]
6.3.3
Block scope
[basic.scope.block]
6.3.4
Function prototype scope
[basic.scope.proto]
6.3.5
Function scope
[basic.funscope]
6.3.6
Namespace scope
[basic.scope.namespace]
6.3.7
Class scope
[basic.scope.class]
6.3.8
Enumeration scope
[basic.scope.enum]
6.3.9
Template parameter scope
[basic.scope.temp]
6.3.10
Name hiding
[basic.scope.hiding]
6.4
Name lookup
[basic.lookup]
6.4.1
Unqualified name lookup
[basic.lookup.unqual]
6.4.2
Argument-dependent name lookup
[basic.lookup.argdep]
6.4.3
Qualified name lookup
[basic.lookup.qual]
6.4.3.1
Class members
[class.qual]
6.4.3.2
Namespace members
[namespace.qual]
6.4.4
Elaborated type specifiers
[basic.lookup.elab]
6.4.5
Class member access
[basic.lookup.classref]
6.4.6
Using-directives and namespace aliases
[basic.lookup.udir]
6.5
Program and linkage
[basic.link]
6.6
Start and termination
[basic.start]
6.6.1
main function
[basic.start.main]
6.6.2
Static initialization
[basic.start.static]
6.6.3
Dynamic initialization of non-local variables
[basic.start.dynamic]
6.6.4
Termination
[basic.start.term]
6.7
Storage duration
[basic.stc]
6.7.1
Static storage duration
[basic.stc.static]
6.7.2
Thread storage duration
[basic.stc.thread]
6.7.3
Automatic storage duration
[basic.stc.auto]
6.7.4
Dynamic storage duration
[basic.stc.dynamic]
6.7.4.1
Allocation functions
[basic.stc.dynamic.allocation]
6.7.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
6.7.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
6.7.5
Duration of subobjects
[basic.stc.inherit]
6.8
Object lifetime
[basic.life]
6.9
Types
[basic.types]
6.9.1
Fundamental types
[basic.fundamental]
6.9.2
Compound types
[basic.compound]
6.9.3
CV-qualifiers
[basic.type.qualifier]
6.10
Lvalues and rvalues
[basic.lval]
6.11
Alignment
[basic.align]
7
Standard conversions
[conv]
7.1
Lvalue-to-rvalue conversion
[conv.lval]
7.2
Array-to-pointer conversion
[conv.array]
7.3
Function-to-pointer conversion
[conv.func]
7.4
Temporary materialization conversion
[conv.rval]
7.5
Qualification conversions
[conv.qual]
7.6
Integral promotions
[conv.prom]
7.7
Floating-point promotion
[conv.fpprom]
7.8
Integral conversions
[conv.integral]
7.9
Floating-point conversions
[conv.double]
7.10
Floating-integral conversions
[conv.fpint]
7.11
Pointer conversions
[conv.ptr]
7.12
Pointer to member conversions
[conv.mem]
7.13
Function pointer conversions
[conv.fctptr]
7.14
Boolean conversions
[conv.bool]
7.15
Integer conversion rank
[conv.rank]
8
Expressions
[expr]
8.1
Primary expressions
[expr.prim]
8.1.1
Literals
[expr.prim.literal]
8.1.2
This
[expr.prim.this]
8.1.3
Parentheses
[expr.prim.paren]
8.1.4
Names
[expr.prim.id]
8.1.4.1
Unqualified names
[expr.prim.id.unqual]
8.1.4.2
Qualified names
[expr.prim.id.qual]
8.1.5
Lambda expressions
[expr.prim.lambda]
8.1.5.1
Closure types
[expr.prim.lambda.closure]
8.1.5.2
Captures
[expr.prim.lambda.capture]
8.1.6
Fold expressions
[expr.prim.fold]
8.2
Postfix expressions
[expr.post]
8.2.1
Subscripting
[expr.sub]
8.2.2
Function call
[expr.call]
8.2.3
Explicit type conversion (functional notation)
[expr.type.conv]
8.2.4
Pseudo destructor call
[expr.pseudo]
8.2.5
Class member access
[expr.ref]
8.2.6
Increment and decrement
[expr.post.incr]
8.2.7
Dynamic cast
[expr.dynamic.cast]
8.2.8
Type identification
[expr.typeid]
8.2.9
Static cast
[expr.static.cast]
8.2.10
Reinterpret cast
[expr.reinterpret.cast]
8.2.11
Const cast
[expr.const.cast]
8.3
Unary expressions
[expr.unary]
8.3.1
Unary operators
[expr.unary.op]
8.3.2
Increment and decrement
[expr.pre.incr]
8.3.3
Sizeof
[expr.sizeof]
8.3.4
New
[expr.new]
8.3.5
Delete
[expr.delete]
8.3.6
Alignof
[expr.alignof]
8.3.7
noexcept operator
[expr.unary.noexcept]
8.4
Explicit type conversion (cast notation)
[expr.cast]
8.5
Pointer-to-member operators
[expr.mptr.oper]
8.6
Multiplicative operators
[expr.mul]
8.7
Additive operators
[expr.add]
8.8
Shift operators
[expr.shift]
8.9
Relational operators
[expr.rel]
8.10
Equality operators
[expr.eq]
8.11
Bitwise AND operator
[expr.bit.and]
8.12
Bitwise exclusive OR operator
[expr.xor]
8.13
Bitwise inclusive OR operator
[expr.or]
8.14
Logical AND operator
[expr.log.and]
8.15
Logical OR operator
[expr.log.or]
8.16
Conditional operator
[expr.cond]
8.17
Throwing an exception
[expr.throw]
8.18
Assignment and compound assignment operators
[expr.ass]
8.19
Comma operator
[expr.comma]
8.20
Constant expressions
[expr.const]
9
Statements
[stmt.stmt]
9.1
Labeled statement
[stmt.label]
9.2
Expression statement
[stmt.expr]
9.3
Compound statement or block
[stmt.block]
9.4
Selection statements
[stmt.select]
9.4.1
The if statement
[stmt.if]
9.4.2
The switch statement
[stmt.switch]
9.5
Iteration statements
[stmt.iter]
9.5.1
The while statement
[stmt.while]
9.5.2
The do statement
[stmt.do]
9.5.3
The for statement
[stmt.for]
9.5.4
The range-based for statement
[stmt.ranged]
9.6
Jump statements
[stmt.jump]
9.6.1
The break statement
[stmt.break]
9.6.2
The continue statement
[stmt.cont]
9.6.3
The return statement
[stmt.return]
9.6.4
The goto statement
[stmt.goto]
9.7
Declaration statement
[stmt.dcl]
9.8
Ambiguity resolution
[stmt.ambig]
10
Declarations
[dcl.dcl]
10.1
Specifiers
[dcl.spec]
10.1.1
Storage class specifiers
[dcl.stc]
10.1.2
Function specifiers
[dcl.fct.spec]
10.1.3
The typedef specifier
[dcl.typedef]
10.1.4
The friend specifier
[dcl.friend]
10.1.5
The constexpr specifier
[dcl.constexpr]
10.1.6
The inline specifier
[dcl.inline]
10.1.7
Type specifiers
[dcl.type]
10.1.7.1
The cv-qualifiers
[dcl.type.cv]
10.1.7.2
Simple type specifiers
[dcl.type.simple]
10.1.7.3
Elaborated type specifiers
[dcl.type.elab]
10.1.7.4
The auto specifier
[dcl.spec.auto]
10.1.7.4.1
Placeholder type deduction
[dcl.type.auto.deduct]
10.1.7.5
Deduced class template specialization types
[dcl.type.class.deduct]
10.2
Enumeration declarations
[dcl.enum]
10.3
Namespaces
[basic.namespace]
10.3.1
Namespace definition
[namespace.def]
10.3.1.1
Unnamed namespaces
[namespace.unnamed]
10.3.1.2
Namespace member definitions
[namespace.memdef]
10.3.2
Namespace alias
[namespace.alias]
10.3.3
The using declaration
[namespace.udecl]
10.3.4
Using directive
[namespace.udir]
10.4
The asm declaration
[dcl.asm]
10.5
Linkage specifications
[dcl.link]
10.6
Attributes
[dcl.attr]
10.6.1
Attribute syntax and semantics
[dcl.attr.grammar]
10.6.2
Alignment specifier
[dcl.align]
10.6.3
Carries dependency attribute
[dcl.attr.depend]
10.6.4
Deprecated attribute
[dcl.attr.deprecated]
10.6.5
Fallthrough attribute
[dcl.attr.fallthrough]
10.6.6
Maybe unused attribute
[dcl.attr.unused]
10.6.7
Nodiscard attribute
[dcl.attr.nodiscard]
10.6.8
Noreturn attribute
[dcl.attr.noreturn]
11
Declarators
[dcl.decl]
11.1
Type names
[dcl.name]
11.2
Ambiguity resolution
[dcl.ambig.res]
11.3
Meaning of declarators
[dcl.meaning]
11.3.1
Pointers
[dcl.ptr]
11.3.2
References
[dcl.ref]
11.3.3
Pointers to members
[dcl.mptr]
11.3.4
Arrays
[dcl.array]
11.3.5
Functions
[dcl.fct]
11.3.6
Default arguments
[dcl.fct.default]
11.4
Function definitions
[dcl.fct.def]
11.4.1
In general
[dcl.fct.def.general]
11.4.2
Explicitly-defaulted functions
[dcl.fct.def.default]
11.4.3
Deleted definitions
[dcl.fct.def.delete]
11.5
Structured binding declarations
[dcl.struct.bind]
11.6
Initializers
[dcl.init]
11.6.1
Aggregates
[dcl.init.aggr]
11.6.2
Character arrays
[dcl.init.string]
11.6.3
References
[dcl.init.ref]
11.6.4
List-initialization
[dcl.init.list]
12
Classes
[class]
12.1
Class names
[class.name]
12.2
Class members
[class.mem]
12.2.1
Member functions
[class.mfct]
12.2.2
Non-static member functions
[class.mfct.non-static]
12.2.2.1
The this pointer
[class.this]
12.2.3
Static members
[class.static]
12.2.3.1
Static member functions
[class.static.mfct]
12.2.3.2
Static data members
[class.static.data]
12.2.4
Bit-fields
[class.bit]
12.2.5
Nested class declarations
[class.nest]
12.2.6
Nested type names
[class.nested.type]
12.3
Unions
[class.union]
12.3.1
Anonymous unions
[class.union.anon]
12.4
Local class declarations
[class.local]
13
Derived classes
[class.derived]
13.1
Multiple base classes
[class.mi]
13.2
Member name lookup
[class.member.lookup]
13.3
Virtual functions
[class.virtual]
13.4
Abstract classes
[class.abstract]
14
Member access control
[class.access]
14.1
Access specifiers
[class.access.spec]
14.2
Accessibility of base classes and base class members
[class.access.base]
14.3
Friends
[class.friend]
14.4
Protected member access
[class.protected]
14.5
Access to virtual functions
[class.access.virt]
14.6
Multiple access
[class.paths]
14.7
Nested classes
[class.access.nest]
15
Special member functions
[special]
15.1
Constructors
[class.ctor]
15.2
Temporary objects
[class.temporary]
15.3
Conversions
[class.conv]
15.3.1
Conversion by constructor
[class.conv.ctor]
15.3.2
Conversion functions
[class.conv.fct]
15.4
Destructors
[class.dtor]
15.5
Free store
[class.free]
15.6
Initialization
[class.init]
15.6.1
Explicit initialization
[class.expl.init]
15.6.2
Initializing bases and members
[class.base.init]
15.6.3
Initialization by inherited constructor
[class.inhctor.init]
15.7
Construction and destruction
[class.cdtor]
15.8
Copying and moving class objects
[class.copy]
15.8.1
Copy/move constructors
[class.copy.ctor]
15.8.2
Copy/move assignment operator
[class.copy.assign]
15.8.3
Copy/move elision
[class.copy.elision]
16
Overloading
[over]
16.1
Overloadable declarations
[over.load]
16.2
Declaration matching
[over.dcl]
16.3
Overload resolution
[over.match]
16.3.1
Candidate functions and argument lists
[over.match.funcs]
16.3.1.1
Function call syntax
[over.match.call]
16.3.1.1.1
Call to named function
[over.call.func]
16.3.1.1.2
Call to object of class type
[over.call.object]
16.3.1.2
Operators in expressions
[over.match.oper]
16.3.1.3
Initialization by constructor
[over.match.ctor]
16.3.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
16.3.1.5
Initialization by conversion function
[over.match.conv]
16.3.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
16.3.1.7
Initialization by list-initialization
[over.match.list]
16.3.1.8
Class template argument deduction
[over.match.class.deduct]
16.3.2
Viable functions
[over.match.viable]
16.3.3
Best viable function
[over.match.best]
16.3.3.1
Implicit conversion sequences
[over.best.ics]
16.3.3.1.1
Standard conversion sequences
[over.ics.scs]
16.3.3.1.2
User-defined conversion sequences
[over.ics.user]
16.3.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
16.3.3.1.4
Reference binding
[over.ics.ref]
16.3.3.1.5
List-initialization sequence
[over.ics.list]
16.3.3.2
Ranking implicit conversion sequences
[over.ics.rank]
16.4
Address of overloaded function
[over.over]
16.5
Overloaded operators
[over.oper]
16.5.1
Unary operators
[over.unary]
16.5.2
Binary operators
[over.binary]
16.5.3
Assignment
[over.ass]
16.5.4
Function call
[over.call]
16.5.5
Subscripting
[over.sub]
16.5.6
Class member access
[over.ref]
16.5.7
Increment and decrement
[over.inc]
16.5.8
User-defined literals
[over.literal]
16.6
Built-in operators
[over.built]
17
Templates
[temp]
17.1
Template parameters
[temp.param]
17.2
Names of template specializations
[temp.names]
17.3
Template arguments
[temp.arg]
17.3.1
Template type arguments
[temp.arg.type]
17.3.2
Template non-type arguments
[temp.arg.nontype]
17.3.3
Template template arguments
[temp.arg.template]
17.4
Type equivalence
[temp.type]
17.5
Template declarations
[temp.decls]
17.5.1
Class templates
[temp.class]
17.5.1.1
Member functions of class templates
[temp.mem.func]
17.5.1.2
Member classes of class templates
[temp.mem.class]
17.5.1.3
Static data members of class templates
[temp.static]
17.5.1.4
Enumeration members of class templates
[temp.mem.enum]
17.5.2
Member templates
[temp.mem]
17.5.3
Variadic templates
[temp.variadic]
17.5.4
Friends
[temp.friend]
17.5.5
Class template partial specializations
[temp.class.spec]
17.5.5.1
Matching of class template partial specializations
[temp.class.spec.match]
17.5.5.2
Partial ordering of class template specializations
[temp.class.order]
17.5.5.3
Members of class template specializations
[temp.class.spec.mfunc]
17.5.6
Function templates
[temp.fct]
17.5.6.1
Function template overloading
[temp.over.link]
17.5.6.2
Partial ordering of function templates
[temp.func.order]
17.5.7
Alias templates
[temp.alias]
17.6
Name resolution
[temp.res]
17.6.1
Locally declared names
[temp.local]
17.6.2
Dependent names
[temp.dep]
17.6.2.1
Dependent types
[temp.dep.type]
17.6.2.2
Type-dependent expressions
[temp.dep.expr]
17.6.2.3
Value-dependent expressions
[temp.dep.constexpr]
17.6.2.4
Dependent template arguments
[temp.dep.temp]
17.6.3
Non-dependent names
[temp.nondep]
17.6.4
Dependent name resolution
[temp.dep.res]
17.6.4.1
Point of instantiation
[temp.point]
17.6.4.2
Candidate functions
[temp.dep.candidate]
17.6.5
Friend names declared within a class template
[temp.inject]
17.7
Template instantiation and specialization
[temp.spec]
17.7.1
Implicit instantiation
[temp.inst]
17.7.2
Explicit instantiation
[temp.explicit]
17.7.3
Explicit specialization
[temp.expl.spec]
17.8
Function template specializations
[temp.fct.spec]
17.8.1
Explicit template argument specification
[temp.arg.explicit]
17.8.2
Template argument deduction
[temp.deduct]
17.8.2.1
Deducing template arguments from a function call
[temp.deduct.call]
17.8.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
17.8.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
17.8.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
17.8.2.5
Deducing template arguments from a type
[temp.deduct.type]
17.8.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
17.8.3
Overload resolution
[temp.over]
17.9
Deduction guides
[temp.deduct.guide]
18
Exception handling
[except]
18.1
Throwing an exception
[except.throw]
18.2
Constructors and destructors
[except.ctor]
18.3
Handling an exception
[except.handle]
18.4
Exception specifications
[except.spec]
18.5
Special functions
[except.special]
18.5.1
The std::terminate() function
[except.terminate]
18.5.2
The std::uncaught_exceptions() function
[except.uncaught]
19
Preprocessing directives
[cpp]
19.1
Conditional inclusion
[cpp.cond]
19.2
Source file inclusion
[cpp.include]
19.3
Macro replacement
[cpp.replace]
19.3.1
Argument substitution
[cpp.subst]
19.3.2
The # operator
[cpp.stringize]
19.3.3
The ## operator
[cpp.concat]
19.3.4
Rescanning and further replacement
[cpp.rescan]
19.3.5
Scope of macro definitions
[cpp.scope]
19.4
Line control
[cpp.line]
19.5
Error directive
[cpp.error]
19.6
Pragma directive
[cpp.pragma]
19.7
Null directive
[cpp.null]
19.8
Predefined macro names
[cpp.predefined]
19.9
Pragma operator
[cpp.pragma.op]
20
Library introduction
[library]
20.1
General
[library.general]
20.2
The C standard library
[library.c]
20.3
Definitions
[definitions]
20.3.1
arbitrary-positional stream
[defns.arbitrary.stream]
20.3.2
character
[defns.character]
20.3.3
character container type
[defns.character.container]
20.3.4
comparison function
[defns.comparison]
20.3.5
component
[defns.component]
20.3.6
constant subexpression
[defns.const.subexpr]
20.3.7
deadlock
[defns.deadlock]
20.3.8
default behavior
[defns.default.behavior.impl]
20.3.9
default behavior
[defns.default.behavior.func]
20.3.10
direct-non-list-initialization
[defns.direct-non-list-init]
20.3.11
handler function
[defns.handler]
20.3.12
iostream class templates
[defns.iostream.templates]
20.3.13
modifier function
[defns.modifier]
20.3.14
move assignment
[defns.move.assign]
20.3.15
move construction
[defns.move.constr]
20.3.16
NTCTS
[defns.ntcts]
20.3.17
observer function
[defns.observer]
20.3.18
referenceable type
[defns.referenceable]
20.3.19
replacement function
[defns.replacement]
20.3.20
repositional stream
[defns.repositional.stream]
20.3.21
required behavior
[defns.required.behavior]
20.3.22
reserved function
[defns.reserved.function]
20.3.23
stable algorithm
[defns.stable]
20.3.24
traits class
[defns.traits]
20.3.25
valid but unspecified state
[defns.valid]
20.4
Method of description (Informative)
[description]
20.4.1
Structure of each clause
[structure]
20.4.1.1
Elements
[structure.elements]
20.4.1.2
Summary
[structure.summary]
20.4.1.3
Requirements
[structure.requirements]
20.4.1.4
Detailed specifications
[structure.specifications]
20.4.1.5
C library
[structure.see.also]
20.4.2
Other conventions
[conventions]
20.4.2.1
Type descriptions
[type.descriptions]
20.4.2.1.1
General
[type.descriptions.general]
20.4.2.1.2
Exposition-only types
[expos.only.types]
20.4.2.1.3
Enumerated types
[enumerated.types]
20.4.2.1.4
Bitmask types
[bitmask.types]
20.4.2.1.5
Character sequences
[character.seq]
20.4.2.1.5.1
Byte strings
[byte.strings]
20.4.2.1.5.2
Multibyte strings
[multibyte.strings]
20.4.2.2
Functions within classes
[functions.within.classes]
20.4.2.3
Private members
[objects.within.classes]
20.5
Library-wide requirements
[requirements]
20.5.1
Library contents and organization
[organization]
20.5.1.1
Library contents
[contents]
20.5.1.2
Headers
[headers]
20.5.1.3
Freestanding implementations
[compliance]
20.5.2
Using the library
[using]
20.5.2.1
Overview
[using.overview]
20.5.2.2
Headers
[using.headers]
20.5.2.3
Linkage
[using.linkage]
20.5.3
Requirements on types and expressions
[utility.requirements]
20.5.3.1
Template argument requirements
[utility.arg.requirements]
20.5.3.2
Swappable requirements
[swappable.requirements]
20.5.3.3
NullablePointer requirements
[nullablepointer.requirements]
20.5.3.4
Hash requirements
[hash.requirements]
20.5.3.5
Allocator requirements
[allocator.requirements]
20.5.3.5.1
Allocator completeness requirements
[allocator.requirements.completeness]
20.5.4
Constraints on programs
[constraints]
20.5.4.1
Overview
[constraints.overview]
20.5.4.2
Namespace use
[namespace.constraints]
20.5.4.2.1
Namespace std
[namespace.std]
20.5.4.2.2
Namespace posix
[namespace.posix]
20.5.4.2.3
Namespaces for future standardization
[namespace.future]
20.5.4.3
Reserved names
[reserved.names]
20.5.4.3.1
Zombie names
[zombie.names]
20.5.4.3.2
Macro names
[macro.names]
20.5.4.3.3
External linkage
[extern.names]
20.5.4.3.4
Types
[extern.types]
20.5.4.3.5
User-defined literal suffixes
[usrlit.suffix]
20.5.4.4
Headers
[alt.headers]
20.5.4.5
Derived classes
[derived.classes]
20.5.4.6
Replacement functions
[replacement.functions]
20.5.4.7
Handler functions
[handler.functions]
20.5.4.8
Other functions
[res.on.functions]
20.5.4.9
Function arguments
[res.on.arguments]
20.5.4.10
Library object access
[res.on.objects]
20.5.4.11
Requires paragraph
[res.on.required]
20.5.5
Conforming implementations
[conforming]
20.5.5.1
Overview
[conforming.overview]
20.5.5.2
Headers
[res.on.headers]
20.5.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
20.5.5.4
Non-member functions
[global.functions]
20.5.5.5
Member functions
[member.functions]
20.5.5.6
Constexpr functions and constructors
[constexpr.functions]
20.5.5.7
Requirements for stable algorithms
[algorithm.stable]
20.5.5.8
Reentrancy
[reentrancy]
20.5.5.9
Data race avoidance
[res.on.data.races]
20.5.5.10
Protection within classes
[protection.within.classes]
20.5.5.11
Derived classes
[derivation]
20.5.5.12
Restrictions on exception handling
[res.on.exception.handling]
20.5.5.13
Restrictions on storage of pointers
[res.on.pointer.storage]
20.5.5.14
Value of error codes
[value.error.codes]
20.5.5.15
Moved-from state of library types
[lib.types.movedfrom]
21
Language support library
[language.support]
21.1
General
[support.general]
21.2
Common definitions
[support.types]
21.2.1
Header synopsis
[cstddef.syn]
21.2.2
Header synopsis
[cstdlib.syn]
21.2.3
Null pointers
[support.types.nullptr]
21.2.4
Sizes, alignments, and offsets
[support.types.layout]
21.2.5
byte type operations
[support.types.byteops]
21.3
Implementation properties
[support.limits]
21.3.1
General
[support.limits.general]
21.3.2
Header synopsis
[limits.syn]
21.3.3
Floating-point type properties
[fp.style]
21.3.3.1
Type float_round_style
[round.style]
21.3.3.2
Type float_denorm_style
[denorm.style]
21.3.4
Class template numeric_limits
[numeric.limits]
21.3.4.1
numeric_limits members
[numeric.limits.members]
21.3.4.2
numeric_limits specializations
[numeric.special]
21.3.5
Header synopsis
[climits.syn]
21.3.6
Header synopsis
[cfloat.syn]
21.4
Integer types
[cstdint]
21.4.1
Header synopsis
[cstdint.syn]
21.5
Start and termination
[support.start.term]
21.6
Dynamic memory management
[support.dynamic]
21.6.1
Header synopsis
[new.syn]
21.6.2
Storage allocation and deallocation
[new.delete]
21.6.2.1
Single-object forms
[new.delete.single]
21.6.2.2
Array forms
[new.delete.array]
21.6.2.3
Non-allocating forms
[new.delete.placement]
21.6.2.4
Data races
[new.delete.dataraces]
21.6.3
Storage allocation errors
[alloc.errors]
21.6.3.1
Class bad_alloc
[bad.alloc]
21.6.3.2
Class bad_array_new_length
[new.badlength]
21.6.3.3
Type new_handler
[new.handler]
21.6.3.4
set_new_handler
[set.new.handler]
21.6.3.5
get_new_handler
[get.new.handler]
21.6.4
Pointer optimization barrier
[ptr.launder]
21.6.5
Hardware interference size
[hardware.interference]
21.7
Type identification
[support.rtti]
21.7.1
Header synopsis
[typeinfo.syn]
21.7.2
Class type_info
[type.info]
21.7.3
Class bad_cast
[bad.cast]
21.7.4
Class bad_typeid
[bad.typeid]
21.8
Exception handling
[support.exception]
21.8.1
Header synopsis
[exception.syn]
21.8.2
Class exception
[exception]
21.8.3
Class bad_exception
[bad.exception]
21.8.4
Abnormal termination
[exception.terminate]
21.8.4.1
Type terminate_handler
[terminate.handler]
21.8.4.2
set_terminate
[set.terminate]
21.8.4.3
get_terminate
[get.terminate]
21.8.4.4
terminate
[terminate]
21.8.5
uncaught_exceptions
[uncaught.exceptions]
21.8.6
Exception propagation
[propagation]
21.8.7
nested_exception
[except.nested]
21.9
Initializer lists
[support.initlist]
21.9.1
Header synopsis
[initializer_list.syn]
21.9.2
Initializer list constructors
[support.initlist.cons]
21.9.3
Initializer list access
[support.initlist.access]
21.9.4
Initializer list range access
[support.initlist.range]
21.10
Other runtime support
[support.runtime]
21.10.1
Header synopsis
[cstdarg.syn]
21.10.2
Header synopsis
[csetjmp.syn]
21.10.3
Header synopsis
[csignal.syn]
21.10.4
Signal handlers
[support.signal]
22
Diagnostics library
[diagnostics]
22.1
General
[diagnostics.general]
22.2
Exception classes
[std.exceptions]
22.2.1
Header synopsis
[stdexcept.syn]
22.2.2
Class logic_error
[logic.error]
22.2.3
Class domain_error
[domain.error]
22.2.4
Class invalid_argument
[invalid.argument]
22.2.5
Class length_error
[length.error]
22.2.6
Class out_of_range
[out.of.range]
22.2.7
Class runtime_error
[runtime.error]
22.2.8
Class range_error
[range.error]
22.2.9
Class overflow_error
[overflow.error]
22.2.10
Class underflow_error
[underflow.error]
22.3
Assertions
[assertions]
22.3.1
Header synopsis
[cassert.syn]
22.3.2
The assert macro
[assertions.assert]
22.4
Error numbers
[errno]
22.4.1
Header synopsis
[cerrno.syn]
22.5
System error support
[syserr]
22.5.1
Header synopsis
[system_error.syn]
22.5.2
Class error_category
[syserr.errcat]
22.5.2.1
Class error_category overview
[syserr.errcat.overview]
22.5.2.2
Class error_category virtual members
[syserr.errcat.virtuals]
22.5.2.3
Class error_category non-virtual members
[syserr.errcat.nonvirtuals]
22.5.2.4
Program defined classes derived from error_category
[syserr.errcat.derived]
22.5.2.5
Error category objects
[syserr.errcat.objects]
22.5.3
Class error_code
[syserr.errcode]
22.5.3.1
Class error_code overview
[syserr.errcode.overview]
22.5.3.2
Class error_code constructors
[syserr.errcode.constructors]
22.5.3.3
Class error_code modifiers
[syserr.errcode.modifiers]
22.5.3.4
Class error_code observers
[syserr.errcode.observers]
22.5.3.5
Class error_code non-member functions
[syserr.errcode.nonmembers]
22.5.4
Class error_condition
[syserr.errcondition]
22.5.4.1
Class error_condition overview
[syserr.errcondition.overview]
22.5.4.2
Class error_condition constructors
[syserr.errcondition.constructors]
22.5.4.3
Class error_condition modifiers
[syserr.errcondition.modifiers]
22.5.4.4
Class error_condition observers
[syserr.errcondition.observers]
22.5.4.5
Class error_condition non-member functions
[syserr.errcondition.nonmembers]
22.5.5
Comparison functions
[syserr.compare]
22.5.6
System error hash support
[syserr.hash]
22.5.7
Class system_error
[syserr.syserr]
22.5.7.1
Class system_error overview
[syserr.syserr.overview]
22.5.7.2
Class system_error members
[syserr.syserr.members]
23
General utilities library
[utilities]
23.1
General
[utilities.general]
23.2
Utility components
[utility]
23.2.1
Header synopsis
[utility.syn]
23.2.2
Operators
[operators]
23.2.3
swap
[utility.swap]
23.2.4
exchange
[utility.exchange]
23.2.5
Forward/move helpers
[forward]
23.2.6
Function template as_const
[utility.as_const]
23.2.7
Function template declval
[declval]
23.2.8
Primitive numeric output conversion
[utility.to.chars]
23.2.9
Primitive numeric input conversion
[utility.from.chars]
23.3
Compile-time integer sequences
[intseq]
23.3.1
In general
[intseq.general]
23.3.2
Class template integer_sequence
[intseq.intseq]
23.3.3
Alias template make_integer_sequence
[intseq.make]
23.4
Pairs
[pairs]
23.4.1
In general
[pairs.general]
23.4.2
Class template pair
[pairs.pair]
23.4.3
Specialized algorithms
[pairs.spec]
23.4.4
Tuple-like access to pair
[pair.astuple]
23.4.5
Piecewise construction
[pair.piecewise]
23.5
Tuples
[tuple]
23.5.1
In general
[tuple.general]
23.5.2
Header synopsis
[tuple.syn]
23.5.3
Class template tuple
[tuple.tuple]
23.5.3.1
Construction
[tuple.cnstr]
23.5.3.2
Assignment
[tuple.assign]
23.5.3.3
swap
[tuple.swap]
23.5.3.4
Tuple creation functions
[tuple.creation]
23.5.3.5
Calling a function with a tuple of arguments
[tuple.apply]
23.5.3.6
Tuple helper classes
[tuple.helper]
23.5.3.7
Element access
[tuple.elem]
23.5.3.8
Relational operators
[tuple.rel]
23.5.3.9
Tuple traits
[tuple.traits]
23.5.3.10
Tuple specialized algorithms
[tuple.special]
23.6
Optional objects
[optional]
23.6.1
In general
[optional.general]
23.6.2
Header synopsis
[optional.syn]
23.6.3
Class template optional
[optional.optional]
23.6.3.1
Constructors
[optional.ctor]
23.6.3.2
Destructor
[optional.dtor]
23.6.3.3
Assignment
[optional.assign]
23.6.3.4
Swap
[optional.swap]
23.6.3.5
Observers
[optional.observe]
23.6.3.6
Modifiers
[optional.mod]
23.6.4
No-value state indicator
[optional.nullopt]
23.6.5
Class bad_optional_access
[optional.bad.access]
23.6.6
Relational operators
[optional.relops]
23.6.7
Comparison with nullopt
[optional.nullops]
23.6.8
Comparison with T
[optional.comp_with_t]
23.6.9
Specialized algorithms
[optional.specalg]
23.6.10
Hash support
[optional.hash]
23.7
Variants
[variant]
23.7.1
In general
[variant.general]
23.7.2
Header synopsis
[variant.syn]
23.7.3
Class template variant
[variant.variant]
23.7.3.1
Constructors
[variant.ctor]
23.7.3.2
Destructor
[variant.dtor]
23.7.3.3
Assignment
[variant.assign]
23.7.3.4
Modifiers
[variant.mod]
23.7.3.5
Value status
[variant.status]
23.7.3.6
Swap
[variant.swap]
23.7.4
variant helper classes
[variant.helper]
23.7.5
Value access
[variant.get]
23.7.6
Relational operators
[variant.relops]
23.7.7
Visitation
[variant.visit]
23.7.8
Class monostate
[variant.monostate]
23.7.9
monostate relational operators
[variant.monostate.relops]
23.7.10
Specialized algorithms
[variant.specalg]
23.7.11
Class bad_variant_access
[variant.bad.access]
23.7.12
Hash support
[variant.hash]
23.7.13
Allocator-related traits
[variant.traits]
23.8
Storage for any type
[any]
23.8.1
Header synopsis
[any.synop]
23.8.2
Class bad_any_cast
[any.bad_any_cast]
23.8.3
Class any
[any.class]
23.8.3.1
Construction and destruction
[any.cons]
23.8.3.2
Assignment
[any.assign]
23.8.3.3
Modifiers
[any.modifiers]
23.8.3.4
Observers
[any.observers]
23.8.4
Non-member functions
[any.nonmembers]
23.9
Bitsets
[bitset]
23.9.1
Header synopsis
[bitset.syn]
23.9.2
Class template bitset
[template.bitset]
23.9.2.1
bitset constructors
[bitset.cons]
23.9.2.2
bitset members
[bitset.members]
23.9.3
bitset hash support
[bitset.hash]
23.9.4
bitset operators
[bitset.operators]
23.10
Memory
[memory]
23.10.1
In general
[memory.general]
23.10.2
Header synopsis
[memory.syn]
23.10.3
Pointer traits
[pointer.traits]
23.10.3.1
Pointer traits member types
[pointer.traits.types]
23.10.3.2
Pointer traits member functions
[pointer.traits.functions]
23.10.4
Pointer safety
[util.dynamic.safety]
23.10.5
Align
[ptr.align]
23.10.6
Allocator argument tag
[allocator.tag]
23.10.7
uses_allocator
[allocator.uses]
23.10.7.1
uses_allocator trait
[allocator.uses.trait]
23.10.7.2
Uses-allocator construction
[allocator.uses.construction]
23.10.8
Allocator traits
[allocator.traits]
23.10.8.1
Allocator traits member types
[allocator.traits.types]
23.10.8.2
Allocator traits static member functions
[allocator.traits.members]
23.10.9
The default allocator
[default.allocator]
23.10.9.1
allocator members
[allocator.members]
23.10.9.2
allocator globals
[allocator.globals]
23.10.10
Specialized algorithms
[specialized.algorithms]
23.10.10.1
addressof
[specialized.addressof]
23.10.10.2
uninitialized_default_construct
[uninitialized.construct.default]
23.10.10.3
uninitialized_value_construct
[uninitialized.construct.value]
23.10.10.4
uninitialized_copy
[uninitialized.copy]
23.10.10.5
uninitialized_move
[uninitialized.move]
23.10.10.6
uninitialized_fill
[uninitialized.fill]
23.10.10.7
destroy
[specialized.destroy]
23.10.11
C library memory allocation
[c.malloc]
23.11
Smart pointers
[smartptr]
23.11.1
Class template unique_ptr
[unique.ptr]
23.11.1.1
Default deleters
[unique.ptr.dltr]
23.11.1.1.1
In general
[unique.ptr.dltr.general]
23.11.1.1.2
default_delete
[unique.ptr.dltr.dflt]
23.11.1.1.3
default_delete
[unique.ptr.dltr.dflt1]
23.11.1.2
unique_ptr for single objects
[unique.ptr.single]
23.11.1.2.1
unique_ptr constructors
[unique.ptr.single.ctor]
23.11.1.2.2
unique_ptr destructor
[unique.ptr.single.dtor]
23.11.1.2.3
unique_ptr assignment
[unique.ptr.single.asgn]
23.11.1.2.4
unique_ptr observers
[unique.ptr.single.observers]
23.11.1.2.5
unique_ptr modifiers
[unique.ptr.single.modifiers]
23.11.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
23.11.1.3.1
unique_ptr constructors
[unique.ptr.runtime.ctor]
23.11.1.3.2
unique_ptr assignment
[unique.ptr.runtime.asgn]
23.11.1.3.3
unique_ptr observers
[unique.ptr.runtime.observers]
23.11.1.3.4
unique_ptr modifiers
[unique.ptr.runtime.modifiers]
23.11.1.4
unique_ptr creation
[unique.ptr.create]
23.11.1.5
unique_ptr specialized algorithms
[unique.ptr.special]
23.11.2
Shared-ownership pointers
[util.smartptr]
23.11.2.1
Class bad_weak_ptr
[util.smartptr.weak.bad]
23.11.2.2
Class template shared_ptr
[util.smartptr.shared]
23.11.2.2.1
shared_ptr constructors
[util.smartptr.shared.const]
23.11.2.2.2
shared_ptr destructor
[util.smartptr.shared.dest]
23.11.2.2.3
shared_ptr assignment
[util.smartptr.shared.assign]
23.11.2.2.4
shared_ptr modifiers
[util.smartptr.shared.mod]
23.11.2.2.5
shared_ptr observers
[util.smartptr.shared.obs]
23.11.2.2.6
shared_ptr creation
[util.smartptr.shared.create]
23.11.2.2.7
shared_ptr comparison
[util.smartptr.shared.cmp]
23.11.2.2.8
shared_ptr specialized algorithms
[util.smartptr.shared.spec]
23.11.2.2.9
shared_ptr casts
[util.smartptr.shared.cast]
23.11.2.2.10
get_deleter
[util.smartptr.getdeleter]
23.11.2.2.11
shared_ptr I/O
[util.smartptr.shared.io]
23.11.2.3
Class template weak_ptr
[util.smartptr.weak]
23.11.2.3.1
weak_ptr constructors
[util.smartptr.weak.const]
23.11.2.3.2
weak_ptr destructor
[util.smartptr.weak.dest]
23.11.2.3.3
weak_ptr assignment
[util.smartptr.weak.assign]
23.11.2.3.4
weak_ptr modifiers
[util.smartptr.weak.mod]
23.11.2.3.5
weak_ptr observers
[util.smartptr.weak.obs]
23.11.2.3.6
weak_ptr specialized algorithms
[util.smartptr.weak.spec]
23.11.2.4
Class template owner_less
[util.smartptr.ownerless]
23.11.2.5
Class template enable_shared_from_this
[util.smartptr.enab]
23.11.2.6
shared_ptr atomic access
[util.smartptr.shared.atomic]
23.11.2.7
Smart pointer hash support
[util.smartptr.hash]
23.12
Memory resources
[mem.res]
23.12.1
Header synopsis
[mem.res.syn]
23.12.2
Class memory_resource
[mem.res.class]
23.12.2.1
memory_resource public member functions
[mem.res.public]
23.12.2.2
memory_resource private virtual member functions
[mem.res.private]
23.12.2.3
memory_resource equality
[mem.res.eq]
23.12.3
Class template polymorphic_allocator
[mem.poly.allocator.class]
23.12.3.1
polymorphic_allocator constructors
[mem.poly.allocator.ctor]
23.12.3.2
polymorphic_allocator member functions
[mem.poly.allocator.mem]
23.12.3.3
polymorphic_allocator equality
[mem.poly.allocator.eq]
23.12.4
Access to program-wide memory_resource objects
[mem.res.global]
23.12.5
Pool resource classes
[mem.res.pool]
23.12.5.1
Classes synchronized_pool_resource and unsynchronized_pool_resource
[mem.res.pool.overview]
23.12.5.2
pool_options data members
[mem.res.pool.options]
23.12.5.3
Pool resource constructors and destructors
[mem.res.pool.ctor]
23.12.5.4
Pool resource members
[mem.res.pool.mem]
23.12.6
Class monotonic_buffer_resource
[mem.res.monotonic.buffer]
23.12.6.1
monotonic_buffer_resource constructor and destructor
[mem.res.monotonic.buffer.ctor]
23.12.6.2
monotonic_buffer_resource members
[mem.res.monotonic.buffer.mem]
23.13
Class template scoped_allocator_adaptor
[allocator.adaptor]
23.13.1
Header synopsis
[allocator.adaptor.syn]
23.13.2
Scoped allocator adaptor member types
[allocator.adaptor.types]
23.13.3
Scoped allocator adaptor constructors
[allocator.adaptor.cnstr]
23.13.4
Scoped allocator adaptor members
[allocator.adaptor.members]
23.13.5
Scoped allocator operators
[scoped.adaptor.operators]
23.14
Function objects
[function.objects]
23.14.1
Header synopsis
[functional.syn]
23.14.2
Definitions
[func.def]
23.14.3
Requirements
[func.require]
23.14.4
Function template invoke
[func.invoke]
23.14.5
Class template reference_wrapper
[refwrap]
23.14.5.1
reference_wrapper construct/copy/destroy
[refwrap.const]
23.14.5.2
reference_wrapper assignment
[refwrap.assign]
23.14.5.3
reference_wrapper access
[refwrap.access]
23.14.5.4
reference_wrapper invocation
[refwrap.invoke]
23.14.5.5
reference_wrapper helper functions
[refwrap.helpers]
23.14.6
Arithmetic operations
[arithmetic.operations]
23.14.6.1
Class template plus
[arithmetic.operations.plus]
23.14.6.2
Class template minus
[arithmetic.operations.minus]
23.14.6.3
Class template multiplies
[arithmetic.operations.multiplies]
23.14.6.4
Class template divides
[arithmetic.operations.divides]
23.14.6.5
Class template modulus
[arithmetic.operations.modulus]
23.14.6.6
Class template negate
[arithmetic.operations.negate]
23.14.7
Comparisons
[comparisons]
23.14.7.1
Class template equal_to
[comparisons.equal_to]
23.14.7.2
Class template not_equal_to
[comparisons.not_equal_to]
23.14.7.3
Class template greater
[comparisons.greater]
23.14.7.4
Class template less
[comparisons.less]
23.14.7.5
Class template greater_equal
[comparisons.greater_equal]
23.14.7.6
Class template less_equal
[comparisons.less_equal]
23.14.8
Logical operations
[logical.operations]
23.14.8.1
Class template logical_and
[logical.operations.and]
23.14.8.2
Class template logical_or
[logical.operations.or]
23.14.8.3
Class template logical_not
[logical.operations.not]
23.14.9
Bitwise operations
[bitwise.operations]
23.14.9.1
Class template bit_and
[bitwise.operations.and]
23.14.9.2
Class template bit_or
[bitwise.operations.or]
23.14.9.3
Class template bit_xor
[bitwise.operations.xor]
23.14.9.4
Class template bit_not
[bitwise.operations.not]
23.14.10
Function template not_fn
[func.not_fn]
23.14.11
Function object binders
[func.bind]
23.14.11.1
Class template is_bind_expression
[func.bind.isbind]
23.14.11.2
Class template is_placeholder
[func.bind.isplace]
23.14.11.3
Function template bind
[func.bind.bind]
23.14.11.4
Placeholders
[func.bind.place]
23.14.12
Function template mem_fn
[func.memfn]
23.14.13
Polymorphic function wrappers
[func.wrap]
23.14.13.1
Class bad_function_call
[func.wrap.badcall]
23.14.13.1.1
bad_function_call constructor
[func.wrap.badcall.const]
23.14.13.2
Class template function
[func.wrap.func]
23.14.13.2.1
function construct/copy/destroy
[func.wrap.func.con]
23.14.13.2.2
function modifiers
[func.wrap.func.mod]
23.14.13.2.3
function capacity
[func.wrap.func.cap]
23.14.13.2.4
function invocation
[func.wrap.func.inv]
23.14.13.2.5
function target access
[func.wrap.func.targ]
23.14.13.2.6
null pointer comparison functions
[func.wrap.func.nullptr]
23.14.13.2.7
specialized algorithms
[func.wrap.func.alg]
23.14.14
Searchers
[func.search]
23.14.14.1
Class template default_searcher
[func.search.default]
23.14.14.2
Class template boyer_moore_searcher
[func.search.bm]
23.14.14.3
Class template boyer_moore_horspool_searcher
[func.search.bmh]
23.14.15
Class template hash
[unord.hash]
23.15
Metaprogramming and type traits
[meta]
23.15.1
Requirements
[meta.rqmts]
23.15.2
Header synopsis
[meta.type.synop]
23.15.3
Helper classes
[meta.help]
23.15.4
Unary type traits
[meta.unary]
23.15.4.1
Primary type categories
[meta.unary.cat]
23.15.4.2
Composite type traits
[meta.unary.comp]
23.15.4.3
Type properties
[meta.unary.prop]
23.15.5
Type property queries
[meta.unary.prop.query]
23.15.6
Relationships between types
[meta.rel]
23.15.7
Transformations between types
[meta.trans]
23.15.7.1
Const-volatile modifications
[meta.trans.cv]
23.15.7.2
Reference modifications
[meta.trans.ref]
23.15.7.3
Sign modifications
[meta.trans.sign]
23.15.7.4
Array modifications
[meta.trans.arr]
23.15.7.5
Pointer modifications
[meta.trans.ptr]
23.15.7.6
Other transformations
[meta.trans.other]
23.15.8
Logical operator traits
[meta.logical]
23.16
Compile-time rational arithmetic
[ratio]
23.16.1
In general
[ratio.general]
23.16.2
Header synopsis
[ratio.syn]
23.16.3
Class template ratio
[ratio.ratio]
23.16.4
Arithmetic on ratios
[ratio.arithmetic]
23.16.5
Comparison of ratios
[ratio.comparison]
23.16.6
SI types for ratio
[ratio.si]
23.17
Time utilities
[time]
23.17.1
In general
[time.general]
23.17.2
Header synopsis
[time.syn]
23.17.3
Clock requirements
[time.clock.req]
23.17.4
Time-related traits
[time.traits]
23.17.4.1
treat_as_floating_point
[time.traits.is_fp]
23.17.4.2
duration_values
[time.traits.duration_values]
23.17.4.3
Specializations of common_type
[time.traits.specializations]
23.17.5
Class template duration
[time.duration]
23.17.5.1
duration constructors
[time.duration.cons]
23.17.5.2
duration observer
[time.duration.observer]
23.17.5.3
duration arithmetic
[time.duration.arithmetic]
23.17.5.4
duration special values
[time.duration.special]
23.17.5.5
duration non-member arithmetic
[time.duration.nonmember]
23.17.5.6
duration comparisons
[time.duration.comparisons]
23.17.5.7
duration_cast
[time.duration.cast]
23.17.5.8
Suffixes for duration literals
[time.duration.literals]
23.17.5.9
duration algorithms
[time.duration.alg]
23.17.6
Class template time_point
[time.point]
23.17.6.1
time_point constructors
[time.point.cons]
23.17.6.2
time_point observer
[time.point.observer]
23.17.6.3
time_point arithmetic
[time.point.arithmetic]
23.17.6.4
time_point special values
[time.point.special]
23.17.6.5
time_point non-member arithmetic
[time.point.nonmember]
23.17.6.6
time_point comparisons
[time.point.comparisons]
23.17.6.7
time_point_cast
[time.point.cast]
23.17.7
Clocks
[time.clock]
23.17.7.1
Class system_clock
[time.clock.system]
23.17.7.2
Class steady_clock
[time.clock.steady]
23.17.7.3
Class high_resolution_clock
[time.clock.hires]
23.17.8
Header synopsis
[ctime.syn]
23.18
Class type_index
[type.index]
23.18.1
Header synopsis
[type.index.synopsis]
23.18.2
type_index overview
[type.index.overview]
23.18.3
type_index members
[type.index.members]
23.18.4
Hash support
[type.index.hash]
23.19
Execution policies
[execpol]
23.19.1
In general
[execpol.general]
23.19.2
Header synopsis
[execution.syn]
23.19.3
Execution policy type trait
[execpol.type]
23.19.4
Sequenced execution policy
[execpol.seq]
23.19.5
Parallel execution policy
[execpol.par]
23.19.6
Parallel and unsequenced execution policy
[execpol.parunseq]
23.19.7
Execution policy objects
[execpol.objects]
24
Strings library
[strings]
24.1
General
[strings.general]
24.2
Character traits
[char.traits]
24.2.1
Character traits requirements
[char.traits.require]
24.2.2
Traits typedefs
[char.traits.typedefs]
24.2.3
char_traits specializations
[char.traits.specializations]
24.2.3.1
struct char_traits
[char.traits.specializations.char]
24.2.3.2
struct char_traits
[char.traits.specializations.char16_t]
24.2.3.3
struct char_traits
[char.traits.specializations.char32_t]
24.2.3.4
struct char_traits
[char.traits.specializations.wchar.t]
24.3
String classes
[string.classes]
24.3.1
Header synopsis
[string.syn]
24.3.2
Class template basic_string
[basic.string]
24.3.2.1
basic_string general requirements
[string.require]
24.3.2.2
basic_string constructors and assignment operators
[string.cons]
24.3.2.3
basic_string iterator support
[string.iterators]
24.3.2.4
basic_string capacity
[string.capacity]
24.3.2.5
basic_string element access
[string.access]
24.3.2.6
basic_string modifiers
[string.modifiers]
24.3.2.6.1
basic_string::operator+=
[string.op+=]
24.3.2.6.2
basic_string::append
[string.append]
24.3.2.6.3
basic_string::assign
[string.assign]
24.3.2.6.4
basic_string::insert
[string.insert]
24.3.2.6.5
basic_string::erase
[string.erase]
24.3.2.6.6
basic_string::replace
[string.replace]
24.3.2.6.7
basic_string::copy
[string.copy]
24.3.2.6.8
basic_string::swap
[string.swap]
24.3.2.7
basic_string string operations
[string.ops]
24.3.2.7.1
basic_string accessors
[string.accessors]
24.3.2.7.2
basic_string::find
[string.find]
24.3.2.7.3
basic_string::rfind
[string.rfind]
24.3.2.7.4
basic_string::find_first_of
[string.find.first.of]
24.3.2.7.5
basic_string::find_last_of
[string.find.last.of]
24.3.2.7.6
basic_string::find_first_not_of
[string.find.first.not.of]
24.3.2.7.7
basic_string::find_last_not_of
[string.find.last.not.of]
24.3.2.7.8
basic_string::substr
[string.substr]
24.3.2.7.9
basic_string::compare
[string.compare]
24.3.3
basic_string non-member functions
[string.nonmembers]
24.3.3.1
operator+
[string.op+]
24.3.3.2
operator==
[string.operator==]
24.3.3.3
operator!=
[string.op!=]
24.3.3.4
operator<
[string.op<]
24.3.3.5
operator>
[string.op>]
24.3.3.6
operator<=
[string.op<=]
24.3.3.7
operator>=
[string.op>=]
24.3.3.8
swap
[string.special]
24.3.3.9
Inserters and extractors
[string.io]
24.3.4
Numeric conversions
[string.conversions]
24.3.5
Hash support
[basic.string.hash]
24.3.6
Suffix for basic_string literals
[basic.string.literals]
24.4
String view classes
[string.view]
24.4.1
Header synopsis
[string.view.synop]
24.4.2
Class template basic_string_view
[string.view.template]
24.4.2.1
Construction and assignment
[string.view.cons]
24.4.2.2
Iterator support
[string.view.iterators]
24.4.2.3
Capacity
[string.view.capacity]
24.4.2.4
Element access
[string.view.access]
24.4.2.5
Modifiers
[string.view.modifiers]
24.4.2.6
String operations
[string.view.ops]
24.4.2.7
Searching
[string.view.find]
24.4.3
Non-member comparison functions
[string.view.comparison]
24.4.4
Inserters and extractors
[string.view.io]
24.4.5
Hash support
[string.view.hash]
24.4.6
Suffix for basic_string_view literals
[string.view.literals]
24.5
Null-terminated sequence utilities
[c.strings]
24.5.1
Header synopsis
[cctype.syn]
24.5.2
Header synopsis
[cwctype.syn]
24.5.3
Header synopsis
[cstring.syn]
24.5.4
Header synopsis
[cwchar.syn]
24.5.5
Header synopsis
[cuchar.syn]
24.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
25
Localization library
[localization]
25.1
General
[localization.general]
25.2
Header synopsis
[locale.syn]
25.3
Locales
[locales]
25.3.1
Class locale
[locale]
25.3.1.1
locale types
[locale.types]
25.3.1.1.1
Type locale::category
[locale.category]
25.3.1.1.2
Class locale::facet
[locale.facet]
25.3.1.1.3
Class locale::id
[locale.id]
25.3.1.2
locale constructors and destructor
[locale.cons]
25.3.1.3
locale members
[locale.members]
25.3.1.4
locale operators
[locale.operators]
25.3.1.5
locale static members
[locale.statics]
25.3.2
locale globals
[locale.global.templates]
25.3.3
Convenience interfaces
[locale.convenience]
25.3.3.1
Character classification
[classification]
25.3.3.2
Conversions
[conversions]
25.3.3.2.1
Character conversions
[conversions.character]
25.4
Standard locale categories
[locale.categories]
25.4.1
The ctype category
[category.ctype]
25.4.1.1
Class template ctype
[locale.ctype]
25.4.1.1.1
ctype members
[locale.ctype.members]
25.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
25.4.1.2
Class template ctype_byname
[locale.ctype.byname]
25.4.1.3
ctype specializations
[facet.ctype.special]
25.4.1.3.1
ctype destructor
[facet.ctype.char.dtor]
25.4.1.3.2
ctype members
[facet.ctype.char.members]
25.4.1.3.3
ctype static members
[facet.ctype.char.statics]
25.4.1.3.4
ctype virtual functions
[facet.ctype.char.virtuals]
25.4.1.4
Class template codecvt
[locale.codecvt]
25.4.1.4.1
codecvt members
[locale.codecvt.members]
25.4.1.4.2
codecvt virtual functions
[locale.codecvt.virtuals]
25.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
25.4.2
The numeric category
[category.numeric]
25.4.2.1
Class template num_get
[locale.num.get]
25.4.2.1.1
num_get members
[facet.num.get.members]
25.4.2.1.2
num_get virtual functions
[facet.num.get.virtuals]
25.4.2.2
Class template num_put
[locale.nm.put]
25.4.2.2.1
num_put members
[facet.num.put.members]
25.4.2.2.2
num_put virtual functions
[facet.num.put.virtuals]
25.4.3
The numeric punctuation facet
[facet.numpunct]
25.4.3.1
Class template numpunct
[locale.numpunct]
25.4.3.1.1
numpunct members
[facet.numpunct.members]
25.4.3.1.2
numpunct virtual functions
[facet.numpunct.virtuals]
25.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
25.4.4
The collate category
[category.collate]
25.4.4.1
Class template collate
[locale.collate]
25.4.4.1.1
collate members
[locale.collate.members]
25.4.4.1.2
collate virtual functions
[locale.collate.virtuals]
25.4.4.2
Class template collate_byname
[locale.collate.byname]
25.4.5
The time category
[category.time]
25.4.5.1
Class template time_get
[locale.time.get]
25.4.5.1.1
time_get members
[locale.time.get.members]
25.4.5.1.2
time_get virtual functions
[locale.time.get.virtuals]
25.4.5.2
Class template time_get_byname
[locale.time.get.byname]
25.4.5.3
Class template time_put
[locale.time.put]
25.4.5.3.1
time_put members
[locale.time.put.members]
25.4.5.3.2
time_put virtual functions
[locale.time.put.virtuals]
25.4.5.4
Class template time_put_byname
[locale.time.put.byname]
25.4.6
The monetary category
[category.monetary]
25.4.6.1
Class template money_get
[locale.money.get]
25.4.6.1.1
money_get members
[locale.money.get.members]
25.4.6.1.2
money_get virtual functions
[locale.money.get.virtuals]
25.4.6.2
Class template money_put
[locale.money.put]
25.4.6.2.1
money_put members
[locale.money.put.members]
25.4.6.2.2
money_put virtual functions
[locale.money.put.virtuals]
25.4.6.3
Class template moneypunct
[locale.moneypunct]
25.4.6.3.1
moneypunct members
[locale.moneypunct.members]
25.4.6.3.2
moneypunct virtual functions
[locale.moneypunct.virtuals]
25.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
25.4.7
The message retrieval category
[category.messages]
25.4.7.1
Class template messages
[locale.messages]
25.4.7.1.1
messages members
[locale.messages.members]
25.4.7.1.2
messages virtual functions
[locale.messages.virtuals]
25.4.7.2
Class template messages_byname
[locale.messages.byname]
25.4.8
Program-defined facets
[facets.examples]
25.5
C library locales
[c.locales]
25.5.1
Header synopsis
[clocale.syn]
26
Containers library
[containers]
26.1
General
[containers.general]
26.2
Container requirements
[container.requirements]
26.2.1
General container requirements
[container.requirements.general]
26.2.2
Container data races
[container.requirements.dataraces]
26.2.3
Sequence containers
[sequence.reqmts]
26.2.4
Node handles
[container.node]
26.2.4.1
node_handle overview
[container.node.overview]
26.2.4.2
node_handle constructors, copy, and assignment
[container.node.cons]
26.2.4.3
node_handle destructor
[container.node.dtor]
26.2.4.4
node_handle observers
[container.node.observers]
26.2.4.5
node_handle modifiers
[container.node.modifiers]
26.2.5
Insert return type
[container.insert.return]
26.2.6
Associative containers
[associative.reqmts]
26.2.6.1
Exception safety guarantees
[associative.reqmts.except]
26.2.7
Unordered associative containers
[unord.req]
26.2.7.1
Exception safety guarantees
[unord.req.except]
26.3
Sequence containers
[sequences]
26.3.1
In general
[sequences.general]
26.3.2
Header synopsis
[array.syn]
26.3.3
Header synopsis
[deque.syn]
26.3.4
Header synopsis
[forward_list.syn]
26.3.5
Header synopsis
[list.syn]
26.3.6
Header synopsis
[vector.syn]
26.3.7
Class template array
[array]
26.3.7.1
Class template array overview
[array.overview]
26.3.7.2
array constructors, copy, and assignment
[array.cons]
26.3.7.3
array specialized algorithms
[array.special]
26.3.7.4
array::size
[array.size]
26.3.7.5
array::data
[array.data]
26.3.7.6
array::fill
[array.fill]
26.3.7.7
array::swap
[array.swap]
26.3.7.8
Zero sized arrays
[array.zero]
26.3.7.9
Tuple interface to class template array
[array.tuple]
26.3.8
Class template deque
[deque]
26.3.8.1
Class template deque overview
[deque.overview]
26.3.8.2
deque constructors, copy, and assignment
[deque.cons]
26.3.8.3
deque capacity
[deque.capacity]
26.3.8.4
deque modifiers
[deque.modifiers]
26.3.8.5
deque specialized algorithms
[deque.special]
26.3.9
Class template forward_list
[forwardlist]
26.3.9.1
Class template forward_list overview
[forwardlist.overview]
26.3.9.2
forward_list constructors, copy, assignment
[forwardlist.cons]
26.3.9.3
forward_list iterators
[forwardlist.iter]
26.3.9.4
forward_list element access
[forwardlist.access]
26.3.9.5
forward_list modifiers
[forwardlist.modifiers]
26.3.9.6
forward_list operations
[forwardlist.ops]
26.3.9.7
forward_list specialized algorithms
[forwardlist.spec]
26.3.10
Class template list
[list]
26.3.10.1
Class template list overview
[list.overview]
26.3.10.2
list constructors, copy, and assignment
[list.cons]
26.3.10.3
list capacity
[list.capacity]
26.3.10.4
list modifiers
[list.modifiers]
26.3.10.5
list operations
[list.ops]
26.3.10.6
list specialized algorithms
[list.special]
26.3.11
Class template vector
[vector]
26.3.11.1
Class template vector overview
[vector.overview]
26.3.11.2
vector constructors, copy, and assignment
[vector.cons]
26.3.11.3
vector capacity
[vector.capacity]
26.3.11.4
vector data
[vector.data]
26.3.11.5
vector modifiers
[vector.modifiers]
26.3.11.6
vector specialized algorithms
[vector.special]
26.3.12
Class vector
[vector.bool]
26.4
Associative containers
[associative]
26.4.1
In general
[associative.general]
26.4.2
Header synopsis
[associative.map.syn]
26.4.3
Header synopsis
[associative.set.syn]
26.4.4
Class template map
[map]
26.4.4.1
Class template map overview
[map.overview]
26.4.4.2
map constructors, copy, and assignment
[map.cons]
26.4.4.3
map element access
[map.access]
26.4.4.4
map modifiers
[map.modifiers]
26.4.4.5
map specialized algorithms
[map.special]
26.4.5
Class template multimap
[multimap]
26.4.5.1
Class template multimap overview
[multimap.overview]
26.4.5.2
multimap constructors
[multimap.cons]
26.4.5.3
multimap modifiers
[multimap.modifiers]
26.4.5.4
multimap specialized algorithms
[multimap.special]
26.4.6
Class template set
[set]
26.4.6.1
Class template set overview
[set.overview]
26.4.6.2
set constructors, copy, and assignment
[set.cons]
26.4.6.3
set specialized algorithms
[set.special]
26.4.7
Class template multiset
[multiset]
26.4.7.1
Class template multiset overview
[multiset.overview]
26.4.7.2
multiset constructors
[multiset.cons]
26.4.7.3
multiset specialized algorithms
[multiset.special]
26.5
Unordered associative containers
[unord]
26.5.1
In general
[unord.general]
26.5.2
Header synopsis
[unord.map.syn]
26.5.3
Header synopsis
[unord.set.syn]
26.5.4
Class template unordered_map
[unord.map]
26.5.4.1
Class template unordered_map overview
[unord.map.overview]
26.5.4.2
unordered_map constructors
[unord.map.cnstr]
26.5.4.3
unordered_map element access
[unord.map.elem]
26.5.4.4
unordered_map modifiers
[unord.map.modifiers]
26.5.4.5
unordered_map swap
[unord.map.swap]
26.5.5
Class template unordered_multimap
[unord.multimap]
26.5.5.1
Class template unordered_multimap overview
[unord.multimap.overview]
26.5.5.2
unordered_multimap constructors
[unord.multimap.cnstr]
26.5.5.3
unordered_multimap modifiers
[unord.multimap.modifiers]
26.5.5.4
unordered_multimap swap
[unord.multimap.swap]
26.5.6
Class template unordered_set
[unord.set]
26.5.6.1
Class template unordered_set overview
[unord.set.overview]
26.5.6.2
unordered_set constructors
[unord.set.cnstr]
26.5.6.3
unordered_set swap
[unord.set.swap]
26.5.7
Class template unordered_multiset
[unord.multiset]
26.5.7.1
Class template unordered_multiset overview
[unord.multiset.overview]
26.5.7.2
unordered_multiset constructors
[unord.multiset.cnstr]
26.5.7.3
unordered_multiset swap
[unord.multiset.swap]
26.6
Container adaptors
[container.adaptors]
26.6.1
In general
[container.adaptors.general]
26.6.2
Header synopsis
[queue.syn]
26.6.3
Header synopsis
[stack.syn]
26.6.4
Class template queue
[queue]
26.6.4.1
queue definition
[queue.defn]
26.6.4.2
queue constructors
[queue.cons]
26.6.4.3
queue constructors with allocators
[queue.cons.alloc]
26.6.4.4
queue operators
[queue.ops]
26.6.4.5
queue specialized algorithms
[queue.special]
26.6.5
Class template priority_queue
[priority.queue]
26.6.5.1
priority_queue constructors
[priqueue.cons]
26.6.5.2
priority_queue constructors with allocators
[priqueue.cons.alloc]
26.6.5.3
priority_queue members
[priqueue.members]
26.6.5.4
priority_queue specialized algorithms
[priqueue.special]
26.6.6
Class template stack
[stack]
26.6.6.1
stack definition
[stack.defn]
26.6.6.2
stack constructors
[stack.cons]
26.6.6.3
stack constructors with allocators
[stack.cons.alloc]
26.6.6.4
stack operators
[stack.ops]
26.6.6.5
stack specialized algorithms
[stack.special]
27
Iterators library
[iterators]
27.1
General
[iterators.general]
27.2
Iterator requirements
[iterator.requirements]
27.2.1
In general
[iterator.requirements.general]
27.2.2
Iterator
[iterator.iterators]
27.2.3
Input iterators
[input.iterators]
27.2.4
Output iterators
[output.iterators]
27.2.5
Forward iterators
[forward.iterators]
27.2.6
Bidirectional iterators
[bidirectional.iterators]
27.2.7
Random access iterators
[random.access.iterators]
27.3
Header synopsis
[iterator.synopsis]
27.4
Iterator primitives
[iterator.primitives]
27.4.1
Iterator traits
[iterator.traits]
27.4.2
Standard iterator tags
[std.iterator.tags]
27.4.3
Iterator operations
[iterator.operations]
27.5
Iterator adaptors
[predef.iterators]
27.5.1
Reverse iterators
[reverse.iterators]
27.5.1.1
Class template reverse_iterator
[reverse.iterator]
27.5.1.2
reverse_iterator requirements
[reverse.iter.requirements]
27.5.1.3
reverse_iterator operations
[reverse.iter.ops]
27.5.1.3.1
reverse_iterator constructor
[reverse.iter.cons]
27.5.1.3.2
reverse_iterator::operator=
[reverse.iter.op=]
27.5.1.3.3
Conversion
[reverse.iter.conv]
27.5.1.3.4
operator*
[reverse.iter.op.star]
27.5.1.3.5
operator->
[reverse.iter.opref]
27.5.1.3.6
operator++
[reverse.iter.op++]
27.5.1.3.7
operator--
[reverse.iter.op--]
27.5.1.3.8
operator+
[reverse.iter.op+]
27.5.1.3.9
operator+=
[reverse.iter.op+=]
27.5.1.3.10
operator-
[reverse.iter.op-]
27.5.1.3.11
operator-=
[reverse.iter.op-=]
27.5.1.3.12
operator[]
[reverse.iter.opindex]
27.5.1.3.13
operator==
[reverse.iter.op==]
27.5.1.3.14
operator<
[reverse.iter.op<]
27.5.1.3.15
operator!=
[reverse.iter.op!=]
27.5.1.3.16
operator>
[reverse.iter.op>]
27.5.1.3.17
operator>=
[reverse.iter.op>=]
27.5.1.3.18
operator<=
[reverse.iter.op<=]
27.5.1.3.19
operator-
[reverse.iter.opdiff]
27.5.1.3.20
operator+
[reverse.iter.opsum]
27.5.1.3.21
Non-member function make_reverse_iterator()
[reverse.iter.make]
27.5.2
Insert iterators
[insert.iterators]
27.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
27.5.2.2
back_insert_iterator operations
[back.insert.iter.ops]
27.5.2.2.1
back_insert_iterator constructor
[back.insert.iter.cons]
27.5.2.2.2
back_insert_iterator::operator=
[back.insert.iter.op=]
27.5.2.2.3
back_insert_iterator::operator*
[back.insert.iter.op*]
27.5.2.2.4
back_insert_iterator::operator++
[back.insert.iter.op++]
27.5.2.2.5
back_inserter
[back.inserter]
27.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
27.5.2.4
front_insert_iterator operations
[front.insert.iter.ops]
27.5.2.4.1
front_insert_iterator constructor
[front.insert.iter.cons]
27.5.2.4.2
front_insert_iterator::operator=
[front.insert.iter.op=]
27.5.2.4.3
front_insert_iterator::operator*
[front.insert.iter.op*]
27.5.2.4.4
front_insert_iterator::operator++
[front.insert.iter.op++]
27.5.2.4.5
front_inserter
[front.inserter]
27.5.2.5
Class template insert_iterator
[insert.iterator]
27.5.2.6
insert_iterator operations
[insert.iter.ops]
27.5.2.6.1
insert_iterator constructor
[insert.iter.cons]
27.5.2.6.2
insert_iterator::operator=
[insert.iter.op=]
27.5.2.6.3
insert_iterator::operator*
[insert.iter.op*]
27.5.2.6.4
insert_iterator::operator++
[insert.iter.op++]
27.5.2.6.5
inserter
[inserter]
27.5.3
Move iterators
[move.iterators]
27.5.3.1
Class template move_iterator
[move.iterator]
27.5.3.2
move_iterator requirements
[move.iter.requirements]
27.5.3.3
move_iterator operations
[move.iter.ops]
27.5.3.3.1
move_iterator constructors
[move.iter.op.const]
27.5.3.3.2
move_iterator::operator=
[move.iter.op=]
27.5.3.3.3
move_iterator conversion
[move.iter.op.conv]
27.5.3.3.4
move_iterator::operator*
[move.iter.op.star]
27.5.3.3.5
move_iterator::operator->
[move.iter.op.ref]
27.5.3.3.6
move_iterator::operator++
[move.iter.op.incr]
27.5.3.3.7
move_iterator::operator--
[move.iter.op.decr]
27.5.3.3.8
move_iterator::operator+
[move.iter.op.+]
27.5.3.3.9
move_iterator::operator+=
[move.iter.op.+=]
27.5.3.3.10
move_iterator::operator-
[move.iter.op.-]
27.5.3.3.11
move_iterator::operator-=
[move.iter.op.-=]
27.5.3.3.12
move_iterator::operator[]
[move.iter.op.index]
27.5.3.3.13
move_iterator comparisons
[move.iter.op.comp]
27.5.3.3.14
move_iterator non-member functions
[move.iter.nonmember]
27.6
Stream iterators
[stream.iterators]
27.6.1
Class template istream_iterator
[istream.iterator]
27.6.1.1
istream_iterator constructors and destructor
[istream.iterator.cons]
27.6.1.2
istream_iterator operations
[istream.iterator.ops]
27.6.2
Class template ostream_iterator
[ostream.iterator]
27.6.2.1
ostream_iterator constructors and destructor
[ostream.iterator.cons.des]
27.6.2.2
ostream_iterator operations
[ostream.iterator.ops]
27.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
27.6.3.1
Class template istreambuf_iterator::proxy
[istreambuf.iterator.proxy]
27.6.3.2
istreambuf_iterator constructors
[istreambuf.iterator.cons]
27.6.3.3
istreambuf_iterator operations
[istreambuf.iterator.ops]
27.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
27.6.4.1
ostreambuf_iterator constructors
[ostreambuf.iter.cons]
27.6.4.2
ostreambuf_iterator operations
[ostreambuf.iter.ops]
27.7
Range access
[iterator.range]
27.8
Container access
[iterator.container]
28
Algorithms library
[algorithms]
28.1
General
[algorithms.general]
28.2
Header synopsis
[algorithm.syn]
28.3
Algorithms requirements
[algorithms.requirements]
28.4
Parallel algorithms
[algorithms.parallel]
28.4.1
Terms and definitions
[algorithms.parallel.defns]
28.4.2
Requirements on user-provided function objects
[algorithms.parallel.user]
28.4.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
28.4.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
28.4.5
ExecutionPolicy algorithm overloads
[algorithms.parallel.overloads]
28.5
Non-modifying sequence operations
[alg.nonmodifying]
28.5.1
All of
[alg.all_of]
28.5.2
Any of
[alg.any_of]
28.5.3
None of
[alg.none_of]
28.5.4
For each
[alg.foreach]
28.5.5
Find
[alg.find]
28.5.6
Find end
[alg.find.end]
28.5.7
Find first
[alg.find.first.of]
28.5.8
Adjacent find
[alg.adjacent.find]
28.5.9
Count
[alg.count]
28.5.10
Mismatch
[mismatch]
28.5.11
Equal
[alg.equal]
28.5.12
Is permutation
[alg.is_permutation]
28.5.13
Search
[alg.search]
28.6
Mutating sequence operations
[alg.modifying.operations]
28.6.1
Copy
[alg.copy]
28.6.2
Move
[alg.move]
28.6.3
Swap
[alg.swap]
28.6.4
Transform
[alg.transform]
28.6.5
Replace
[alg.replace]
28.6.6
Fill
[alg.fill]
28.6.7
Generate
[alg.generate]
28.6.8
Remove
[alg.remove]
28.6.9
Unique
[alg.unique]
28.6.10
Reverse
[alg.reverse]
28.6.11
Rotate
[alg.rotate]
28.6.12
Sample
[alg.random.sample]
28.6.13
Shuffle
[alg.random.shuffle]
28.7
Sorting and related operations
[alg.sorting]
28.7.1
Sorting
[alg.sort]
28.7.1.1
sort
[sort]
28.7.1.2
stable_sort
[stable.sort]
28.7.1.3
partial_sort
[partial.sort]
28.7.1.4
partial_sort_copy
[partial.sort.copy]
28.7.1.5
is_sorted
[is.sorted]
28.7.2
Nth element
[alg.nth.element]
28.7.3
Binary search
[alg.binary.search]
28.7.3.1
lower_bound
[lower.bound]
28.7.3.2
upper_bound
[upper.bound]
28.7.3.3
equal_range
[equal.range]
28.7.3.4
binary_search
[binary.search]
28.7.4
Partitions
[alg.partitions]
28.7.5
Merge
[alg.merge]
28.7.6
Set operations on sorted structures
[alg.set.operations]
28.7.6.1
includes
[includes]
28.7.6.2
set_union
[set.union]
28.7.6.3
set_intersection
[set.intersection]
28.7.6.4
set_difference
[set.difference]
28.7.6.5
set_symmetric_difference
[set.symmetric.difference]
28.7.7
Heap operations
[alg.heap.operations]
28.7.7.1
push_heap
[push.heap]
28.7.7.2
pop_heap
[pop.heap]
28.7.7.3
make_heap
[make.heap]
28.7.7.4
sort_heap
[sort.heap]
28.7.7.5
is_heap
[is.heap]
28.7.8
Minimum and maximum
[alg.min.max]
28.7.9
Bounded value
[alg.clamp]
28.7.10
Lexicographical comparison
[alg.lex.comparison]
28.7.11
Permutation generators
[alg.permutation.generators]
28.8
C library algorithms
[alg.c.library]
29
Numerics library
[numerics]
29.1
General
[numerics.general]
29.2
Definitions
[numerics.defns]
29.3
Numeric type requirements
[numeric.requirements]
29.4
The floating-point environment
[cfenv]
29.4.1
Header synopsis
[cfenv.syn]
29.5
Complex numbers
[complex.numbers]
29.5.1
Header synopsis
[complex.syn]
29.5.2
Class template complex
[complex]
29.5.3
complex specializations
[complex.special]
29.5.4
complex member functions
[complex.members]
29.5.5
complex member operators
[complex.member.ops]
29.5.6
complex non-member operations
[complex.ops]
29.5.7
complex value operations
[complex.value.ops]
29.5.8
complex transcendentals
[complex.transcendentals]
29.5.9
Additional overloads
[cmplx.over]
29.5.10
Suffixes for complex number literals
[complex.literals]
29.6
Random number generation
[rand]
29.6.1
Requirements
[rand.req]
29.6.1.1
General requirements
[rand.req.genl]
29.6.1.2
Seed sequence requirements
[rand.req.seedseq]
29.6.1.3
Uniform random bit generator requirements
[rand.req.urng]
29.6.1.4
Random number engine requirements
[rand.req.eng]
29.6.1.5
Random number engine adaptor requirements
[rand.req.adapt]
29.6.1.6
Random number distribution requirements
[rand.req.dist]
29.6.2
Header synopsis
[rand.synopsis]
29.6.3
Random number engine class templates
[rand.eng]
29.6.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
29.6.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
29.6.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
29.6.4
Random number engine adaptor class templates
[rand.adapt]
29.6.4.1
In general
[rand.adapt.general]
29.6.4.2
Class template discard_block_engine
[rand.adapt.disc]
29.6.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
29.6.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
29.6.5
Engines and engine adaptors with predefined parameters
[rand.predef]
29.6.6
Class random_device
[rand.device]
29.6.7
Utilities
[rand.util]
29.6.7.1
Class seed_seq
[rand.util.seedseq]
29.6.7.2
Function template generate_canonical
[rand.util.canonical]
29.6.8
Random number distribution class templates
[rand.dist]
29.6.8.1
In general
[rand.dist.general]
29.6.8.2
Uniform distributions
[rand.dist.uni]
29.6.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
29.6.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
29.6.8.3
Bernoulli distributions
[rand.dist.bern]
29.6.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
29.6.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
29.6.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
29.6.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
29.6.8.4
Poisson distributions
[rand.dist.pois]
29.6.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
29.6.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
29.6.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
29.6.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
29.6.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
29.6.8.5
Normal distributions
[rand.dist.norm]
29.6.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
29.6.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
29.6.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
29.6.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
29.6.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
29.6.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
29.6.8.6
Sampling distributions
[rand.dist.samp]
29.6.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
29.6.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
29.6.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
29.6.9
Low-quality random number generation
[c.math.rand]
29.7
Numeric arrays
[numarray]
29.7.1
Header synopsis
[valarray.syn]
29.7.2
Class template valarray
[template.valarray]
29.7.2.1
Class template valarray overview
[template.valarray.overview]
29.7.2.2
valarray constructors
[valarray.cons]
29.7.2.3
valarray assignment
[valarray.assign]
29.7.2.4
valarray element access
[valarray.access]
29.7.2.5
valarray subset operations
[valarray.sub]
29.7.2.6
valarray unary operators
[valarray.unary]
29.7.2.7
valarray compound assignment
[valarray.cassign]
29.7.2.8
valarray member functions
[valarray.members]
29.7.3
valarray non-member operations
[valarray.nonmembers]
29.7.3.1
valarray binary operators
[valarray.binary]
29.7.3.2
valarray logical operators
[valarray.comparison]
29.7.3.3
valarray transcendentals
[valarray.transcend]
29.7.3.4
valarray specialized algorithms
[valarray.special]
29.7.4
Class slice
[class.slice]
29.7.4.1
Class slice overview
[class.slice.overview]
29.7.4.2
slice constructors
[cons.slice]
29.7.4.3
slice access functions
[slice.access]
29.7.5
Class template slice_array
[template.slice.array]
29.7.5.1
Class template slice_array overview
[template.slice.array.overview]
29.7.5.2
slice_array assignment
[slice.arr.assign]
29.7.5.3
slice_array compound assignment
[slice.arr.comp.assign]
29.7.5.4
slice_array fill function
[slice.arr.fill]
29.7.6
The gslice class
[class.gslice]
29.7.6.1
The gslice class overview
[class.gslice.overview]
29.7.6.2
gslice constructors
[gslice.cons]
29.7.6.3
gslice access functions
[gslice.access]
29.7.7
Class template gslice_array
[template.gslice.array]
29.7.7.1
Class template gslice_array overview
[template.gslice.array.overview]
29.7.7.2
gslice_array assignment
[gslice.array.assign]
29.7.7.3
gslice_array compound assignment
[gslice.array.comp.assign]
29.7.7.4
gslice_array fill function
[gslice.array.fill]
29.7.8
Class template mask_array
[template.mask.array]
29.7.8.1
Class template mask_array overview
[template.mask.array.overview]
29.7.8.2
mask_array assignment
[mask.array.assign]
29.7.8.3
mask_array compound assignment
[mask.array.comp.assign]
29.7.8.4
mask_array fill function
[mask.array.fill]
29.7.9
Class template indirect_array
[template.indirect.array]
29.7.9.1
Class template indirect_array overview
[template.indirect.array.overview]
29.7.9.2
indirect_array assignment
[indirect.array.assign]
29.7.9.3
indirect_array compound assignment
[indirect.array.comp.assign]
29.7.9.4
indirect_array fill function
[indirect.array.fill]
29.7.10
valarray range access
[valarray.range]
29.8
Generalized numeric operations
[numeric.ops]
29.8.1
Header synopsis
[numeric.ops.overview]
29.8.2
Accumulate
[accumulate]
29.8.3
Reduce
[reduce]
29.8.4
Inner product
[inner.product]
29.8.5
Transform reduce
[transform.reduce]
29.8.6
Partial sum
[partial.sum]
29.8.7
Exclusive scan
[exclusive.scan]
29.8.8
Inclusive scan
[inclusive.scan]
29.8.9
Transform exclusive scan
[transform.exclusive.scan]
29.8.10
Transform inclusive scan
[transform.inclusive.scan]
29.8.11
Adjacent difference
[adjacent.difference]
29.8.12
Iota
[numeric.iota]
29.8.13
Greatest common divisor
[numeric.ops.gcd]
29.8.14
Least common multiple
[numeric.ops.lcm]
29.9
Mathematical functions for floating-point types
[c.math]
29.9.1
Header synopsis
[cmath.syn]
29.9.2
Absolute values
[c.math.abs]
29.9.3
Three-dimensional hypotenuse
[c.math.hypot3]
29.9.4
Classification / comparison functions
[c.math.fpclass]
29.9.5
Mathematical special functions
[sf.cmath]
29.9.5.1
Associated Laguerre polynomials
[sf.cmath.assoc_laguerre]
29.9.5.2
Associated Legendre functions
[sf.cmath.assoc_legendre]
29.9.5.3
Beta function
[sf.cmath.beta]
29.9.5.4
Complete elliptic integral of the first kind
[sf.cmath.comp_ellint_1]
29.9.5.5
Complete elliptic integral of the second kind
[sf.cmath.comp_ellint_2]
29.9.5.6
Complete elliptic integral of the third kind
[sf.cmath.comp_ellint_3]
29.9.5.7
Regular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_i]
29.9.5.8
Cylindrical Bessel functions of the first kind
[sf.cmath.cyl_bessel_j]
29.9.5.9
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl_bessel_k]
29.9.5.10
Cylindrical Neumann functions
[sf.cmath.cyl_neumann]
29.9.5.11
Incomplete elliptic integral of the first kind
[sf.cmath.ellint_1]
29.9.5.12
Incomplete elliptic integral of the second kind
[sf.cmath.ellint_2]
29.9.5.13
Incomplete elliptic integral of the third kind
[sf.cmath.ellint_3]
29.9.5.14
Exponential integral
[sf.cmath.expint]
29.9.5.15
Hermite polynomials
[sf.cmath.hermite]
29.9.5.16
Laguerre polynomials
[sf.cmath.laguerre]
29.9.5.17
Legendre polynomials
[sf.cmath.legendre]
29.9.5.18
Riemann zeta function
[sf.cmath.riemann_zeta]
29.9.5.19
Spherical Bessel functions of the first kind
[sf.cmath.sph_bessel]
29.9.5.20
Spherical associated Legendre functions
[sf.cmath.sph_legendre]
29.9.5.21
Spherical Neumann functions
[sf.cmath.sph_neumann]
30
Input/output library
[input.output]
30.1
General
[input.output.general]
30.2
Iostreams requirements
[iostreams.requirements]
30.2.1
Imbue limitations
[iostream.limits.imbue]
30.2.2
Positioning type limitations
[iostreams.limits.pos]
30.2.3
Thread safety
[iostreams.threadsafety]
30.3
Forward declarations
[iostream.forward]
30.3.1
Header synopsis
[iosfwd.syn]
30.3.2
Overview
[iostream.forward.overview]
30.4
Standard iostream objects
[iostream.objects]
30.4.1
Header synopsis
[iostream.syn]
30.4.2
Overview
[iostream.objects.overview]
30.4.3
Narrow stream objects
[narrow.stream.objects]
30.4.4
Wide stream objects
[wide.stream.objects]
30.5
Iostreams base classes
[iostreams.base]
30.5.1
Header synopsis
[ios.syn]
30.5.2
Types
[stream.types]
30.5.3
Class ios_base
[ios.base]
30.5.3.1
Types
[ios.types]
30.5.3.1.1
Class ios_base::failure
[ios::failure]
30.5.3.1.2
Type ios_base::fmtflags
[ios::fmtflags]
30.5.3.1.3
Type ios_base::iostate
[ios::iostate]
30.5.3.1.4
Type ios_base::openmode
[ios::openmode]
30.5.3.1.5
Type ios_base::seekdir
[ios::seekdir]
30.5.3.1.6
Class ios_base::Init
[ios::Init]
30.5.3.2
ios_base state functions
[fmtflags.state]
30.5.3.3
ios_base functions
[ios.base.locales]
30.5.3.4
ios_base static members
[ios.members.static]
30.5.3.5
ios_base storage functions
[ios.base.storage]
30.5.3.6
ios_base callbacks
[ios.base.callback]
30.5.3.7
ios_base constructors/destructor
[ios.base.cons]
30.5.4
Class template fpos
[fpos]
30.5.4.1
fpos members
[fpos.members]
30.5.4.2
fpos requirements
[fpos.operations]
30.5.5
Class template basic_ios
[ios]
30.5.5.1
Overview
[ios.overview]
30.5.5.2
basic_ios constructors
[basic.ios.cons]
30.5.5.3
Member functions
[basic.ios.members]
30.5.5.4
basic_ios flags functions
[iostate.flags]
30.5.6
ios_base manipulators
[std.ios.manip]
30.5.6.1
fmtflags manipulators
[fmtflags.manip]
30.5.6.2
adjustfield manipulators
[adjustfield.manip]
30.5.6.3
basefield manipulators
[basefield.manip]
30.5.6.4
floatfield manipulators
[floatfield.manip]
30.5.6.5
Error reporting
[error.reporting]
30.6
Stream buffers
[stream.buffers]
30.6.1
Header synopsis
[streambuf.syn]
30.6.2
Stream buffer requirements
[streambuf.reqts]
30.6.3
Class template basic_streambuf
[streambuf]
30.6.3.1
basic_streambuf constructors
[streambuf.cons]
30.6.3.2
basic_streambuf public member functions
[streambuf.members]
30.6.3.2.1
Locales
[streambuf.locales]
30.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
30.6.3.2.3
Get area
[streambuf.pub.get]
30.6.3.2.4
Putback
[streambuf.pub.pback]
30.6.3.2.5
Put area
[streambuf.pub.put]
30.6.3.3
basic_streambuf protected member functions
[streambuf.protected]
30.6.3.3.1
Assignment
[streambuf.assign]
30.6.3.3.2
Get area access
[streambuf.get.area]
30.6.3.3.3
Put area access
[streambuf.put.area]
30.6.3.4
basic_streambuf virtual functions
[streambuf.virtuals]
30.6.3.4.1
Locales
[streambuf.virt.locales]
30.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
30.6.3.4.3
Get area
[streambuf.virt.get]
30.6.3.4.4
Putback
[streambuf.virt.pback]
30.6.3.4.5
Put area
[streambuf.virt.put]
30.7
Formatting and manipulators
[iostream.format]
30.7.1
Header synopsis
[istream.syn]
30.7.2
Header synopsis
[ostream.syn]
30.7.3
Header synopsis
[iomanip.syn]
30.7.4
Input streams
[input.streams]
30.7.4.1
Class template basic_istream
[istream]
30.7.4.1.1
basic_istream constructors
[istream.cons]
30.7.4.1.2
Class basic_istream assign and swap
[istream.assign]
30.7.4.1.3
Class basic_istream::sentry
[istream::sentry]
30.7.4.2
Formatted input functions
[istream.formatted]
30.7.4.2.1
Common requirements
[istream.formatted.reqmts]
30.7.4.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
30.7.4.2.3
basic_istream::operator>>
[istream.extractors]
30.7.4.3
Unformatted input functions
[istream.unformatted]
30.7.4.4
Standard basic_istream manipulators
[istream.manip]
30.7.4.5
Rvalue stream extraction
[istream.rvalue]
30.7.4.6
Class template basic_iostream
[iostreamclass]
30.7.4.6.1
basic_iostream constructors
[iostream.cons]
30.7.4.6.2
basic_iostream destructor
[iostream.dest]
30.7.4.6.3
basic_iostream assign and swap
[iostream.assign]
30.7.5
Output streams
[output.streams]
30.7.5.1
Class template basic_ostream
[ostream]
30.7.5.1.1
basic_ostream constructors
[ostream.cons]
30.7.5.1.2
Class basic_ostream assign and swap
[ostream.assign]
30.7.5.1.3
Class basic_ostream::sentry
[ostream::sentry]
30.7.5.1.4
basic_ostream seek members
[ostream.seeks]
30.7.5.2
Formatted output functions
[ostream.formatted]
30.7.5.2.1
Common requirements
[ostream.formatted.reqmts]
30.7.5.2.2
Arithmetic inserters
[ostream.inserters.arithmetic]
30.7.5.2.3
basic_ostream::operator<<
[ostream.inserters]
30.7.5.2.4
Character inserter function templates
[ostream.inserters.character]
30.7.5.3
Unformatted output functions
[ostream.unformatted]
30.7.5.4
Standard basic_ostream manipulators
[ostream.manip]
30.7.5.5
Rvalue stream insertion
[ostream.rvalue]
30.7.6
Standard manipulators
[std.manip]
30.7.7
Extended manipulators
[ext.manip]
30.7.8
Quoted manipulators
[quoted.manip]
30.8
String-based streams
[string.streams]
30.8.1
Header synopsis
[sstream.syn]
30.8.2
Class template basic_stringbuf
[stringbuf]
30.8.2.1
basic_stringbuf constructors
[stringbuf.cons]
30.8.2.2
Assign and swap
[stringbuf.assign]
30.8.2.3
Member functions
[stringbuf.members]
30.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
30.8.3
Class template basic_istringstream
[istringstream]
30.8.3.1
basic_istringstream constructors
[istringstream.cons]
30.8.3.2
Assign and swap
[istringstream.assign]
30.8.3.3
Member functions
[istringstream.members]
30.8.4
Class template basic_ostringstream
[ostringstream]
30.8.4.1
basic_ostringstream constructors
[ostringstream.cons]
30.8.4.2
Assign and swap
[ostringstream.assign]
30.8.4.3
Member functions
[ostringstream.members]
30.8.5
Class template basic_stringstream
[stringstream]
30.8.5.1
basic_stringstream constructors
[stringstream.cons]
30.8.5.2
Assign and swap
[stringstream.assign]
30.8.5.3
Member functions
[stringstream.members]
30.9
File-based streams
[file.streams]
30.9.1
Header synopsis
[fstream.syn]
30.9.2
Class template basic_filebuf
[filebuf]
30.9.2.1
basic_filebuf constructors
[filebuf.cons]
30.9.2.2
Assign and swap
[filebuf.assign]
30.9.2.3
Member functions
[filebuf.members]
30.9.2.4
Overridden virtual functions
[filebuf.virtuals]
30.9.3
Class template basic_ifstream
[ifstream]
30.9.3.1
basic_ifstream constructors
[ifstream.cons]
30.9.3.2
Assign and swap
[ifstream.assign]
30.9.3.3
Member functions
[ifstream.members]
30.9.4
Class template basic_ofstream
[ofstream]
30.9.4.1
basic_ofstream constructors
[ofstream.cons]
30.9.4.2
Assign and swap
[ofstream.assign]
30.9.4.3
Member functions
[ofstream.members]
30.9.5
Class template basic_fstream
[fstream]
30.9.5.1
basic_fstream constructors
[fstream.cons]
30.9.5.2
Assign and swap
[fstream.assign]
30.9.5.3
Member functions
[fstream.members]
30.10
File systems
[filesystems]
30.10.1
General
[fs.general]
30.10.2
Conformance
[fs.conformance]
30.10.2.1
POSIX conformance
[fs.conform.9945]
30.10.2.2
Operating system dependent behavior conformance
[fs.conform.os]
30.10.2.3
File system race behavior
[fs.race.behavior]
30.10.3
Normative references
[fs.norm.ref]
30.10.4
Terms and definitions
[fs.definitions]
30.10.4.1
absolute path
[fs.def.absolute.path]
30.10.4.2
directory
[fs.def.directory]
30.10.4.3
file
[fs.def.file]
30.10.4.4
file system
[fs.def.filesystem]
30.10.4.5
file system race
[fs.def.race]
30.10.4.6
filename
[fs.def.filename]
30.10.4.7
hard link
[fs.def.hardlink]
30.10.4.8
link
[fs.def.link]
30.10.4.9
native encoding
[fs.def.native.encode]
30.10.4.10
native pathname format
[fs.def.native]
30.10.4.11
normal form
[fs.def.normal.form]
30.10.4.12
operating system dependent behavior
[fs.def.osdep]
30.10.4.13
parent directory
[fs.def.parent]
30.10.4.14
parent directory
[fs.def.parent.other]
30.10.4.15
path
[fs.def.path]
30.10.4.16
pathname
[fs.def.pathname]
30.10.4.17
pathname resolution
[fs.def.pathres]
30.10.4.18
relative path
[fs.def.rel.path]
30.10.4.19
symbolic link
[fs.def.symlink]
30.10.5
Requirements
[fs.req]
30.10.5.1
Namespaces and headers
[fs.req.namespace]
30.10.6
Header synopsis
[fs.filesystem.syn]
30.10.7
Error reporting
[fs.err.report]
30.10.8
Class path
[fs.class.path]
30.10.8.1
Generic pathname format
[fs.path.generic]
30.10.8.2
path conversions
[fs.path.cvt]
30.10.8.2.1
path argument format conversions
[fs.path.fmt.cvt]
30.10.8.2.2
path type and encoding conversions
[fs.path.type.cvt]
30.10.8.3
path requirements
[fs.path.req]
30.10.8.4
path members
[fs.path.member]
30.10.8.4.1
path constructors
[fs.path.construct]
30.10.8.4.2
path assignments
[fs.path.assign]
30.10.8.4.3
path appends
[fs.path.append]
30.10.8.4.4
path concatenation
[fs.path.concat]
30.10.8.4.5
path modifiers
[fs.path.modifiers]
30.10.8.4.6
path native format observers
[fs.path.native.obs]
30.10.8.4.7
path generic format observers
[fs.path.generic.obs]
30.10.8.4.8
path compare
[fs.path.compare]
30.10.8.4.9
path decomposition
[fs.path.decompose]
30.10.8.4.10
path query
[fs.path.query]
30.10.8.4.11
path generation
[fs.path.gen]
30.10.8.5
path iterators
[fs.path.itr]
30.10.8.6
path non-member functions
[fs.path.nonmember]
30.10.8.6.1
path inserter and extractor
[fs.path.io]
30.10.8.6.2
path factory functions
[fs.path.factory]
30.10.9
Class filesystem_error
[fs.class.filesystem_error]
30.10.9.1
filesystem_error members
[filesystem_error.members]
30.10.10
Enumerations
[fs.enum]
30.10.10.1
Enum path::format
[fs.enum.path.format]
30.10.10.2
Enum class file_type
[fs.enum.file_type]
30.10.10.3
Enum class copy_options
[fs.enum.copy.opts]
30.10.10.4
Enum class perms
[fs.enum.perms]
30.10.10.5
Enum class perm_options
[fs.enum.perm.opts]
30.10.10.6
Enum class directory_options
[fs.enum.dir.opts]
30.10.11
Class file_status
[fs.class.file_status]
30.10.11.1
file_status constructors
[fs.file_status.cons]
30.10.11.2
file_status observers
[fs.file_status.obs]
30.10.11.3
file_status modifiers
[fs.file_status.mods]
30.10.12
Class directory_entry
[fs.class.directory_entry]
30.10.12.1
directory_entry constructors
[fs.dir.entry.cons]
30.10.12.2
directory_entry modifiers
[fs.dir.entry.mods]
30.10.12.3
directory_entry observers
[fs.dir.entry.obs]
30.10.13
Class directory_iterator
[fs.class.directory_iterator]
30.10.13.1
directory_iterator members
[fs.dir.itr.members]
30.10.13.2
directory_iterator non-member functions
[fs.dir.itr.nonmembers]
30.10.14
Class recursive_directory_iterator
[fs.class.rec.dir.itr]
30.10.14.1
recursive_directory_iterator members
[fs.rec.dir.itr.members]
30.10.14.2
recursive_directory_iterator non-member functions
[fs.rec.dir.itr.nonmembers]
30.10.15
Filesystem operation functions
[fs.op.funcs]
30.10.15.1
Absolute
[fs.op.absolute]
30.10.15.2
Canonical
[fs.op.canonical]
30.10.15.3
Copy
[fs.op.copy]
30.10.15.4
Copy file
[fs.op.copy_file]
30.10.15.5
Copy symlink
[fs.op.copy_symlink]
30.10.15.6
Create directories
[fs.op.create_directories]
30.10.15.7
Create directory
[fs.op.create_directory]
30.10.15.8
Create directory symlink
[fs.op.create_dir_symlk]
30.10.15.9
Create hard link
[fs.op.create_hard_lk]
30.10.15.10
Create symlink
[fs.op.create_symlink]
30.10.15.11
Current path
[fs.op.current_path]
30.10.15.12
Equivalent
[fs.op.equivalent]
30.10.15.13
Exists
[fs.op.exists]
30.10.15.14
File size
[fs.op.file_size]
30.10.15.15
Hard link count
[fs.op.hard_lk_ct]
30.10.15.16
Is block file
[fs.op.is_block_file]
30.10.15.17
Is character file
[fs.op.is_char_file]
30.10.15.18
Is directory
[fs.op.is_directory]
30.10.15.19
Is empty
[fs.op.is_empty]
30.10.15.20
Is fifo
[fs.op.is_fifo]
30.10.15.21
Is other
[fs.op.is_other]
30.10.15.22
Is regular file
[fs.op.is_regular_file]
30.10.15.23
Is socket
[fs.op.is_socket]
30.10.15.24
Is symlink
[fs.op.is_symlink]
30.10.15.25
Last write time
[fs.op.last_write_time]
30.10.15.26
Permissions
[fs.op.permissions]
30.10.15.27
Proximate
[fs.op.proximate]
30.10.15.28
Read symlink
[fs.op.read_symlink]
30.10.15.29
Relative
[fs.op.relative]
30.10.15.30
Remove
[fs.op.remove]
30.10.15.31
Remove all
[fs.op.remove_all]
30.10.15.32
Rename
[fs.op.rename]
30.10.15.33
Resize file
[fs.op.resize_file]
30.10.15.34
Space
[fs.op.space]
30.10.15.35
Status
[fs.op.status]
30.10.15.36
Status known
[fs.op.status_known]
30.10.15.37
Symlink status
[fs.op.symlink_status]
30.10.15.38
Temporary directory path
[fs.op.temp_dir_path]
30.10.15.39
Weakly canonical
[fs.op.weakly_canonical]
30.11
C library files
[c.files]
30.11.1
Header synopsis
[cstdio.syn]
30.11.2
Header synopsis
[cinttypes.syn]
31
Regular expressions library
[re]
31.1
General
[re.general]
31.2
Definitions
[re.def]
31.2.1
collating element
[defns.regex.collating.element]
31.2.2
finite state machine
[defns.regex.finite.state.machine]
31.2.3
format specifier
[defns.regex.format.specifier]
31.2.4
matched
[defns.regex.matched]
31.2.5
primary equivalence class
[defns.regex.primary.equivalence.class]
31.2.6
regular expression
[defns.regex.regular.expression]
31.2.7
sub-expression
[defns.regex.subexpression]
31.3
Requirements
[re.req]
31.4
Header synopsis
[re.syn]
31.5
Namespace std::regex_constants
[re.const]
31.5.1
Bitmask type syntax_option_type
[re.synopt]
31.5.2
Bitmask type match_flag_type
[re.matchflag]
31.5.3
Implementation-defined error_type
[re.err]
31.6
Class regex_error
[re.badexp]
31.7
Class template regex_traits
[re.traits]
31.8
Class template basic_regex
[re.regex]
31.8.1
basic_regex constants
[re.regex.const]
31.8.2
basic_regex constructors
[re.regex.construct]
31.8.3
basic_regex assign
[re.regex.assign]
31.8.4
basic_regex constant operations
[re.regex.operations]
31.8.5
basic_regex locale
[re.regex.locale]
31.8.6
basic_regex swap
[re.regex.swap]
31.8.7
basic_regex non-member functions
[re.regex.nonmemb]
31.8.7.1
basic_regex non-member swap
[re.regex.nmswap]
31.9
Class template sub_match
[re.submatch]
31.9.1
sub_match members
[re.submatch.members]
31.9.2
sub_match non-member operators
[re.submatch.op]
31.10
Class template match_results
[re.results]
31.10.1
match_results constructors
[re.results.const]
31.10.2
match_results state
[re.results.state]
31.10.3
match_results size
[re.results.size]
31.10.4
match_results element access
[re.results.acc]
31.10.5
match_results formatting
[re.results.form]
31.10.6
match_results allocator
[re.results.all]
31.10.7
match_results swap
[re.results.swap]
31.10.8
match_results non-member functions
[re.results.nonmember]
31.11
Regular expression algorithms
[re.alg]
31.11.1
Exceptions
[re.except]
31.11.2
regex_match
[re.alg.match]
31.11.3
regex_search
[re.alg.search]
31.11.4
regex_replace
[re.alg.replace]
31.12
Regular expression iterators
[re.iter]
31.12.1
Class template regex_iterator
[re.regiter]
31.12.1.1
regex_iterator constructors
[re.regiter.cnstr]
31.12.1.2
regex_iterator comparisons
[re.regiter.comp]
31.12.1.3
regex_iterator indirection
[re.regiter.deref]
31.12.1.4
regex_iterator increment
[re.regiter.incr]
31.12.2
Class template regex_token_iterator
[re.tokiter]
31.12.2.1
regex_token_iterator constructors
[re.tokiter.cnstr]
31.12.2.2
regex_token_iterator comparisons
[re.tokiter.comp]
31.12.2.3
regex_token_iterator indirection
[re.tokiter.deref]
31.12.2.4
regex_token_iterator increment
[re.tokiter.incr]
31.13
Modified ECMAScript regular expression grammar
[re.grammar]
32
Atomic operations library
[atomics]
32.1
General
[atomics.general]
32.2
Header synopsis
[atomics.syn]
32.3
Type aliases
[atomics.alias]
32.4
Order and consistency
[atomics.order]
32.5
Lock-free property
[atomics.lockfree]
32.6
Class template atomic
[atomics.types.generic]
32.6.1
Operations on atomic types
[atomics.types.operations]
32.6.2
Specializations for integers
[atomics.types.int]
32.6.3
Partial specialization for pointers
[atomics.types.pointer]
32.6.4
Member operators common to integers and pointers to objects
[atomics.types.memop]
32.7
Non-member functions
[atomics.nonmembers]
32.8
Flag type and operations
[atomics.flag]
32.9
Fences
[atomics.fences]
33
Thread support library
[thread]
33.1
General
[thread.general]
33.2
Requirements
[thread.req]
33.2.1
Template parameter names
[thread.req.paramname]
33.2.2
Exceptions
[thread.req.exception]
33.2.3
Native handles
[thread.req.native]
33.2.4
Timing specifications
[thread.req.timing]
33.2.5
Requirements for Lockable types
[thread.req.lockable]
33.2.5.1
In general
[thread.req.lockable.general]
33.2.5.2
BasicLockable requirements
[thread.req.lockable.basic]
33.2.5.3
Lockable requirements
[thread.req.lockable.req]
33.2.5.4
TimedLockable requirements
[thread.req.lockable.timed]
33.2.6
decay_copy
[thread.decaycopy]
33.3
Threads
[thread.threads]
33.3.1
Header synopsis
[thread.syn]
33.3.2
Class thread
[thread.thread.class]
33.3.2.1
Class thread::id
[thread.thread.id]
33.3.2.2
thread constructors
[thread.thread.constr]
33.3.2.3
thread destructor
[thread.thread.destr]
33.3.2.4
thread assignment
[thread.thread.assign]
33.3.2.5
thread members
[thread.thread.member]
33.3.2.6
thread static members
[thread.thread.static]
33.3.2.7
thread specialized algorithms
[thread.thread.algorithm]
33.3.3
Namespace this_thread
[thread.thread.this]
33.4
Mutual exclusion
[thread.mutex]
33.4.1
Header synopsis
[mutex.syn]
33.4.2
Header synopsis
[shared_mutex.syn]
33.4.3
Mutex requirements
[thread.mutex.requirements]
33.4.3.1
In general
[thread.mutex.requirements.general]
33.4.3.2
Mutex types
[thread.mutex.requirements.mutex]
33.4.3.2.1
Class mutex
[thread.mutex.class]
33.4.3.2.2
Class recursive_mutex
[thread.mutex.recursive]
33.4.3.3
Timed mutex types
[thread.timedmutex.requirements]
33.4.3.3.1
Class timed_mutex
[thread.timedmutex.class]
33.4.3.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
33.4.3.4
Shared mutex types
[thread.sharedmutex.requirements]
33.4.3.4.1
Class shared_mutex
[thread.sharedmutex.class]
33.4.3.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
33.4.3.5.1
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
33.4.4
Locks
[thread.lock]
33.4.4.1
Class template lock_guard
[thread.lock.guard]
33.4.4.2
Class template scoped_lock
[thread.lock.scoped]
33.4.4.3
Class template unique_lock
[thread.lock.unique]
33.4.4.3.1
unique_lock constructors, destructor, and assignment
[thread.lock.unique.cons]
33.4.4.3.2
unique_lock locking
[thread.lock.unique.locking]
33.4.4.3.3
unique_lock modifiers
[thread.lock.unique.mod]
33.4.4.3.4
unique_lock observers
[thread.lock.unique.obs]
33.4.4.4
Class template shared_lock
[thread.lock.shared]
33.4.4.4.1
shared_lock constructors, destructor, and assignment
[thread.lock.shared.cons]
33.4.4.4.2
shared_lock locking
[thread.lock.shared.locking]
33.4.4.4.3
shared_lock modifiers
[thread.lock.shared.mod]
33.4.4.4.4
shared_lock observers
[thread.lock.shared.obs]
33.4.5
Generic locking algorithms
[thread.lock.algorithm]
33.4.6
Call once
[thread.once]
33.4.6.1
Struct once_flag
[thread.once.onceflag]
33.4.6.2
Function call_once
[thread.once.callonce]
33.5
Condition variables
[thread.condition]
33.5.1
Header synopsis
[condition_variable.syn]
33.5.2
Non-member functions
[thread.condition.nonmember]
33.5.3
Class condition_variable
[thread.condition.condvar]
33.5.4
Class condition_variable_any
[thread.condition.condvarany]
33.6
Futures
[futures]
33.6.1
Overview
[futures.overview]
33.6.2
Header synopsis
[future.syn]
33.6.3
Error handling
[futures.errors]
33.6.4
Class future_error
[futures.future_error]
33.6.5
Shared state
[futures.state]
33.6.6
Class template promise
[futures.promise]
33.6.7
Class template future
[futures.unique_future]
33.6.8
Class template shared_future
[futures.shared_future]
33.6.9
Function template async
[futures.async]
33.6.10
Class template packaged_task
[futures.task]
33.6.10.1
packaged_task member functions
[futures.task.members]
33.6.10.2
packaged_task globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basic concepts
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Declarators
[gram.decl]
A.8
Classes
[gram.class]
A.9
Derived classes
[gram.derived]
A.10
Special member functions
[gram.special]
A.11
Overloading
[gram.over]
A.12
Templates
[gram.temp]
A.13
Exception handling
[gram.except]
A.14
Preprocessing directives
[gram.cpp]
Annex B (informative)
Implementation quantities
[implimits]
Annex C (informative)
Compatibility
[diff]
C.1
C++ and ISO C
[diff.iso]
C.1.1
Clause [lex]: lexical conventions
[diff.lex]
C.1.2
Clause [basic]: basic concepts
[diff.basic]
C.1.3
Clause [conv]: standard conversions
[diff.conv]
C.1.4
Clause [expr]: expressions
[diff.expr]
C.1.5
Clause [stmt.stmt]: statements
[diff.stat]
C.1.6
Clause [dcl.dcl]: declarations
[diff.dcl]
C.1.7
Clause [dcl.decl]: declarators
[diff.decl]
C.1.8
Clause [class]: classes
[diff.class]
C.1.9
Clause [special]: special member functions
[diff.special]
C.1.10
Clause [cpp]: preprocessing directives
[diff.cpp]
C.2
C++ and ISO C++ 2003
[diff.cpp03]
C.2.1
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.2.2
Clause [conv]: standard conversions
[diff.cpp03.conv]
C.2.3
Clause [expr]: expressions
[diff.cpp03.expr]
C.2.4
Clause [dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.2.5
Clause [dcl.decl]: declarators
[diff.cpp03.dcl.decl]
C.2.6
Clause [special]: special member functions
[diff.cpp03.special]
C.2.7
Clause [temp]: templates
[diff.cpp03.temp]
C.2.8
Clause [library]: library introduction
[diff.cpp03.library]
C.2.9
Clause [language.support]: language support library
[diff.cpp03.language.support]
C.2.10
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.2.11
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.2.12
Clause [strings]: strings library
[diff.cpp03.strings]
C.2.13
Clause [containers]: containers library
[diff.cpp03.containers]
C.2.14
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.2.15
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.2.16
Clause [input.output]: input/output library
[diff.cpp03.input.output]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
Clause [lex]: lexical conventions
[diff.cpp11.lex]
C.3.2
Clause [basic]: basic concepts
[diff.cpp11.basic]
C.3.3
Clause [expr]: expressions
[diff.cpp11.expr]
C.3.4
Clause [dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.5
Clause [dcl.decl]: declarators
[diff.cpp11.dcl.decl]
C.3.6
Clause [library]: library introduction
[diff.cpp11.library]
C.3.7
Clause [input.output]: input/output library
[diff.cpp11.input.output]
C.4
C++ and ISO C++ 2014
[diff.cpp14]
C.4.1
Clause [lex]: lexical conventions
[diff.cpp14.lex]
C.4.2
Clause [expr]: expressions
[diff.cpp14.expr]
C.4.3
Clause [dcl.dcl]: declarations
[diff.cpp14.dcl.dcl]
C.4.4
Clause [dcl.decl]: declarators
[diff.cpp14.decl]
C.4.5
Clause [special]: special member functions
[diff.cpp14.special]
C.4.6
Clause [temp]: templates
[diff.cpp14.temp]
C.4.7
Clause [except]: exception handling
[diff.cpp14.except]
C.4.8
Clause [library]: library introduction
[diff.cpp14.library]
C.4.9
Clause [utilities]: general utilities library
[diff.cpp14.utilities]
C.4.10
Clause [strings]: strings library
[diff.cpp14.string]
C.4.11
Clause [containers]: containers library
[diff.cpp14.containers]
C.4.12
Annex [depr]: compatibility features
[diff.cpp14.depr]
C.5
C standard library
[diff.library]
C.5.1
Modifications to headers
[diff.mods.to.headers]
C.5.2
Modifications to definitions
[diff.mods.to.definitions]
C.5.2.1
Types char16_t and char32_t
[diff.char16]
C.5.2.2
Type wchar_t
[diff.wchar.t]
C.5.2.3
Header
[diff.header.assert.h]
C.5.2.4
Header
[diff.header.iso646.h]
C.5.2.5
Header
[diff.header.stdalign.h]
C.5.2.6
Header
[diff.header.stdbool.h]
C.5.2.7
Macro NULL
[diff.null]
C.5.3
Modifications to declarations
[diff.mods.to.declarations]
C.5.4
Modifications to behavior
[diff.mods.to.behavior]
C.5.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.5.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
D.1
Redeclaration of static constexpr data members
[depr.static_constexpr]
D.2
Implicit declaration of copy functions
[depr.impldec]
D.3
Deprecated exception specifications
[depr.except.spec]
D.4
C++standard library headers
[depr.cpp.headers]
D.4.1
Header synopsis
[depr.ccomplex.syn]
D.4.2
Header synopsis
[depr.cstdalign.syn]
D.4.3
Header synopsis
[depr.cstdbool.syn]
D.4.4
Header synopsis
[depr.ctgmath.syn]
D.5
C standard library headers
[depr.c.headers]
D.6
char* streams
[depr.str.strstreams]
D.6.1
Class strstreambuf
[depr.strstreambuf]
D.6.1.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.6.1.2
Member functions
[depr.strstreambuf.members]
D.6.1.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.6.2
Class istrstream
[depr.istrstream]
D.6.2.1
istrstream constructors
[depr.istrstream.cons]
D.6.2.2
Member functions
[depr.istrstream.members]
D.6.3
Class ostrstream
[depr.ostrstream]
D.6.3.1
ostrstream constructors
[depr.ostrstream.cons]
D.6.3.2
Member functions
[depr.ostrstream.members]
D.6.4
Class strstream
[depr.strstream]
D.6.4.1
strstream constructors
[depr.strstream.cons]
D.6.4.2
strstream destructor
[depr.strstream.dest]
D.6.4.3
strstream operations
[depr.strstream.oper]
D.7
uncaught_exception
[depr.uncaught]
D.8
Old adaptable function bindings
[depr.func.adaptor.binding]
D.8.1
Weak result types
[depr.weak.result_type]
D.8.2
Typedefs to support function binders
[depr.func.adaptor.typedefs]
D.8.3
Negators
[depr.negators]
D.9
The default allocator
[depr.default.allocator]
D.10
Raw storage iterator
[depr.storage.iterator]
D.11
Temporary buffers
[depr.temporary.buffer]
D.12
Deprecated type traits
[depr.meta.types]
D.13
Deprecated iterator primitives
[depr.iterator.primitives]
D.13.1
Basic iterator
[depr.iterator.basic]
D.14
Deprecated shared_ptr observers
[depr.util.smartptr.shared.obs]
D.15
Deprecated standard code conversion facets
[depr.locale.stdcvt]
D.15.1
Header synopsis
[depr.codecvt.syn]
D.15.2
Requirements
[depr.locale.stdcvt.req]
D.16
Deprecated convenience conversion interfaces
[depr.conversions]
D.16.1
Class template wstring_convert
[depr.conversions.string]
D.16.2
Class template wbuffer_convert
[depr.conversions.buffer]
C++20⁻ (N4861)
1
Scope
[intro.scope]
2
Normative references
[intro.refs]
3
Terms and definitions
[intro.defs]
3.1
access
[defns.access]
3.2
argument
[defns.argument]
3.3
argument
[defns.argument.macro]
3.4
argument
[defns.argument.throw]
3.5
argument
[defns.argument.templ]
3.6
block
[defns.block]
3.7
block
[defns.block.stmt]
3.8
conditionally-supported
[defns.cond.supp]
3.9
diagnostic message
[defns.diagnostic]
3.10
dynamic type
[defns.dynamic.type]
3.11
dynamic type
[defns.dynamic.type.prvalue]
3.12
ill-formed program
[defns.ill.formed]
3.13
implementation-defined behavior
[defns.impl.defined]
3.14
implementation limits
[defns.impl.limits]
3.15
locale-specific behavior
[defns.locale.specific]
3.16
multibyte character
[defns.multibyte]
3.17
parameter
[defns.parameter]
3.18
parameter
[defns.parameter.macro]
3.19
parameter
[defns.parameter.templ]
3.20
signature
[defns.signature]
3.21
signature
[defns.signature.friend]
3.22
signature
[defns.signature.templ]
3.23
signature
[defns.signature.templ.friend]
3.24
signature
[defns.signature.spec]
3.25
signature
[defns.signature.member]
3.26
signature
[defns.signature.member.templ]
3.27
signature
[defns.signature.member.spec]
3.28
static type
[defns.static.type]
3.29
unblock
[defns.unblock]
3.30
undefined behavior
[defns.undefined]
3.31
unspecified behavior
[defns.unspecified]
3.32
well-formed program
[defns.well.formed]
4
General principles
[intro]
4.1
Implementation compliance
[intro.compliance]
4.1.1
Abstract machine
[intro.abstract]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
4.4
Acknowledgments
[intro.ack]
5
Lexical conventions
[lex]
5.1
Separate translation
[lex.separate]
5.2
Phases of translation
[lex.phases]
5.3
Character sets
[lex.charset]
5.4
Preprocessing tokens
[lex.pptoken]
5.5
Alternative tokens
[lex.digraph]
5.6
Tokens
[lex.token]
5.7
Comments
[lex.comment]
5.8
Header names
[lex.header]
5.9
Preprocessing numbers
[lex.ppnumber]
5.10
Identifiers
[lex.name]
5.11
Keywords
[lex.key]
5.12
Operators and punctuators
[lex.operators]
5.13
Literals
[lex.literal]
5.13.1
Kinds of literals
[lex.literal.kinds]
5.13.2
Integer literals
[lex.icon]
5.13.3
Character literals
[lex.ccon]
5.13.4
Floating-point literals
[lex.fcon]
5.13.5
String literals
[lex.string]
5.13.6
Boolean literals
[lex.bool]
5.13.7
Pointer literals
[lex.nullptr]
5.13.8
User-defined literals
[lex.ext]
6
Basics
[basic]
6.1
Preamble
[basic.pre]
6.2
Declarations and definitions
[basic.def]
6.3
One-definition rule
[basic.def.odr]
6.4
Scope
[basic.scope]
6.4.1
Declarative regions and scopes
[basic.scope.declarative]
6.4.2
Point of declaration
[basic.scope.pdecl]
6.4.3
Block scope
[basic.scope.block]
6.4.4
Function parameter scope
[basic.scope.param]
6.4.5
Function scope
[basic.funscope]
6.4.6
Namespace scope
[basic.scope.namespace]
6.4.7
Class scope
[basic.scope.class]
6.4.8
Enumeration scope
[basic.scope.enum]
6.4.9
Template parameter scope
[basic.scope.temp]
6.4.10
Name hiding
[basic.scope.hiding]
6.5
Name lookup
[basic.lookup]
6.5.1
Unqualified name lookup
[basic.lookup.unqual]
6.5.2
Argument-dependent name lookup
[basic.lookup.argdep]
6.5.3
Qualified name lookup
[basic.lookup.qual]
6.5.3.1
Class members
[class.qual]
6.5.3.2
Namespace members
[namespace.qual]
6.5.4
Elaborated type specifiers
[basic.lookup.elab]
6.5.5
Class member access
[basic.lookup.classref]
6.5.6
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
Static storage duration
[basic.stc.static]
6.7.5.2
Thread storage duration
[basic.stc.thread]
6.7.5.3
Automatic storage duration
[basic.stc.auto]
6.7.5.4
Dynamic storage duration
[basic.stc.dynamic]
6.7.5.4.1
Allocation functions
[basic.stc.dynamic.allocation]
6.7.5.4.2
Deallocation functions
[basic.stc.dynamic.deallocation]
6.7.5.4.3
Safely-derived pointers
[basic.stc.dynamic.safety]
6.7.5.5
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
Fundamental types
[basic.fundamental]
6.8.2
Compound types
[basic.compound]
6.8.3
CV-qualifiers
[basic.type.qualifier]
6.8.4
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
Data races
[intro.races]
6.9.2.2
Forward progress
[intro.progress]
6.9.3
Start and termination
[basic.start]
6.9.3.1
main function
[basic.start.main]
6.9.3.2
Static initialization
[basic.start.static]
6.9.3.3
Dynamic initialization of non-local variables
[basic.start.dynamic]
6.9.3.4
Termination
[basic.start.term]
7
Expressions
[expr]
7.1
Preamble
[expr.pre]
7.2
Properties of expressions
[expr.prop]
7.2.1
Value category
[basic.lval]
7.2.2
Type
[expr.type]
7.2.3
Context dependence
[expr.context]
7.3
Standard conversions
[conv]
7.3.1
Lvalue-to-rvalue conversion
[conv.lval]
7.3.2
Array-to-pointer conversion
[conv.array]
7.3.3
Function-to-pointer conversion
[conv.func]
7.3.4
Temporary materialization conversion
[conv.rval]
7.3.5
Qualification conversions
[conv.qual]
7.3.6
Integral promotions
[conv.prom]
7.3.7
Floating-point promotion
[conv.fpprom]
7.3.8
Integral conversions
[conv.integral]
7.3.9
Floating-point conversions
[conv.double]
7.3.10
Floating-integral conversions
[conv.fpint]
7.3.11
Pointer conversions
[conv.ptr]
7.3.12
Pointer-to-member conversions
[conv.mem]
7.3.13
Function pointer conversions
[conv.fctptr]
7.3.14
Boolean conversions
[conv.bool]
7.4
Usual arithmetic conversions
[expr.arith.conv]
7.5
Primary expressions
[expr.prim]
7.5.1
Literals
[expr.prim.literal]
7.5.2
This
[expr.prim.this]
7.5.3
Parentheses
[expr.prim.paren]
7.5.4
Names
[expr.prim.id]
7.5.4.1
Unqualified names
[expr.prim.id.unqual]
7.5.4.2
Qualified names
[expr.prim.id.qual]
7.5.4.3
Destruction
[expr.prim.id.dtor]
7.5.5
Lambda expressions
[expr.prim.lambda]
7.5.5.1
Closure types
[expr.prim.lambda.closure]
7.5.5.2
Captures
[expr.prim.lambda.capture]
7.5.6
Fold expressions
[expr.prim.fold]
7.5.7
Requires expressions
[expr.prim.req]
7.5.7.1
Simple requirements
[expr.prim.req.simple]
7.5.7.2
Type requirements
[expr.prim.req.type]
7.5.7.3
Compound requirements
[expr.prim.req.compound]
7.5.7.4
Nested requirements
[expr.prim.req.nested]
7.6
Compound expressions
[expr.compound]
7.6.1
Postfix expressions
[expr.post]
7.6.1.1
Subscripting
[expr.sub]
7.6.1.2
Function call
[expr.call]
7.6.1.3
Explicit type conversion (functional notation)
[expr.type.conv]
7.6.1.4
Class member access
[expr.ref]
7.6.1.5
Increment and decrement
[expr.post.incr]
7.6.1.6
Dynamic cast
[expr.dynamic.cast]
7.6.1.7
Type identification
[expr.typeid]
7.6.1.8
Static cast
[expr.static.cast]
7.6.1.9
Reinterpret cast
[expr.reinterpret.cast]
7.6.1.10
Const cast
[expr.const.cast]
7.6.2
Unary expressions
[expr.unary]
7.6.2.1
Unary operators
[expr.unary.op]
7.6.2.2
Increment and decrement
[expr.pre.incr]
7.6.2.3
Await
[expr.await]
7.6.2.4
Sizeof
[expr.sizeof]
7.6.2.5
Alignof
[expr.alignof]
7.6.2.6
noexcept operator
[expr.unary.noexcept]
7.6.2.7
New
[expr.new]
7.6.2.8
Delete
[expr.delete]
7.6.3
Explicit type conversion (cast notation)
[expr.cast]
7.6.4
Pointer-to-member operators
[expr.mptr.oper]
7.6.5
Multiplicative operators
[expr.mul]
7.6.6
Additive operators
[expr.add]
7.6.7
Shift operators
[expr.shift]
7.6.8
Three-way comparison operator
[expr.spaceship]
7.6.9
Relational operators
[expr.rel]
7.6.10
Equality operators
[expr.eq]
7.6.11
Bitwise AND operator
[expr.bit.and]
7.6.12
Bitwise exclusive OR operator
[expr.xor]
7.6.13
Bitwise inclusive OR operator
[expr.or]
7.6.14
Logical AND operator
[expr.log.and]
7.6.15
Logical OR operator
[expr.log.or]
7.6.16
Conditional operator
[expr.cond]
7.6.17
Yielding a value
[expr.yield]
7.6.18
Throwing an exception
[expr.throw]
7.6.19
Assignment and compound assignment operators
[expr.ass]
7.6.20
Comma operator
[expr.comma]
7.7
Constant expressions
[expr.const]
8
Statements
[stmt.stmt]
8.1
Preamble
[stmt.pre]
8.2
Labeled statement
[stmt.label]
8.3
Expression statement
[stmt.expr]
8.4
Compound statement or block
[stmt.block]
8.5
Selection statements
[stmt.select]
8.5.1
The if statement
[stmt.if]
8.5.2
The switch statement
[stmt.switch]
8.6
Iteration statements
[stmt.iter]
8.6.1
The while statement
[stmt.while]
8.6.2
The do statement
[stmt.do]
8.6.3
The for statement
[stmt.for]
8.6.4
The range-based for statement
[stmt.ranged]
8.7
Jump statements
[stmt.jump]
8.7.1
The break statement
[stmt.break]
8.7.2
The continue statement
[stmt.cont]
8.7.3
The return statement
[stmt.return]
8.7.4
The co_return statement
[stmt.return.coroutine]
8.7.5
The goto statement
[stmt.goto]
8.8
Declaration statement
[stmt.dcl]
8.9
Ambiguity resolution
[stmt.ambig]
9
Declarations
[dcl.dcl]
9.1
Preamble
[dcl.pre]
9.2
Specifiers
[dcl.spec]
9.2.1
Storage class specifiers
[dcl.stc]
9.2.2
Function specifiers
[dcl.fct.spec]
9.2.3
The typedef specifier
[dcl.typedef]
9.2.4
The friend specifier
[dcl.friend]
9.2.5
The constexpr and consteval specifiers
[dcl.constexpr]
9.2.6
The constinit specifier
[dcl.constinit]
9.2.7
The inline specifier
[dcl.inline]
9.2.8
Type specifiers
[dcl.type]
9.2.8.1
The cv-qualifiers
[dcl.type.cv]
9.2.8.2
Simple type specifiers
[dcl.type.simple]
9.2.8.3
Elaborated type specifiers
[dcl.type.elab]
9.2.8.4
Decltype specifiers
[dcl.type.decltype]
9.2.8.5
Placeholder type specifiers
[dcl.spec.auto]
9.2.8.5.1
Placeholder type deduction
[dcl.type.auto.deduct]
9.2.8.6
Deduced class template specialization types
[dcl.type.class.deduct]
9.3
Declarators
[dcl.decl]
9.3.1
Type names
[dcl.name]
9.3.2
Ambiguity resolution
[dcl.ambig.res]
9.3.3
Meaning of declarators
[dcl.meaning]
9.3.3.1
Pointers
[dcl.ptr]
9.3.3.2
References
[dcl.ref]
9.3.3.3
Pointers to members
[dcl.mptr]
9.3.3.4
Arrays
[dcl.array]
9.3.3.5
Functions
[dcl.fct]
9.3.3.6
Default arguments
[dcl.fct.default]
9.4
Initializers
[dcl.init]
9.4.1
Aggregates
[dcl.init.aggr]
9.4.2
Character arrays
[dcl.init.string]
9.4.3
References
[dcl.init.ref]
9.4.4
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
Namespace definition
[namespace.def]
9.8.1.1
Unnamed namespaces
[namespace.unnamed]
9.8.1.2
Namespace member definitions
[namespace.memdef]
9.8.2
Namespace alias
[namespace.alias]
9.8.3
Using namespace directive
[namespace.udir]
9.9
The using declaration
[namespace.udecl]
9.10
The asm declaration
[dcl.asm]
9.11
Linkage specifications
[dcl.link]
9.12
Attributes
[dcl.attr]
9.12.1
Attribute syntax and semantics
[dcl.attr.grammar]
9.12.2
Alignment specifier
[dcl.align]
9.12.3
Carries dependency attribute
[dcl.attr.depend]
9.12.4
Deprecated attribute
[dcl.attr.deprecated]
9.12.5
Fallthrough attribute
[dcl.attr.fallthrough]
9.12.6
Likelihood attributes
[dcl.attr.likelihood]
9.12.7
Maybe unused attribute
[dcl.attr.unused]
9.12.8
Nodiscard attribute
[dcl.attr.nodiscard]
9.12.9
Noreturn attribute
[dcl.attr.noreturn]
9.12.10
No unique address attribute
[dcl.attr.nouniqueaddr]
10
Modules
[module]
10.1
Module units and purviews
[module.unit]
10.2
Export declaration
[module.interface]
10.3
Import declaration
[module.import]
10.4
Global module fragment
[module.global.frag]
10.5
Private module fragment
[module.private.frag]
10.6
Instantiation context
[module.context]
10.7
Reachability
[module.reach]
11
Classes
[class]
11.1
Preamble
[class.pre]
11.2
Properties of classes
[class.prop]
11.3
Class names
[class.name]
11.4
Class members
[class.mem]
11.4.1
Member functions
[class.mfct]
11.4.2
Non-static member functions
[class.mfct.non-static]
11.4.2.1
The this pointer
[class.this]
11.4.3
Special member functions
[special]
11.4.4
Constructors
[class.ctor]
11.4.4.1
Default constructors
[class.default.ctor]
11.4.4.2
Copy/move constructors
[class.copy.ctor]
11.4.5
Copy/move assignment operator
[class.copy.assign]
11.4.6
Destructors
[class.dtor]
11.4.7
Conversions
[class.conv]
11.4.7.1
Conversion by constructor
[class.conv.ctor]
11.4.7.2
Conversion functions
[class.conv.fct]
11.4.8
Static members
[class.static]
11.4.8.1
Static member functions
[class.static.mfct]
11.4.8.2
Static data members
[class.static.data]
11.4.9
Bit-fields
[class.bit]
11.4.10
Nested class declarations
[class.nest]
11.4.11
Nested type names
[class.nested.type]
11.5
Unions
[class.union]
11.5.1
Anonymous unions
[class.union.anon]
11.6
Local class declarations
[class.local]
11.7
Derived classes
[class.derived]
11.7.1
Multiple base classes
[class.mi]
11.7.2
Virtual functions
[class.virtual]
11.7.3
Abstract classes
[class.abstract]
11.8
Member name lookup
[class.member.lookup]
11.9
Member access control
[class.access]
11.9.1
Access specifiers
[class.access.spec]
11.9.2
Accessibility of base classes and base class members
[class.access.base]
11.9.3
Friends
[class.friend]
11.9.4
Protected member access
[class.protected]
11.9.5
Access to virtual functions
[class.access.virt]
11.9.6
Multiple access
[class.paths]
11.9.7
Nested classes
[class.access.nest]
11.10
Initialization
[class.init]
11.10.1
Explicit initialization
[class.expl.init]
11.10.2
Initializing bases and members
[class.base.init]
11.10.3
Initialization by inherited constructor
[class.inhctor.init]
11.10.4
Construction and destruction
[class.cdtor]
11.10.5
Copy/move elision
[class.copy.elision]
11.11
Comparisons
[class.compare]
11.11.1
Defaulted comparison operator functions
[class.compare.default]
11.11.2
Equality operator
[class.eq]
11.11.3
Three-way comparison
[class.spaceship]
11.11.4
Secondary comparison operators
[class.compare.secondary]
11.12
Free store
[class.free]
12
Overloading
[over]
12.1
Preamble
[over.pre]
12.2
Overloadable declarations
[over.load]
12.3
Declaration matching
[over.dcl]
12.4
Overload resolution
[over.match]
12.4.1
Candidate functions and argument lists
[over.match.funcs]
12.4.1.1
Function call syntax
[over.match.call]
12.4.1.1.1
Call to named function
[over.call.func]
12.4.1.1.2
Call to object of class type
[over.call.object]
12.4.1.2
Operators in expressions
[over.match.oper]
12.4.1.3
Initialization by constructor
[over.match.ctor]
12.4.1.4
Copy-initialization of class by user-defined conversion
[over.match.copy]
12.4.1.5
Initialization by conversion function
[over.match.conv]
12.4.1.6
Initialization by conversion function for direct reference binding
[over.match.ref]
12.4.1.7
Initialization by list-initialization
[over.match.list]
12.4.1.8
Class template argument deduction
[over.match.class.deduct]
12.4.2
Viable functions
[over.match.viable]
12.4.3
Best viable function
[over.match.best]
12.4.3.1
Implicit conversion sequences
[over.best.ics]
12.4.3.1.1
Standard conversion sequences
[over.ics.scs]
12.4.3.1.2
User-defined conversion sequences
[over.ics.user]
12.4.3.1.3
Ellipsis conversion sequences
[over.ics.ellipsis]
12.4.3.1.4
Reference binding
[over.ics.ref]
12.4.3.1.5
List-initialization sequence
[over.ics.list]
12.4.3.2
Ranking implicit conversion sequences
[over.ics.rank]
12.5
Address of overloaded function
[over.over]
12.6
Overloaded operators
[over.oper]
12.6.1
Unary operators
[over.unary]
12.6.2
Binary operators
[over.binary]
12.6.2.1
Simple assignment
[over.ass]
12.6.3
Function call
[over.call]
12.6.4
Subscripting
[over.sub]
12.6.5
Class member access
[over.ref]
12.6.6
Increment and decrement
[over.inc]
12.7
Built-in operators
[over.built]
12.8
User-defined literals
[over.literal]
13
Templates
[temp]
13.1
Preamble
[temp.pre]
13.2
Template parameters
[temp.param]
13.3
Names of template specializations
[temp.names]
13.4
Template arguments
[temp.arg]
13.4.1
Template type arguments
[temp.arg.type]
13.4.2
Template non-type arguments
[temp.arg.nontype]
13.4.3
Template template arguments
[temp.arg.template]
13.5
Template constraints
[temp.constr]
13.5.1
Constraints
[temp.constr.constr]
13.5.1.1
Logical operations
[temp.constr.op]
13.5.1.2
Atomic constraints
[temp.constr.atomic]
13.5.2
Constrained declarations
[temp.constr.decl]
13.5.3
Constraint normalization
[temp.constr.normal]
13.5.4
Partial ordering by constraints
[temp.constr.order]
13.6
Type equivalence
[temp.type]
13.7
Template declarations
[temp.decls]
13.7.1
Class templates
[temp.class]
13.7.1.1
Member functions of class templates
[temp.mem.func]
13.7.1.2
Deduction guides
[temp.deduct.guide]
13.7.1.3
Member classes of class templates
[temp.mem.class]
13.7.1.4
Static data members of class templates
[temp.static]
13.7.1.5
Enumeration members of class templates
[temp.mem.enum]
13.7.2
Member templates
[temp.mem]
13.7.3
Variadic templates
[temp.variadic]
13.7.4
Friends
[temp.friend]
13.7.5
Class template partial specializations
[temp.class.spec]
13.7.5.1
Matching of class template partial specializations
[temp.class.spec.match]
13.7.5.2
Partial ordering of class template specializations
[temp.class.order]
13.7.5.3
Members of class template specializations
[temp.class.spec.mfunc]
13.7.6
Function templates
[temp.fct]
13.7.6.1
Function template overloading
[temp.over.link]
13.7.6.2
Partial ordering of function templates
[temp.func.order]
13.7.7
Alias templates
[temp.alias]
13.7.8
Concept definitions
[temp.concept]
13.8
Name resolution
[temp.res]
13.8.1
Locally declared names
[temp.local]
13.8.2
Dependent names
[temp.dep]
13.8.2.1
Dependent types
[temp.dep.type]
13.8.2.2
Type-dependent expressions
[temp.dep.expr]
13.8.2.3
Value-dependent expressions
[temp.dep.constexpr]
13.8.2.4
Dependent template arguments
[temp.dep.temp]
13.8.3
Non-dependent names
[temp.nondep]
13.8.4
Dependent name resolution
[temp.dep.res]
13.8.4.1
Point of instantiation
[temp.point]
13.8.4.2
Candidate functions
[temp.dep.candidate]
13.8.5
Friend names declared within a class template
[temp.inject]
13.9
Template instantiation and specialization
[temp.spec]
13.9.1
Implicit instantiation
[temp.inst]
13.9.2
Explicit instantiation
[temp.explicit]
13.9.3
Explicit specialization
[temp.expl.spec]
13.10
Function template specializations
[temp.fct.spec]
13.10.1
Explicit template argument specification
[temp.arg.explicit]
13.10.2
Template argument deduction
[temp.deduct]
13.10.2.1
Deducing template arguments from a function call
[temp.deduct.call]
13.10.2.2
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
13.10.2.3
Deducing conversion function template arguments
[temp.deduct.conv]
13.10.2.4
Deducing template arguments during partial ordering
[temp.deduct.partial]
13.10.2.5
Deducing template arguments from a type
[temp.deduct.type]
13.10.2.6
Deducing template arguments from a function declaration
[temp.deduct.decl]
13.10.3
Overload resolution
[temp.over]
14
Exception handling
[except]
14.1
Preamble
[except.pre]
14.2
Throwing an exception
[except.throw]
14.3
Constructors and destructors
[except.ctor]
14.4
Handling an exception
[except.handle]
14.5
Exception specifications
[except.spec]
14.6
Special functions
[except.special]
14.6.1
The std::terminate function
[except.terminate]
14.6.2
The std::uncaught_exceptions() function
[except.uncaught]
15
Preprocessing directives
[cpp]
15.1
Preamble
[cpp.pre]
15.2
Conditional inclusion
[cpp.cond]
15.3
Source file inclusion
[cpp.include]
15.4
Module directive
[cpp.module]
15.5
Header unit importation
[cpp.import]
15.6
Macro replacement
[cpp.replace]
15.6.1
Argument substitution
[cpp.subst]
15.6.2
The # operator
[cpp.stringize]
15.6.3
The ## operator
[cpp.concat]
15.6.4
Rescanning and further replacement
[cpp.rescan]
15.6.5
Scope of macro definitions
[cpp.scope]
15.7
Line control
[cpp.line]
15.8
Error directive
[cpp.error]
15.9
Pragma directive
[cpp.pragma]
15.10
Null directive
[cpp.null]
15.11
Predefined macro names
[cpp.predefined]
15.12
Pragma operator
[cpp.pragma.op]
16
Library introduction
[library]
16.1
General
[library.general]
16.2
The C standard library
[library.c]
16.3
Definitions
[definitions]
16.3.1
arbitrary-positional stream
[defns.arbitrary.stream]
16.3.2
character
[defns.character]
16.3.3
character container type
[defns.character.container]
16.3.4
comparison function
[defns.comparison]
16.3.5
component
[defns.component]
16.3.6
constant subexpression
[defns.const.subexpr]
16.3.7
deadlock
[defns.deadlock]
16.3.8
default behavior
[defns.default.behavior.impl]
16.3.9
default behavior
[defns.default.behavior.func]
16.3.10
direct-non-list-initialization
[defns.direct-non-list-init]
16.3.11
expression-equivalent
[defns.expression-equivalent]
16.3.12
handler function
[defns.handler]
16.3.13
implementation-defined strict total order over pointers
[defns.order.ptr]
16.3.14
iostream class templates
[defns.iostream.templates]
16.3.15
modifier function
[defns.modifier]
16.3.16
move assignment
[defns.move.assign]
16.3.17
move construction
[defns.move.constr]
16.3.18
NTCTS
[defns.ntcts]
16.3.19
observer function
[defns.observer]
16.3.20
program-defined specialization
[defns.prog.def.spec]
16.3.21
program-defined type
[defns.prog.def.type]
16.3.22
projection
[defns.projection]
16.3.23
referenceable type
[defns.referenceable]
16.3.24
replacement function
[defns.replacement]
16.3.25
repositional stream
[defns.repositional.stream]
16.3.26
required behavior
[defns.required.behavior]
16.3.27
reserved function
[defns.reserved.function]
16.3.28
stable algorithm
[defns.stable]
16.3.29
traits class
[defns.traits]
16.3.30
valid but unspecified state
[defns.valid]
16.4
Method of description
[description]
16.4.1
Structure of each clause
[structure]
16.4.1.1
Elements
[structure.elements]
16.4.1.2
Summary
[structure.summary]
16.4.1.3
Requirements
[structure.requirements]
16.4.1.4
Detailed specifications
[structure.specifications]
16.4.1.5
C library
[structure.see.also]
16.4.2
Other conventions
[conventions]
16.4.2.1
Exposition-only functions
[expos.only.func]
16.4.2.2
Type descriptions
[type.descriptions]
16.4.2.2.1
General
[type.descriptions.general]
16.4.2.2.2
Exposition-only types
[expos.only.types]
16.4.2.2.3
Enumerated types
[enumerated.types]
16.4.2.2.4
Bitmask types
[bitmask.types]
16.4.2.2.5
Character sequences
[character.seq]
16.4.2.2.5.1
Byte strings
[byte.strings]
16.4.2.2.5.2
Multibyte strings
[multibyte.strings]
16.4.2.2.6
Customization Point Object types
[customization.point.object]
16.4.2.3
Functions within classes
[functions.within.classes]
16.4.2.4
Private members
[objects.within.classes]
16.5
Library-wide requirements
[requirements]
16.5.1
Library contents and organization
[organization]
16.5.1.1
Library contents
[contents]
16.5.1.2
Headers
[headers]
16.5.1.3
Freestanding implementations
[compliance]
16.5.2
Using the library
[using]
16.5.2.1
Overview
[using.overview]
16.5.2.2
Headers
[using.headers]
16.5.2.3
Linkage
[using.linkage]
16.5.3
Requirements on types and expressions
[utility.requirements]
16.5.3.1
Template argument requirements
[utility.arg.requirements]
16.5.3.2
Swappable requirements
[swappable.requirements]
16.5.3.3
Cpp17NullablePointer requirements
[nullablepointer.requirements]
16.5.3.4
Cpp17Hash requirements
[hash.requirements]
16.5.3.5
Cpp17Allocator requirements
[allocator.requirements]
16.5.3.5.1
Allocator completeness requirements
[allocator.requirements.completeness]
16.5.4
Constraints on programs
[constraints]
16.5.4.1
Overview
[constraints.overview]
16.5.4.2
Namespace use
[namespace.constraints]
16.5.4.2.1
Namespace std
[namespace.std]
16.5.4.2.2
Namespace posix
[namespace.posix]
16.5.4.2.3
Namespaces for future standardization
[namespace.future]
16.5.4.3
Reserved names
[reserved.names]
16.5.4.3.1
Zombie names
[zombie.names]
16.5.4.3.2
Macro names
[macro.names]
16.5.4.3.3
External linkage
[extern.names]
16.5.4.3.4
Types
[extern.types]
16.5.4.3.5
User-defined literal suffixes
[usrlit.suffix]
16.5.4.4
Headers
[alt.headers]
16.5.4.5
Derived classes
[derived.classes]
16.5.4.6
Replacement functions
[replacement.functions]
16.5.4.7
Handler functions
[handler.functions]
16.5.4.8
Other functions
[res.on.functions]
16.5.4.9
Function arguments
[res.on.arguments]
16.5.4.10
Library object access
[res.on.objects]
16.5.4.11
Expects paragraph
[res.on.expects]
16.5.4.12
Semantic requirements
[res.on.requirements]
16.5.5
Conforming implementations
[conforming]
16.5.5.1
Overview
[conforming.overview]
16.5.5.2
Headers
[res.on.headers]
16.5.5.3
Restrictions on macro definitions
[res.on.macro.definitions]
16.5.5.4
Non-member functions
[global.functions]
16.5.5.5
Member functions
[member.functions]
16.5.5.6
Friend functions
[hidden.friends]
16.5.5.7
Constexpr functions and constructors
[constexpr.functions]
16.5.5.8
Requirements for stable algorithms
[algorithm.stable]
16.5.5.9
Reentrancy
[reentrancy]
16.5.5.10
Data race avoidance
[res.on.data.races]
16.5.5.11
Protection within classes
[protection.within.classes]
16.5.5.12
Derived classes
[derivation]
16.5.5.13
Restrictions on exception handling
[res.on.exception.handling]
16.5.5.14
Restrictions on storage of pointers
[res.on.pointer.storage]
16.5.5.15
Value of error codes
[value.error.codes]
16.5.5.16
Moved-from state of library types
[lib.types.movedfrom]
17
Language support library
[support]
17.1
General
[support.general]
17.2
Common definitions
[support.types]
17.2.1
Header synopsis
[cstddef.syn]
17.2.2
Header 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 synopsis
[version.syn]
17.3.3
Header 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
numeric_limits members
[numeric.limits.members]
17.3.5.2
numeric_limits specializations
[numeric.special]
17.3.6
Header synopsis
[climits.syn]
17.3.7
Header synopsis
[cfloat.syn]
17.4
Integer types
[cstdint]
17.4.1
Header synopsis
[cstdint.syn]
17.5
Startup and termination
[support.start.term]
17.6
Dynamic memory management
[support.dynamic]
17.6.1
Header synopsis
[new.syn]
17.6.2
Storage allocation and deallocation
[new.delete]
17.6.2.1
Single-object forms
[new.delete.single]
17.6.2.2
Array forms
[new.delete.array]
17.6.2.3
Non-allocating forms
[new.delete.placement]
17.6.2.4
Data races
[new.delete.dataraces]
17.6.3
Storage allocation errors
[alloc.errors]
17.6.3.1
Class bad_alloc
[bad.alloc]
17.6.3.2
Class bad_array_new_length
[new.badlength]
17.6.3.3
Type new_handler
[new.handler]
17.6.3.4
set_new_handler
[set.new.handler]
17.6.3.5
get_new_handler
[get.new.handler]
17.6.4
Pointer optimization barrier
[ptr.launder]
17.6.5
Hardware interference size
[hardware.interference]
17.7
Type identification
[support.rtti]
17.7.1
Header synopsis
[typeinfo.syn]
17.7.2
Class type_info
[type.info]
17.7.3
Class bad_cast
[bad.cast]
17.7.4
Class bad_typeid
[bad.typeid]
17.8
Source location
[support.srcloc]
17.8.1
Header synopsis
[source.location.syn]
17.8.2
Class source_location
[support.srcloc.class]
17.8.2.1
Creation
[support.srcloc.cons]
17.8.2.2
Observers
[support.srcloc.obs]
17.9
Exception handling
[support.exception]
17.9.1
Header synopsis
[exception.syn]
17.9.2
Class exception
[exception]
17.9.3
Class bad_exception
[bad.exception]
17.9.4
Abnormal termination
[exception.terminate]
17.9.4.1
Type terminate_handler
[terminate.handler]
17.9.4.2
set_terminate
[set.terminate]
17.9.4.3
get_terminate
[get.terminate]
17.9.4.4
terminate
[terminate]
17.9.5
uncaught_exceptions
[uncaught.exceptions]
17.9.6
Exception propagation
[propagation]
17.9.7
nested_exception
[except.nested]
17.10
Initializer lists
[support.initlist]
17.10.1
Header synopsis
[initializer.list.syn]
17.10.2
Initializer list constructors
[support.initlist.cons]
17.10.3
Initializer list access
[support.initlist.access]
17.10.4
Initializer list range access
[support.initlist.range]
17.11
Comparisons
[cmp]
17.11.1
Header 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
Header synopsis
[coroutine.syn]
17.12.2
Coroutine traits
[coroutine.traits]
17.12.2.1
Class template coroutine_traits
[coroutine.traits.primary]
17.12.3
Class template coroutine_handle
[coroutine.handle]
17.12.3.1
Construct/reset
[coroutine.handle.con]
17.12.3.2
Export/import
[coroutine.handle.export.import]
17.12.3.3
Observers
[coroutine.handle.observers]
17.12.3.4
Resumption
[coroutine.handle.resumption]
17.12.3.5
Promise access
[coroutine.handle.promise]
17.12.3.6
Comparison operators
[coroutine.handle.compare]
17.12.3.7
Hash support
[coroutine.handle.hash]
17.12.4
No-op coroutines
[coroutine.noop]
17.12.4.1
Class noop_coroutine_promise
[coroutine.promise.noop]
17.12.4.2
Class coroutine_handle
[coroutine.handle.noop]
17.12.4.2.1
Observers
[coroutine.handle.noop.observers]
17.12.4.2.2
Resumption
[coroutine.handle.noop.resumption]
17.12.4.2.3
Promise access
[coroutine.handle.noop.promise]
17.12.4.2.4
Address
[coroutine.handle.noop.address]
17.12.4.3
Function noop_coroutine
[coroutine.noop.coroutine]
17.12.5
Trivial awaitables
[coroutine.trivial.awaitables]
17.13
Other runtime support
[support.runtime]
17.13.1
Header synopsis
[cstdarg.syn]
17.13.2
Header synopsis
[csetjmp.syn]
17.13.3
Header synopsis
[csignal.syn]
17.13.4
Signal handlers
[support.signal]
18
Concepts library
[concepts]
18.1
General
[concepts.general]
18.2
Equality preservation
[concepts.equality]
18.3
Header synopsis
[concepts.syn]
18.4
Language-related concepts
[concepts.lang]
18.4.1
General
[concepts.lang.general]
18.4.2
Concept same_as
[concept.same]
18.4.3
Concept derived_from
[concept.derived]
18.4.4
Concept convertible_to
[concept.convertible]
18.4.5
Concept common_reference_with
[concept.commonref]
18.4.6
Concept common_with
[concept.common]
18.4.7
Arithmetic concepts
[concepts.arithmetic]
18.4.8
Concept assignable_from
[concept.assignable]
18.4.9
Concept swappable
[concept.swappable]
18.4.10
Concept destructible
[concept.destructible]
18.4.11
Concept constructible_from
[concept.constructible]
18.4.12
Concept default_initializable
[concept.default.init]
18.4.13
Concept move_constructible
[concept.moveconstructible]
18.4.14
Concept copy_constructible
[concept.copyconstructible]
18.5
Comparison concepts
[concepts.compare]
18.5.1
General
[concepts.compare.general]
18.5.2
Boolean testability
[concept.booleantestable]
18.5.3
Concept equality_comparable
[concept.equalitycomparable]
18.5.4
Concept totally_ordered
[concept.totallyordered]
18.6
Object concepts
[concepts.object]
18.7
Callable concepts
[concepts.callable]
18.7.1
General
[concepts.callable.general]
18.7.2
Concept invocable
[concept.invocable]
18.7.3
Concept regular_invocable
[concept.regularinvocable]
18.7.4
Concept predicate
[concept.predicate]
18.7.5
Concept relation
[concept.relation]
18.7.6
Concept equivalence_relation
[concept.equiv]
18.7.7
Concept strict_weak_order
[concept.strictweakorder]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
Header synopsis
[stdexcept.syn]
19.2.2
Class logic_error
[logic.error]
19.2.3
Class domain_error
[domain.error]
19.2.4
Class invalid_argument
[invalid.argument]
19.2.5
Class length_error
[length.error]
19.2.6
Class out_of_range
[out.of.range]
19.2.7
Class runtime_error
[runtime.error]
19.2.8
Class range_error
[range.error]
19.2.9
Class overflow_error
[overflow.error]
19.2.10
Class underflow_error
[underflow.error]
19.3
Assertions
[assertions]
19.3.1
Header synopsis
[cassert.syn]
19.3.2
The assert macro
[assertions.assert]
19.4
Error numbers
[errno]
19.4.1
Header synopsis
[cerrno.syn]
19.5
System error support
[syserr]
19.5.1
Header synopsis
[system.error.syn]
19.5.2
Class error_category
[syserr.errcat]
19.5.2.1
Overview
[syserr.errcat.overview]
19.5.2.2
Virtual members
[syserr.errcat.virtuals]
19.5.2.3
Non-virtual members
[syserr.errcat.nonvirtuals]
19.5.2.4
Program-defined classes derived from error_category
[syserr.errcat.derived]
19.5.2.5
Error category objects
[syserr.errcat.objects]
19.5.3
Class error_code
[syserr.errcode]
19.5.3.1
Overview
[syserr.errcode.overview]
19.5.3.2
Constructors
[syserr.errcode.constructors]
19.5.3.3
Modifiers
[syserr.errcode.modifiers]
19.5.3.4
Observers
[syserr.errcode.observers]
19.5.3.5
Non-member functions
[syserr.errcode.nonmembers]
19.5.4
Class error_condition
[syserr.errcondition]
19.5.4.1
Overview
[syserr.errcondition.overview]
19.5.4.2
Constructors
[syserr.errcondition.constructors]
19.5.4.3
Modifiers
[syserr.errcondition.modifiers]
19.5.4.4
Observers
[syserr.errcondition.observers]
19.5.4.5
Non-member functions
[syserr.errcondition.nonmembers]
19.5.5
Comparison functions
[syserr.compare]
19.5.6
System error hash support
[syserr.hash]
19.5.7
Class system_error
[syserr.syserr]
19.5.7.1
Overview
[syserr.syserr.overview]
19.5.7.2
Members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Header 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 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 synopsis
[optional.syn]
20.6.3
Class template optional
[optional.optional]
20.6.3.1
Constructors
[optional.ctor]
20.6.3.2
Destructor
[optional.dtor]
20.6.3.3
Assignment
[optional.assign]
20.6.3.4
Swap
[optional.swap]
20.6.3.5
Observers
[optional.observe]
20.6.3.6
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 synopsis
[variant.syn]
20.7.3
Class template variant
[variant.variant]
20.7.3.1
Constructors
[variant.ctor]
20.7.3.2
Destructor
[variant.dtor]
20.7.3.3
Assignment
[variant.assign]
20.7.3.4
Modifiers
[variant.mod]
20.7.3.5
Value status
[variant.status]
20.7.3.6
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
Header synopsis
[any.synop]
20.8.2
Class bad_any_cast
[any.bad.any.cast]
20.8.3
Class any
[any.class]
20.8.3.1
Construction and destruction
[any.cons]
20.8.3.2
Assignment
[any.assign]
20.8.3.3
Modifiers
[any.modifiers]
20.8.3.4
Observers
[any.observers]
20.8.4
Non-member functions
[any.nonmembers]
20.9
Bitsets
[bitset]
20.9.1
Header synopsis
[bitset.syn]
20.9.2
Class template bitset
[template.bitset]
20.9.2.1
Constructors
[bitset.cons]
20.9.2.2
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 synopsis
[memory.syn]
20.10.3
Pointer traits
[pointer.traits]
20.10.3.1
Member types
[pointer.traits.types]
20.10.3.2
Member functions
[pointer.traits.functions]
20.10.3.3
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
Member types
[allocator.traits.types]
20.10.9.2
Static member functions
[allocator.traits.members]
20.10.10
The default allocator
[default.allocator]
20.10.10.1
Members
[allocator.members]
20.10.10.2
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
Default deleters
[unique.ptr.dltr]
20.11.1.1.1
In general
[unique.ptr.dltr.general]
20.11.1.1.2
default_delete
[unique.ptr.dltr.dflt]
20.11.1.1.3
default_delete
[unique.ptr.dltr.dflt1]
20.11.1.2
unique_ptr for single objects
[unique.ptr.single]
20.11.1.2.1
Constructors
[unique.ptr.single.ctor]
20.11.1.2.2
Destructor
[unique.ptr.single.dtor]
20.11.1.2.3
Assignment
[unique.ptr.single.asgn]
20.11.1.2.4
Observers
[unique.ptr.single.observers]
20.11.1.2.5
Modifiers
[unique.ptr.single.modifiers]
20.11.1.3
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.11.1.3.1
Constructors
[unique.ptr.runtime.ctor]
20.11.1.3.2
Assignment
[unique.ptr.runtime.asgn]
20.11.1.3.3
Observers
[unique.ptr.runtime.observers]
20.11.1.3.4
Modifiers
[unique.ptr.runtime.modifiers]
20.11.1.4
Creation
[unique.ptr.create]
20.11.1.5
Specialized algorithms
[unique.ptr.special]
20.11.1.6
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
Constructors
[util.smartptr.shared.const]
20.11.3.2
Destructor
[util.smartptr.shared.dest]
20.11.3.3
Assignment
[util.smartptr.shared.assign]
20.11.3.4
Modifiers
[util.smartptr.shared.mod]
20.11.3.5
Observers
[util.smartptr.shared.obs]
20.11.3.6
Creation
[util.smartptr.shared.create]
20.11.3.7
Comparison
[util.smartptr.shared.cmp]
20.11.3.8
Specialized algorithms
[util.smartptr.shared.spec]
20.11.3.9
Casts
[util.smartptr.shared.cast]
20.11.3.10
get_deleter
[util.smartptr.getdeleter]
20.11.3.11
I/O
[util.smartptr.shared.io]
20.11.4
Class template weak_ptr
[util.smartptr.weak]
20.11.4.1
Constructors
[util.smartptr.weak.const]
20.11.4.2
Destructor
[util.smartptr.weak.dest]
20.11.4.3
Assignment
[util.smartptr.weak.assign]
20.11.4.4
Modifiers
[util.smartptr.weak.mod]
20.11.4.5
Observers
[util.smartptr.weak.obs]
20.11.4.6
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 synopsis
[mem.res.syn]
20.12.2
Class memory_resource
[mem.res.class]
20.12.2.1
Public member functions
[mem.res.public]
20.12.2.2
Private virtual member functions
[mem.res.private]
20.12.2.3
Equality
[mem.res.eq]
20.12.3
Class template polymorphic_allocator
[mem.poly.allocator.class]
20.12.3.1
Constructors
[mem.poly.allocator.ctor]
20.12.3.2
Member functions
[mem.poly.allocator.mem]
20.12.3.3
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
Constructors and destructor
[mem.res.monotonic.buffer.ctor]
20.12.6.2
Members
[mem.res.monotonic.buffer.mem]
20.13
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.13.1
Header 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
Header synopsis
[functional.syn]
20.14.2
Definitions
[func.def]
20.14.3
Requirements
[func.require]
20.14.4
Function template invoke
[func.invoke]
20.14.5
Class template reference_wrapper
[refwrap]
20.14.5.1
Constructors and destructor
[refwrap.const]
20.14.5.2
Assignment
[refwrap.assign]
20.14.5.3
Access
[refwrap.access]
20.14.5.4
Invocation
[refwrap.invoke]
20.14.5.5
Helper functions
[refwrap.helpers]
20.14.6
Arithmetic operations
[arithmetic.operations]
20.14.6.1
Class template plus
[arithmetic.operations.plus]
20.14.6.2
Class template minus
[arithmetic.operations.minus]
20.14.6.3
Class template multiplies
[arithmetic.operations.multiplies]
20.14.6.4
Class template divides
[arithmetic.operations.divides]
20.14.6.5
Class template modulus
[arithmetic.operations.modulus]
20.14.6.6
Class template negate
[arithmetic.operations.negate]
20.14.7
Comparisons
[comparisons]
20.14.7.1
Class template equal_to
[comparisons.equal.to]
20.14.7.2
Class template not_equal_to
[comparisons.not.equal.to]
20.14.7.3
Class template greater
[comparisons.greater]
20.14.7.4
Class template less
[comparisons.less]
20.14.7.5
Class template greater_equal
[comparisons.greater.equal]
20.14.7.6
Class template less_equal
[comparisons.less.equal]
20.14.7.7
Class compare_three_way
[comparisons.three.way]
20.14.8
Concept-constrained comparisons
[range.cmp]
20.14.9
Logical operations
[logical.operations]
20.14.9.1
Class template logical_and
[logical.operations.and]
20.14.9.2
Class template logical_or
[logical.operations.or]
20.14.9.3
Class template logical_not
[logical.operations.not]
20.14.10
Bitwise operations
[bitwise.operations]
20.14.10.1
Class template bit_and
[bitwise.operations.and]
20.14.10.2
Class template bit_or
[bitwise.operations.or]
20.14.10.3
Class template bit_xor
[bitwise.operations.xor]
20.14.10.4
Class template bit_not
[bitwise.operations.not]
20.14.11
Class identity
[func.identity]
20.14.12
Function template not_fn
[func.not.fn]
20.14.13
Function template bind_front
[func.bind.front]
20.14.14
Function object binders
[func.bind]
20.14.14.1
Class template is_bind_expression
[func.bind.isbind]
20.14.14.2
Class template is_placeholder
[func.bind.isplace]
20.14.14.3
Function template bind
[func.bind.bind]
20.14.14.4
Placeholders
[func.bind.place]
20.14.15
Function template mem_fn
[func.memfn]
20.14.16
Polymorphic function wrappers
[func.wrap]
20.14.16.1
Class bad_function_call
[func.wrap.badcall]
20.14.16.2
Class template function
[func.wrap.func]
20.14.16.2.1
Constructors and destructor
[func.wrap.func.con]
20.14.16.2.2
Modifiers
[func.wrap.func.mod]
20.14.16.2.3
Capacity
[func.wrap.func.cap]
20.14.16.2.4
Invocation
[func.wrap.func.inv]
20.14.16.2.5
Target access
[func.wrap.func.targ]
20.14.16.2.6
Null pointer comparison functions
[func.wrap.func.nullptr]
20.14.16.2.7
Specialized algorithms
[func.wrap.func.alg]
20.14.17
Searchers
[func.search]
20.14.17.1
Class template default_searcher
[func.search.default]
20.14.17.2
Class template boyer_moore_searcher
[func.search.bm]
20.14.17.3
Class template boyer_moore_horspool_searcher
[func.search.bmh]
20.14.18
Class template hash
[unord.hash]
20.15
Metaprogramming and type traits
[meta]
20.15.1
Requirements
[meta.rqmts]
20.15.2
Header synopsis
[meta.type.synop]
20.15.3
Helper classes
[meta.help]
20.15.4
Unary type traits
[meta.unary]
20.15.4.1
Primary type categories
[meta.unary.cat]
20.15.4.2
Composite type traits
[meta.unary.comp]
20.15.4.3
Type properties
[meta.unary.prop]
20.15.5
Type property queries
[meta.unary.prop.query]
20.15.6
Relationships between types
[meta.rel]
20.15.7
Transformations between types
[meta.trans]
20.15.7.1
Const-volatile modifications
[meta.trans.cv]
20.15.7.2
Reference modifications
[meta.trans.ref]
20.15.7.3
Sign modifications
[meta.trans.sign]
20.15.7.4
Array modifications
[meta.trans.arr]
20.15.7.5
Pointer modifications
[meta.trans.ptr]
20.15.7.6
Other transformations
[meta.trans.other]
20.15.8
Logical operator traits
[meta.logical]
20.15.9
Member relationships
[meta.member]
20.15.10
Constant evaluation context
[meta.const.eval]
20.16
Compile-time rational arithmetic
[ratio]
20.16.1
In general
[ratio.general]
20.16.2
Header synopsis
[ratio.syn]
20.16.3
Class template ratio
[ratio.ratio]
20.16.4
Arithmetic on ratios
[ratio.arithmetic]
20.16.5
Comparison of ratios
[ratio.comparison]
20.16.6
SI types for ratio
[ratio.si]
20.17
Class type_index
[type.index]
20.17.1
Header 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 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 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 synopsis
[format.syn]
20.20.2
Format string
[format.string]
20.20.2.1
In general
[format.string.general]
20.20.2.2
Standard format specifiers
[format.string.std]
20.20.3
Error reporting
[format.err.report]
20.20.4
Formatting functions
[format.functions]
20.20.5
Formatter
[format.formatter]
20.20.5.1
Formatter requirements
[formatter.requirements]
20.20.5.2
Formatter specializations
[format.formatter.spec]
20.20.5.3
Class template basic_format_parse_context
[format.parse.ctx]
20.20.5.4
Class template basic_format_context
[format.context]
20.20.6
Arguments
[format.arguments]
20.20.6.1
Class template basic_format_arg
[format.arg]
20.20.6.2
Class template format-arg-store
[format.arg.store]
20.20.6.3
Class template basic_format_args
[format.args]
20.20.7
Class format_error
[format.error]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
Character traits requirements
[char.traits.require]
21.2.2
Traits typedefs
[char.traits.typedefs]
21.2.3
char_traits specializations
[char.traits.specializations]
21.2.3.1
struct char_traits
[char.traits.specializations.char]
21.2.3.2
struct char_traits
[char.traits.specializations.char8.t]
21.2.3.3
struct char_traits
[char.traits.specializations.char16.t]
21.2.3.4
struct char_traits
[char.traits.specializations.char32.t]
21.2.3.5
struct char_traits
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.3.1
Header synopsis
[string.syn]
21.3.2
Class template basic_string
[basic.string]
21.3.2.1
General requirements
[string.require]
21.3.2.2
Constructors and assignment operators
[string.cons]
21.3.2.3
Iterator support
[string.iterators]
21.3.2.4
Capacity
[string.capacity]
21.3.2.5
Element access
[string.access]
21.3.2.6
Modifiers
[string.modifiers]
21.3.2.6.1
basic_string::operator+=
[string.op.append]
21.3.2.6.2
basic_string::append
[string.append]
21.3.2.6.3
basic_string::assign
[string.assign]
21.3.2.6.4
basic_string::insert
[string.insert]
21.3.2.6.5
basic_string::erase
[string.erase]
21.3.2.6.6
basic_string::replace
[string.replace]
21.3.2.6.7
basic_string::copy
[string.copy]
21.3.2.6.8
basic_string::swap
[string.swap]
21.3.2.7
String operations
[string.ops]
21.3.2.7.1
Accessors
[string.accessors]
21.3.2.7.2
Searching
[string.find]
21.3.2.7.3
basic_string::substr
[string.substr]
21.3.2.7.4
basic_string::compare
[string.compare]
21.3.2.7.5
basic_string::starts_with
[string.starts.with]
21.3.2.7.6
basic_string::ends_with
[string.ends.with]
21.3.3
Non-member functions
[string.nonmembers]
21.3.3.1
operator+
[string.op.plus]
21.3.3.2
Non-member comparison functions
[string.cmp]
21.3.3.3
swap
[string.special]
21.3.3.4
Inserters and extractors
[string.io]
21.3.3.5
Erasure
[string.erasure]
21.3.4
Numeric conversions
[string.conversions]
21.3.5
Hash support
[basic.string.hash]
21.3.6
Suffix for basic_string literals
[basic.string.literals]
21.4
String view classes
[string.view]
21.4.1
Header synopsis
[string.view.synop]
21.4.2
Class template basic_string_view
[string.view.template]
21.4.2.1
Construction and assignment
[string.view.cons]
21.4.2.2
Iterator support
[string.view.iterators]
21.4.2.3
Capacity
[string.view.capacity]
21.4.2.4
Element access
[string.view.access]
21.4.2.5
Modifiers
[string.view.modifiers]
21.4.2.6
String operations
[string.view.ops]
21.4.2.7
Searching
[string.view.find]
21.4.3
Deduction guide
[string.view.deduct]
21.4.4
Non-member comparison functions
[string.view.comparison]
21.4.5
Inserters and extractors
[string.view.io]
21.4.6
Hash support
[string.view.hash]
21.4.7
Suffix for basic_string_view literals
[string.view.literals]
21.5
Null-terminated sequence utilities
[c.strings]
21.5.1
Header synopsis
[cctype.syn]
21.5.2
Header synopsis
[cwctype.syn]
21.5.3
Header synopsis
[cstring.syn]
21.5.4
Header synopsis
[cwchar.syn]
21.5.5
Header synopsis
[cuchar.syn]
21.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
22
Containers library
[containers]
22.1
General
[containers.general]
22.2
Container requirements
[container.requirements]
22.2.1
General container requirements
[container.requirements.general]
22.2.2
Container data races
[container.requirements.dataraces]
22.2.3
Sequence containers
[sequence.reqmts]
22.2.4
Node handles
[container.node]
22.2.4.1
Overview
[container.node.overview]
22.2.4.2
Constructors, copy, and assignment
[container.node.cons]
22.2.4.3
Destructor
[container.node.dtor]
22.2.4.4
Observers
[container.node.observers]
22.2.4.5
Modifiers
[container.node.modifiers]
22.2.5
Insert return type
[container.insert.return]
22.2.6
Associative containers
[associative.reqmts]
22.2.6.1
Exception safety guarantees
[associative.reqmts.except]
22.2.7
Unordered associative containers
[unord.req]
22.2.7.1
Exception safety guarantees
[unord.req.except]
22.3
Sequence containers
[sequences]
22.3.1
In general
[sequences.general]
22.3.2
Header synopsis
[array.syn]
22.3.3
Header synopsis
[deque.syn]
22.3.4
Header synopsis
[forward.list.syn]
22.3.5
Header synopsis
[list.syn]
22.3.6
Header 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, copy, and assignment
[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
[vector.bool]
22.4
Associative containers
[associative]
22.4.1
In general
[associative.general]
22.4.2
Header synopsis
[associative.map.syn]
22.4.3
Header 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 synopsis
[unord.map.syn]
22.5.3
Header 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 synopsis
[queue.syn]
22.6.3
Header 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
Definition
[stack.defn]
22.6.6.2
Constructors
[stack.cons]
22.6.6.3
Constructors with allocators
[stack.cons.alloc]
22.6.6.4
Operators
[stack.ops]
22.6.6.5
Specialized algorithms
[stack.special]
22.7
Views
[views]
22.7.1
General
[views.general]
22.7.2
Header synopsis
[span.syn]
22.7.3
Class template span
[views.span]
22.7.3.1
Overview
[span.overview]
22.7.3.2
Constructors, copy, and assignment
[span.cons]
22.7.3.3
Deduction guides
[span.deduct]
22.7.3.4
Subviews
[span.sub]
22.7.3.5
Observers
[span.obs]
22.7.3.6
Element access
[span.elem]
22.7.3.7
Iterator support
[span.iterators]
22.7.3.8
Views of object representation
[span.objectrep]
23
Iterators library
[iterators]
23.1
General
[iterators.general]
23.2
Header 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 points
[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
Cpp17Iterator
[iterator.iterators]
23.3.5.2
Input iterators
[input.iterators]
23.3.5.3
Output iterators
[output.iterators]
23.3.5.4
Forward iterators
[forward.iterators]
23.3.5.5
Bidirectional iterators
[bidirectional.iterators]
23.3.5.6
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
Standard iterator tags
[std.iterator.tags]
23.4.2
Iterator operations
[iterator.operations]
23.4.3
Range iterator operations
[range.iter.ops]
23.4.3.1
ranges::advance
[range.iter.op.advance]
23.4.3.2
ranges::distance
[range.iter.op.distance]
23.4.3.3
ranges::next
[range.iter.op.next]
23.4.3.4
ranges::prev
[range.iter.op.prev]
23.5
Iterator adaptors
[predef.iterators]
23.5.1
Reverse iterators
[reverse.iterators]
23.5.1.1
Class template reverse_iterator
[reverse.iterator]
23.5.1.2
Requirements
[reverse.iter.requirements]
23.5.1.3
Construction and assignment
[reverse.iter.cons]
23.5.1.4
Conversion
[reverse.iter.conv]
23.5.1.5
Element access
[reverse.iter.elem]
23.5.1.6
Navigation
[reverse.iter.nav]
23.5.1.7
Comparisons
[reverse.iter.cmp]
23.5.1.8
Non-member functions
[reverse.iter.nonmember]
23.5.2
Insert iterators
[insert.iterators]
23.5.2.1
Class template back_insert_iterator
[back.insert.iterator]
23.5.2.1.1
Operations
[back.insert.iter.ops]
23.5.2.1.2
back_inserter
[back.inserter]
23.5.2.2
Class template front_insert_iterator
[front.insert.iterator]
23.5.2.2.1
Operations
[front.insert.iter.ops]
23.5.2.2.2
front_inserter
[front.inserter]
23.5.2.3
Class template insert_iterator
[insert.iterator]
23.5.2.3.1
Operations
[insert.iter.ops]
23.5.2.3.2
inserter
[inserter]
23.5.3
Move iterators and sentinels
[move.iterators]
23.5.3.1
Class template move_iterator
[move.iterator]
23.5.3.2
Requirements
[move.iter.requirements]
23.5.3.3
Construction and assignment
[move.iter.cons]
23.5.3.4
Conversion
[move.iter.op.conv]
23.5.3.5
Element access
[move.iter.elem]
23.5.3.6
Navigation
[move.iter.nav]
23.5.3.7
Comparisons
[move.iter.op.comp]
23.5.3.8
Non-member functions
[move.iter.nonmember]
23.5.3.9
Class template move_sentinel
[move.sentinel]
23.5.3.10
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
Customization
[common.iter.cust]
23.5.5
Default sentinels
[default.sentinels]
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.sentinels]
23.5.7.1
Class unreachable_sentinel_t
[unreachable.sentinel]
23.6
Stream iterators
[stream.iterators]
23.6.1
Class template istream_iterator
[istream.iterator]
23.6.1.1
Constructors and destructor
[istream.iterator.cons]
23.6.1.2
Operations
[istream.iterator.ops]
23.6.2
Class template ostream_iterator
[ostream.iterator]
23.6.2.1
Constructors and destructor
[ostream.iterator.cons.des]
23.6.2.2
Operations
[ostream.iterator.ops]
23.6.3
Class template istreambuf_iterator
[istreambuf.iterator]
23.6.3.1
Class istreambuf_iterator::proxy
[istreambuf.iterator.proxy]
23.6.3.2
Constructors
[istreambuf.iterator.cons]
23.6.3.3
Operations
[istreambuf.iterator.ops]
23.6.4
Class template ostreambuf_iterator
[ostreambuf.iterator]
23.6.4.1
Constructors
[ostreambuf.iter.cons]
23.6.4.2
Operations
[ostreambuf.iter.ops]
23.7
Range access
[iterator.range]
24
Ranges library
[ranges]
24.1
General
[ranges.general]
24.2
Header synopsis
[ranges.syn]
24.3
Range access
[range.access]
24.3.1
ranges::begin
[range.access.begin]
24.3.2
ranges::end
[range.access.end]
24.3.3
ranges::cbegin
[range.access.cbegin]
24.3.4
ranges::cend
[range.access.cend]
24.3.5
ranges::rbegin
[range.access.rbegin]
24.3.6
ranges::rend
[range.access.rend]
24.3.7
ranges::crbegin
[range.access.crbegin]
24.3.8
ranges::crend
[range.access.crend]
24.3.9
ranges::size
[range.prim.size]
24.3.10
ranges::ssize
[range.prim.ssize]
24.3.11
ranges::empty
[range.prim.empty]
24.3.12
ranges::data
[range.prim.data]
24.3.13
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
Helper concepts
[range.utility.helpers]
24.5.2
View interface
[view.interface]
24.5.2.1
Members
[view.interface.members]
24.5.3
Sub-ranges
[range.subrange]
24.5.3.1
Constructors and conversions
[range.subrange.ctor]
24.5.3.2
Accessors
[range.subrange.access]
24.5.4
Dangling iterator handling
[range.dangling]
24.6
Range factories
[range.factories]
24.6.1
Empty view
[range.empty]
24.6.1.1
Overview
[range.empty.overview]
24.6.1.2
Class template empty_view
[range.empty.view]
24.6.2
Single view
[range.single]
24.6.2.1
Overview
[range.single.overview]
24.6.2.2
Class template single_view
[range.single.view]
24.6.3
Iota view
[range.iota]
24.6.3.1
Overview
[range.iota.overview]
24.6.3.2
Class template iota_view
[range.iota.view]
24.6.3.3
Class iota_view::iterator
[range.iota.iterator]
24.6.3.4
Class iota_view::sentinel
[range.iota.sentinel]
24.6.4
Istream view
[range.istream]
24.6.4.1
Overview
[range.istream.overview]
24.6.4.2
Class template basic_istream_view
[range.istream.view]
24.6.4.3
Class template basic_istream_view::iterator
[range.istream.iterator]
24.7
Range adaptors
[range.adaptors]
24.7.1
Range adaptor objects
[range.adaptor.object]
24.7.2
Semiregular wrapper
[range.semi.wrap]
24.7.3
All view
[range.all]
24.7.3.1
Class template ref_view
[range.ref.view]
24.7.4
Filter view
[range.filter]
24.7.4.1
Overview
[range.filter.overview]
24.7.4.2
Class template filter_view
[range.filter.view]
24.7.4.3
Class filter_view::iterator
[range.filter.iterator]
24.7.4.4
Class filter_view::sentinel
[range.filter.sentinel]
24.7.5
Transform view
[range.transform]
24.7.5.1
Overview
[range.transform.overview]
24.7.5.2
Class template transform_view
[range.transform.view]
24.7.5.3
Class template transform_view::iterator
[range.transform.iterator]
24.7.5.4
Class template transform_view::sentinel
[range.transform.sentinel]
24.7.6
Take view
[range.take]
24.7.6.1
Overview
[range.take.overview]
24.7.6.2
Class template take_view
[range.take.view]
24.7.6.3
Class template take_view::sentinel
[range.take.sentinel]
24.7.7
Take while view
[range.take.while]
24.7.7.1
Overview
[range.take.while.overview]
24.7.7.2
Class template take_while_view
[range.take.while.view]
24.7.7.3
Class template take_while_view::sentinel
[range.take.while.sentinel]
24.7.8
Drop view
[range.drop]
24.7.8.1
Overview
[range.drop.overview]
24.7.8.2
Class template drop_view
[range.drop.view]
24.7.9
Drop while view
[range.drop.while]
24.7.9.1
Overview
[range.drop.while.overview]
24.7.9.2
Class template drop_while_view
[range.drop.while.view]
24.7.10
Join view
[range.join]
24.7.10.1
Overview
[range.join.overview]
24.7.10.2
Class template join_view
[range.join.view]
24.7.10.3
Class template join_view::iterator
[range.join.iterator]
24.7.10.4
Class template join_view::sentinel
[range.join.sentinel]
24.7.11
Split view
[range.split]
24.7.11.1
Overview
[range.split.overview]
24.7.11.2
Class template split_view
[range.split.view]
24.7.11.3
Class template split_view::outer-iterator
[range.split.outer]
24.7.11.4
Class split_view::outer-iterator::value_type
[range.split.outer.value]
24.7.11.5
Class template split_view::inner-iterator
[range.split.inner]
24.7.12
Counted view
[range.counted]
24.7.13
Common view
[range.common]
24.7.13.1
Overview
[range.common.overview]
24.7.13.2
Class template common_view
[range.common.view]
24.7.14
Reverse view
[range.reverse]
24.7.14.1
Overview
[range.reverse.overview]
24.7.14.2
Class template reverse_view
[range.reverse.view]
24.7.15
Elements view
[range.elements]
24.7.15.1
Overview
[range.elements.overview]
24.7.15.2
Class template elements_view
[range.elements.view]
24.7.15.3
Class template elements_view::iterator
[range.elements.iterator]
24.7.15.4
Class template elements_view::sentinel
[range.elements.sentinel]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Algorithms requirements
[algorithms.requirements]
25.3
Parallel algorithms
[algorithms.parallel]
25.3.1
Preamble
[algorithms.parallel.defns]
25.3.2
Requirements on user-provided function objects
[algorithms.parallel.user]
25.3.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
25.3.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
25.3.5
ExecutionPolicy algorithm overloads
[algorithms.parallel.overloads]
25.4
Header 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
Sorting
[alg.sort]
25.8.1.1
sort
[sort]
25.8.1.2
stable_sort
[stable.sort]
25.8.1.3
partial_sort
[partial.sort]
25.8.1.4
partial_sort_copy
[partial.sort.copy]
25.8.1.5
is_sorted
[is.sorted]
25.8.2
Nth element
[alg.nth.element]
25.8.3
Binary search
[alg.binary.search]
25.8.3.1
lower_bound
[lower.bound]
25.8.3.2
upper_bound
[upper.bound]
25.8.3.3
equal_range
[equal.range]
25.8.3.4
binary_search
[binary.search]
25.8.4
Partitions
[alg.partitions]
25.8.5
Merge
[alg.merge]
25.8.6
Set operations on sorted structures
[alg.set.operations]
25.8.6.1
includes
[includes]
25.8.6.2
set_union
[set.union]
25.8.6.3
set_intersection
[set.intersection]
25.8.6.4
set_difference
[set.difference]
25.8.6.5
set_symmetric_difference
[set.symmetric.difference]
25.8.7
Heap operations
[alg.heap.operations]
25.8.7.1
push_heap
[push.heap]
25.8.7.2
pop_heap
[pop.heap]
25.8.7.3
make_heap
[make.heap]
25.8.7.4
sort_heap
[sort.heap]
25.8.7.5
is_heap
[is.heap]
25.8.8
Minimum and maximum
[alg.min.max]
25.8.9
Bounded value
[alg.clamp]
25.8.10
Lexicographical comparison
[alg.lex.comparison]
25.8.11
Three-way comparison algorithms
[alg.three.way]
25.8.12
Permutation generators
[alg.permutation.generators]
25.9
Header synopsis
[numeric.ops.overview]
25.10
Generalized numeric operations
[numeric.ops]
25.10.1
Definitions
[numerics.defns]
25.10.2
Accumulate
[accumulate]
25.10.3
Reduce
[reduce]
25.10.4
Inner product
[inner.product]
25.10.5
Transform reduce
[transform.reduce]
25.10.6
Partial sum
[partial.sum]
25.10.7
Exclusive scan
[exclusive.scan]
25.10.8
Inclusive scan
[inclusive.scan]
25.10.9
Transform exclusive scan
[transform.exclusive.scan]
25.10.10
Transform inclusive scan
[transform.inclusive.scan]
25.10.11
Adjacent difference
[adjacent.difference]
25.10.12
Iota
[numeric.iota]
25.10.13
Greatest common divisor
[numeric.ops.gcd]
25.10.14
Least common multiple
[numeric.ops.lcm]
25.10.15
Midpoint
[numeric.ops.midpoint]
25.11
Specialized algorithms
[specialized.algorithms]
25.11.1
Special memory concepts
[special.mem.concepts]
25.11.2
uninitialized_default_construct
[uninitialized.construct.default]
25.11.3
uninitialized_value_construct
[uninitialized.construct.value]
25.11.4
uninitialized_copy
[uninitialized.copy]
25.11.5
uninitialized_move
[uninitialized.move]
25.11.6
uninitialized_fill
[uninitialized.fill]
25.11.7
construct_at
[specialized.construct]
25.11.8
destroy
[specialized.destroy]
25.12
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Numeric type requirements
[numeric.requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header synopsis
[cfenv.syn]
26.4
Complex numbers
[complex.numbers]
26.4.1
Header synopsis
[complex.syn]
26.4.2
Class template complex
[complex]
26.4.3
Specializations
[complex.special]
26.4.4
Member functions
[complex.members]
26.4.5
Member operators
[complex.member.ops]
26.4.6
Non-member operations
[complex.ops]
26.4.7
Value operations
[complex.value.ops]
26.4.8
Transcendentals
[complex.transcendentals]
26.4.9
Additional overloads
[cmplx.over]
26.4.10
Suffixes for complex number literals
[complex.literals]
26.5
Bit manipulation
[bit]
26.5.1
General
[bit.general]
26.5.2
Header 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
Header synopsis
[rand.synopsis]
26.6.2
Requirements
[rand.req]
26.6.2.1
General requirements
[rand.req.genl]
26.6.2.2
Seed sequence requirements
[rand.req.seedseq]
26.6.2.3
Uniform random bit generator requirements
[rand.req.urng]
26.6.2.4
Random number engine requirements
[rand.req.eng]
26.6.2.5
Random number engine adaptor requirements
[rand.req.adapt]
26.6.2.6
Random number distribution requirements
[rand.req.dist]
26.6.3
Random number engine class templates
[rand.eng]
26.6.3.1
Class template linear_congruential_engine
[rand.eng.lcong]
26.6.3.2
Class template mersenne_twister_engine
[rand.eng.mers]
26.6.3.3
Class template subtract_with_carry_engine
[rand.eng.sub]
26.6.4
Random number engine adaptor class templates
[rand.adapt]
26.6.4.1
In general
[rand.adapt.general]
26.6.4.2
Class template discard_block_engine
[rand.adapt.disc]
26.6.4.3
Class template independent_bits_engine
[rand.adapt.ibits]
26.6.4.4
Class template shuffle_order_engine
[rand.adapt.shuf]
26.6.5
Engines and engine adaptors with predefined parameters
[rand.predef]
26.6.6
Class random_device
[rand.device]
26.6.7
Utilities
[rand.util]
26.6.7.1
Class seed_seq
[rand.util.seedseq]
26.6.7.2
Function template generate_canonical
[rand.util.canonical]
26.6.8
Random number distribution class templates
[rand.dist]
26.6.8.1
In general
[rand.dist.general]
26.6.8.2
Uniform distributions
[rand.dist.uni]
26.6.8.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
26.6.8.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
26.6.8.3
Bernoulli distributions
[rand.dist.bern]
26.6.8.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
26.6.8.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
26.6.8.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
26.6.8.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
26.6.8.4
Poisson distributions
[rand.dist.pois]
26.6.8.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
26.6.8.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
26.6.8.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
26.6.8.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
26.6.8.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
26.6.8.5
Normal distributions
[rand.dist.norm]
26.6.8.5.1
Class template normal_distribution
[rand.dist.norm.normal]
26.6.8.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
26.6.8.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
26.6.8.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
26.6.8.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
26.6.8.5.6
Class template student_t_distribution
[rand.dist.norm.t]
26.6.8.6
Sampling distributions
[rand.dist.samp]
26.6.8.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
26.6.8.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
26.6.8.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
26.6.9
Low-quality random number generation
[c.math.rand]
26.7
Numeric arrays
[numarray]
26.7.1
Header 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 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
Associated Laguerre polynomials
[sf.cmath.assoc.laguerre]
26.8.6.2
Associated Legendre functions
[sf.cmath.assoc.legendre]
26.8.6.3
Beta function
[sf.cmath.beta]
26.8.6.4
Complete elliptic integral of the first kind
[sf.cmath.comp.ellint.1]
26.8.6.5
Complete elliptic integral of the second kind
[sf.cmath.comp.ellint.2]
26.8.6.6
Complete elliptic integral of the third kind
[sf.cmath.comp.ellint.3]
26.8.6.7
Regular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.i]
26.8.6.8
Cylindrical Bessel functions of the first kind
[sf.cmath.cyl.bessel.j]
26.8.6.9
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.k]
26.8.6.10
Cylindrical Neumann functions
[sf.cmath.cyl.neumann]
26.8.6.11
Incomplete elliptic integral of the first kind
[sf.cmath.ellint.1]
26.8.6.12
Incomplete elliptic integral of the second kind
[sf.cmath.ellint.2]
26.8.6.13
Incomplete elliptic integral of the third kind
[sf.cmath.ellint.3]
26.8.6.14
Exponential integral
[sf.cmath.expint]
26.8.6.15
Hermite polynomials
[sf.cmath.hermite]
26.8.6.16
Laguerre polynomials
[sf.cmath.laguerre]
26.8.6.17
Legendre polynomials
[sf.cmath.legendre]
26.8.6.18
Riemann zeta function
[sf.cmath.riemann.zeta]
26.8.6.19
Spherical Bessel functions of the first kind
[sf.cmath.sph.bessel]
26.8.6.20
Spherical associated Legendre functions
[sf.cmath.sph.legendre]
26.8.6.21
Spherical Neumann functions
[sf.cmath.sph.neumann]
26.9
Numbers
[numbers]
26.9.1
Header synopsis
[numbers.syn]
26.9.2
Mathematical constants
[math.constants]
27
Time library
[time]
27.1
General
[time.general]
27.2
Header 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
Constructors
[time.duration.cons]
27.5.2
Observer
[time.duration.observer]
27.5.3
Arithmetic
[time.duration.arithmetic]
27.5.4
Special values
[time.duration.special]
27.5.5
Non-member arithmetic
[time.duration.nonmember]
27.5.6
Comparisons
[time.duration.comparisons]
27.5.7
Conversions
[time.duration.cast]
27.5.8
Suffixes for duration literals
[time.duration.literals]
27.5.9
Algorithms
[time.duration.alg]
27.5.10
I/O
[time.duration.io]
27.6
Class template time_point
[time.point]
27.6.1
Constructors
[time.point.cons]
27.6.2
Observer
[time.point.observer]
27.6.3
Arithmetic
[time.point.arithmetic]
27.6.4
Special values
[time.point.special]
27.6.5
Non-member arithmetic
[time.point.nonmember]
27.6.6
Comparisons
[time.point.comparisons]
27.6.7
Conversions
[time.point.cast]
27.7
Clocks
[time.clock]
27.7.1
Class system_clock
[time.clock.system]
27.7.1.1
Overview
[time.clock.system.overview]
27.7.1.2
Members
[time.clock.system.members]
27.7.1.3
Non-member functions
[time.clock.system.nonmembers]
27.7.2
Class utc_clock
[time.clock.utc]
27.7.2.1
Overview
[time.clock.utc.overview]
27.7.2.2
Member functions
[time.clock.utc.members]
27.7.2.3
Non-member functions
[time.clock.utc.nonmembers]
27.7.3
Class tai_clock
[time.clock.tai]
27.7.3.1
Overview
[time.clock.tai.overview]
27.7.3.2
Member functions
[time.clock.tai.members]
27.7.3.3
Non-member functions
[time.clock.tai.nonmembers]
27.7.4
Class gps_clock
[time.clock.gps]
27.7.4.1
Overview
[time.clock.gps.overview]
27.7.4.2
Member functions
[time.clock.gps.members]
27.7.4.3
Non-member functions
[time.clock.gps.nonmembers]
27.7.5
Type file_clock
[time.clock.file]
27.7.5.1
Overview
[time.clock.file.overview]
27.7.5.2
Member functions
[time.clock.file.members]
27.7.5.3
Non-member functions
[time.clock.file.nonmembers]
27.7.6
Class steady_clock
[time.clock.steady]
27.7.7
Class high_resolution_clock
[time.clock.hires]
27.7.8
Local time
[time.clock.local]
27.7.9
time_point conversions
[time.clock.cast]
27.7.9.1
Class template clock_time_conversion
[time.clock.conv]
27.7.9.2
Identity conversions
[time.clock.cast.id]
27.7.9.3
Conversions between system_clock and utc_clock
[time.clock.cast.sys.utc]
27.7.9.4
Conversions between system_clock and other clocks
[time.clock.cast.sys]
27.7.9.5
Conversions between utc_clock and other clocks
[time.clock.cast.utc]
27.7.9.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 synopsis
[ctime.syn]
28
Localization library
[localization]
28.1
General
[localization.general]
28.2
Header synopsis
[locale.syn]
28.3
Locales
[locales]
28.3.1
Class locale
[locale]
28.3.1.1
Types
[locale.types]
28.3.1.1.1
Type locale::category
[locale.category]
28.3.1.1.2
Class locale::facet
[locale.facet]
28.3.1.1.3
Class locale::id
[locale.id]
28.3.1.2
Constructors and destructor
[locale.cons]
28.3.1.3
Members
[locale.members]
28.3.1.4
Operators
[locale.operators]
28.3.1.5
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
Conversions
[conversions]
28.3.3.2.1
Character conversions
[conversions.character]
28.4
Standard locale categories
[locale.categories]
28.4.1
The ctype category
[category.ctype]
28.4.1.1
Class template ctype
[locale.ctype]
28.4.1.1.1
ctype members
[locale.ctype.members]
28.4.1.1.2
ctype virtual functions
[locale.ctype.virtuals]
28.4.1.2
Class template ctype_byname
[locale.ctype.byname]
28.4.1.3
ctype specialization
[facet.ctype.special]
28.4.1.3.1
Destructor
[facet.ctype.char.dtor]
28.4.1.3.2
Members
[facet.ctype.char.members]
28.4.1.3.3
Static members
[facet.ctype.char.statics]
28.4.1.3.4
Virtual functions
[facet.ctype.char.virtuals]
28.4.1.4
Class template codecvt
[locale.codecvt]
28.4.1.4.1
Members
[locale.codecvt.members]
28.4.1.4.2
Virtual functions
[locale.codecvt.virtuals]
28.4.1.5
Class template codecvt_byname
[locale.codecvt.byname]
28.4.2
The numeric category
[category.numeric]
28.4.2.1
Class template num_get
[locale.num.get]
28.4.2.1.1
Members
[facet.num.get.members]
28.4.2.1.2
Virtual functions
[facet.num.get.virtuals]
28.4.2.2
Class template num_put
[locale.nm.put]
28.4.2.2.1
Members
[facet.num.put.members]
28.4.2.2.2
Virtual functions
[facet.num.put.virtuals]
28.4.3
The numeric punctuation facet
[facet.numpunct]
28.4.3.1
Class template numpunct
[locale.numpunct]
28.4.3.1.1
Members
[facet.numpunct.members]
28.4.3.1.2
Virtual functions
[facet.numpunct.virtuals]
28.4.3.2
Class template numpunct_byname
[locale.numpunct.byname]
28.4.4
The collate category
[category.collate]
28.4.4.1
Class template collate
[locale.collate]
28.4.4.1.1
Members
[locale.collate.members]
28.4.4.1.2
Virtual functions
[locale.collate.virtuals]
28.4.4.2
Class template collate_byname
[locale.collate.byname]
28.4.5
The time category
[category.time]
28.4.5.1
Class template time_get
[locale.time.get]
28.4.5.1.1
Members
[locale.time.get.members]
28.4.5.1.2
Virtual functions
[locale.time.get.virtuals]
28.4.5.2
Class template time_get_byname
[locale.time.get.byname]
28.4.5.3
Class template time_put
[locale.time.put]
28.4.5.3.1
Members
[locale.time.put.members]
28.4.5.3.2
Virtual functions
[locale.time.put.virtuals]
28.4.5.4
Class template time_put_byname
[locale.time.put.byname]
28.4.6
The monetary category
[category.monetary]
28.4.6.1
Class template money_get
[locale.money.get]
28.4.6.1.1
Members
[locale.money.get.members]
28.4.6.1.2
Virtual functions
[locale.money.get.virtuals]
28.4.6.2
Class template money_put
[locale.money.put]
28.4.6.2.1
Members
[locale.money.put.members]
28.4.6.2.2
Virtual functions
[locale.money.put.virtuals]
28.4.6.3
Class template moneypunct
[locale.moneypunct]
28.4.6.3.1
Members
[locale.moneypunct.members]
28.4.6.3.2
Virtual functions
[locale.moneypunct.virtuals]
28.4.6.4
Class template moneypunct_byname
[locale.moneypunct.byname]
28.4.7
The message retrieval category
[category.messages]
28.4.7.1
Class template messages
[locale.messages]
28.4.7.1.1
Members
[locale.messages.members]
28.4.7.1.2
Virtual functions
[locale.messages.virtuals]
28.4.7.2
Class template messages_byname
[locale.messages.byname]
28.5
C library locales
[c.locales]
28.5.1
Header synopsis
[clocale.syn]
29
Input/output library
[input.output]
29.1
General
[input.output.general]
29.2
Iostreams requirements
[iostreams.requirements]
29.2.1
Imbue limitations
[iostream.limits.imbue]
29.2.2
Positioning type limitations
[iostreams.limits.pos]
29.2.3
Thread safety
[iostreams.threadsafety]
29.3
Forward declarations
[iostream.forward]
29.3.1
Header synopsis
[iosfwd.syn]
29.3.2
Overview
[iostream.forward.overview]
29.4
Standard iostream objects
[iostream.objects]
29.4.1
Header 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 synopsis
[ios.syn]
29.5.2
Types
[stream.types]
29.5.3
Class ios_base
[ios.base]
29.5.3.1
Types
[ios.types]
29.5.3.1.1
Class ios_base::failure
[ios.failure]
29.5.3.1.2
Type ios_base::fmtflags
[ios.fmtflags]
29.5.3.1.3
Type ios_base::iostate
[ios.iostate]
29.5.3.1.4
Type ios_base::openmode
[ios.openmode]
29.5.3.1.5
Type ios_base::seekdir
[ios.seekdir]
29.5.3.1.6
Class ios_base::Init
[ios.init]
29.5.3.2
State functions
[fmtflags.state]
29.5.3.3
Functions
[ios.base.locales]
29.5.3.4
Static members
[ios.members.static]
29.5.3.5
Storage functions
[ios.base.storage]
29.5.3.6
Callbacks
[ios.base.callback]
29.5.3.7
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 synopsis
[streambuf.syn]
29.6.2
Stream buffer requirements
[streambuf.reqts]
29.6.3
Class template basic_streambuf
[streambuf]
29.6.3.1
Constructors
[streambuf.cons]
29.6.3.2
Public member functions
[streambuf.members]
29.6.3.2.1
Locales
[streambuf.locales]
29.6.3.2.2
Buffer management and positioning
[streambuf.buffer]
29.6.3.2.3
Get area
[streambuf.pub.get]
29.6.3.2.4
Putback
[streambuf.pub.pback]
29.6.3.2.5
Put area
[streambuf.pub.put]
29.6.3.3
Protected member functions
[streambuf.protected]
29.6.3.3.1
Assignment
[streambuf.assign]
29.6.3.3.2
Get area access
[streambuf.get.area]
29.6.3.3.3
Put area access
[streambuf.put.area]
29.6.3.4
Virtual functions
[streambuf.virtuals]
29.6.3.4.1
Locales
[streambuf.virt.locales]
29.6.3.4.2
Buffer management and positioning
[streambuf.virt.buffer]
29.6.3.4.3
Get area
[streambuf.virt.get]
29.6.3.4.4
Putback
[streambuf.virt.pback]
29.6.3.4.5
Put area
[streambuf.virt.put]
29.7
Formatting and manipulators
[iostream.format]
29.7.1
Header synopsis
[istream.syn]
29.7.2
Header synopsis
[ostream.syn]
29.7.3
Header synopsis
[iomanip.syn]
29.7.4
Input streams
[input.streams]
29.7.4.1
Class template basic_istream
[istream]
29.7.4.1.1
Constructors
[istream.cons]
29.7.4.1.2
Assignment and swap
[istream.assign]
29.7.4.1.3
Class basic_istream::sentry
[istream.sentry]
29.7.4.2
Formatted input functions
[istream.formatted]
29.7.4.2.1
Common requirements
[istream.formatted.reqmts]
29.7.4.2.2
Arithmetic extractors
[istream.formatted.arithmetic]
29.7.4.2.3
basic_istream::operator>>
[istream.extractors]
29.7.4.3
Unformatted input functions
[istream.unformatted]
29.7.4.4
Standard basic_istream manipulators
[istream.manip]
29.7.4.5
Rvalue stream extraction
[istream.rvalue]
29.7.4.6
Class template basic_iostream
[iostreamclass]
29.7.4.6.1
Constructors
[iostream.cons]
29.7.4.6.2
Destructor
[iostream.dest]
29.7.4.6.3
Assignment and swap
[iostream.assign]
29.7.5
Output streams
[output.streams]
29.7.5.1
Class template basic_ostream
[ostream]
29.7.5.1.1
Constructors
[ostream.cons]
29.7.5.1.2
Assignment and swap
[ostream.assign]
29.7.5.1.3
Class basic_ostream::sentry
[ostream.sentry]
29.7.5.1.4
Seek members
[ostream.seeks]
29.7.5.2
Formatted output functions
[ostream.formatted]
29.7.5.2.1
Common requirements
[ostream.formatted.reqmts]
29.7.5.2.2
Arithmetic inserters
[ostream.inserters.arithmetic]
29.7.5.2.3
basic_ostream::operator<<
[ostream.inserters]
29.7.5.2.4
Character inserter function templates
[ostream.inserters.character]
29.7.5.3
Unformatted output functions
[ostream.unformatted]
29.7.5.4
Standard manipulators
[ostream.manip]
29.7.5.5
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 synopsis
[sstream.syn]
29.8.2
Class template basic_stringbuf
[stringbuf]
29.8.2.1
Constructors
[stringbuf.cons]
29.8.2.2
Assignment and swap
[stringbuf.assign]
29.8.2.3
Member functions
[stringbuf.members]
29.8.2.4
Overridden virtual functions
[stringbuf.virtuals]
29.8.3
Class template basic_istringstream
[istringstream]
29.8.3.1
Constructors
[istringstream.cons]
29.8.3.2
Assignment and swap
[istringstream.assign]
29.8.3.3
Member functions
[istringstream.members]
29.8.4
Class template basic_ostringstream
[ostringstream]
29.8.4.1
Constructors
[ostringstream.cons]
29.8.4.2
Assignment and swap
[ostringstream.assign]
29.8.4.3
Member functions
[ostringstream.members]
29.8.5
Class template basic_stringstream
[stringstream]
29.8.5.1
Constructors
[stringstream.cons]
29.8.5.2
Assignment and swap
[stringstream.assign]
29.8.5.3
Member functions
[stringstream.members]
29.9
File-based streams
[file.streams]
29.9.1
Header synopsis
[fstream.syn]
29.9.2
Class template basic_filebuf
[filebuf]
29.9.2.1
Constructors
[filebuf.cons]
29.9.2.2
Assignment and swap
[filebuf.assign]
29.9.2.3
Member functions
[filebuf.members]
29.9.2.4
Overridden virtual functions
[filebuf.virtuals]
29.9.3
Class template basic_ifstream
[ifstream]
29.9.3.1
Constructors
[ifstream.cons]
29.9.3.2
Assignment and swap
[ifstream.assign]
29.9.3.3
Member functions
[ifstream.members]
29.9.4
Class template basic_ofstream
[ofstream]
29.9.4.1
Constructors
[ofstream.cons]
29.9.4.2
Assignment and swap
[ofstream.assign]
29.9.4.3
Member functions
[ofstream.members]
29.9.5
Class template basic_fstream
[fstream]
29.9.5.1
Constructors
[fstream.cons]
29.9.5.2
Assignment and swap
[fstream.assign]
29.9.5.3
Member functions
[fstream.members]
29.10
Synchronized output streams
[syncstream]
29.10.1
Header 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
POSIX conformance
[fs.conform.9945]
29.11.2.2
Operating system dependent behavior conformance
[fs.conform.os]
29.11.2.3
File system race behavior
[fs.race.behavior]
29.11.3
Normative references
[fs.norm.ref]
29.11.4
Requirements
[fs.req]
29.11.4.1
Namespaces and headers
[fs.req.namespace]
29.11.5
Header synopsis
[fs.filesystem.syn]
29.11.6
Error reporting
[fs.err.report]
29.11.7
Class path
[fs.class.path]
29.11.7.1
Generic pathname format
[fs.path.generic]
29.11.7.2
Conversions
[fs.path.cvt]
29.11.7.2.1
Argument format conversions
[fs.path.fmt.cvt]
29.11.7.2.2
Type and encoding conversions
[fs.path.type.cvt]
29.11.7.3
Requirements
[fs.path.req]
29.11.7.4
Members
[fs.path.member]
29.11.7.4.1
Constructors
[fs.path.construct]
29.11.7.4.2
Assignments
[fs.path.assign]
29.11.7.4.3
Appends
[fs.path.append]
29.11.7.4.4
Concatenation
[fs.path.concat]
29.11.7.4.5
Modifiers
[fs.path.modifiers]
29.11.7.4.6
Native format observers
[fs.path.native.obs]
29.11.7.4.7
Generic format observers
[fs.path.generic.obs]
29.11.7.4.8
Compare
[fs.path.compare]
29.11.7.4.9
Decomposition
[fs.path.decompose]
29.11.7.4.10
Query
[fs.path.query]
29.11.7.4.11
Generation
[fs.path.gen]
29.11.7.5
Iterators
[fs.path.itr]
29.11.7.6
Inserter and extractor
[fs.path.io]
29.11.7.7
Non-member functions
[fs.path.nonmember]
29.11.8
Class filesystem_error
[fs.class.filesystem.error]
29.11.8.1
Members
[fs.filesystem.error.members]
29.11.9
Enumerations
[fs.enum]
29.11.9.1
Enum path::format
[fs.enum.path.format]
29.11.9.2
Enum class file_type
[fs.enum.file.type]
29.11.9.3
Enum class copy_options
[fs.enum.copy.opts]
29.11.9.4
Enum class perms
[fs.enum.perms]
29.11.9.5
Enum class perm_options
[fs.enum.perm.opts]
29.11.9.6
Enum class directory_options
[fs.enum.dir.opts]
29.11.10
Class file_status
[fs.class.file.status]
29.11.10.1
Constructors
[fs.file.status.cons]
29.11.10.2
Observers
[fs.file.status.obs]
29.11.10.3
Modifiers
[fs.file.status.mods]
29.11.11
Class directory_entry
[fs.class.directory.entry]
29.11.11.1
Constructors
[fs.dir.entry.cons]
29.11.11.2
Modifiers
[fs.dir.entry.mods]
29.11.11.3
Observers
[fs.dir.entry.obs]
29.11.12
Class directory_iterator
[fs.class.directory.iterator]
29.11.12.1
Members
[fs.dir.itr.members]
29.11.12.2
Non-member functions
[fs.dir.itr.nonmembers]
29.11.13
Class recursive_directory_iterator
[fs.class.rec.dir.itr]
29.11.13.1
Members
[fs.rec.dir.itr.members]
29.11.13.2
Non-member functions
[fs.rec.dir.itr.nonmembers]
29.11.14
Filesystem operation functions
[fs.op.funcs]
29.11.14.1
Absolute
[fs.op.absolute]
29.11.14.2
Canonical
[fs.op.canonical]
29.11.14.3
Copy
[fs.op.copy]
29.11.14.4
Copy file
[fs.op.copy.file]
29.11.14.5
Copy symlink
[fs.op.copy.symlink]
29.11.14.6
Create directories
[fs.op.create.directories]
29.11.14.7
Create directory
[fs.op.create.directory]
29.11.14.8
Create directory symlink
[fs.op.create.dir.symlk]
29.11.14.9
Create hard link
[fs.op.create.hard.lk]
29.11.14.10
Create symlink
[fs.op.create.symlink]
29.11.14.11
Current path
[fs.op.current.path]
29.11.14.12
Equivalent
[fs.op.equivalent]
29.11.14.13
Exists
[fs.op.exists]
29.11.14.14
File size
[fs.op.file.size]
29.11.14.15
Hard link count
[fs.op.hard.lk.ct]
29.11.14.16
Is block file
[fs.op.is.block.file]
29.11.14.17
Is character file
[fs.op.is.char.file]
29.11.14.18
Is directory
[fs.op.is.directory]
29.11.14.19
Is empty
[fs.op.is.empty]
29.11.14.20
Is fifo
[fs.op.is.fifo]
29.11.14.21
Is other
[fs.op.is.other]
29.11.14.22
Is regular file
[fs.op.is.regular.file]
29.11.14.23
Is socket
[fs.op.is.socket]
29.11.14.24
Is symlink
[fs.op.is.symlink]
29.11.14.25
Last write time
[fs.op.last.write.time]
29.11.14.26
Permissions
[fs.op.permissions]
29.11.14.27
Proximate
[fs.op.proximate]
29.11.14.28
Read symlink
[fs.op.read.symlink]
29.11.14.29
Relative
[fs.op.relative]
29.11.14.30
Remove
[fs.op.remove]
29.11.14.31
Remove all
[fs.op.remove.all]
29.11.14.32
Rename
[fs.op.rename]
29.11.14.33
Resize file
[fs.op.resize.file]
29.11.14.34
Space
[fs.op.space]
29.11.14.35
Status
[fs.op.status]
29.11.14.36
Status known
[fs.op.status.known]
29.11.14.37
Symlink status
[fs.op.symlink.status]
29.11.14.38
Temporary directory path
[fs.op.temp.dir.path]
29.11.14.39
Weakly canonical
[fs.op.weakly.canonical]
29.12
C library files
[c.files]
29.12.1
Header synopsis
[cstdio.syn]
29.12.2
Header synopsis
[cinttypes.syn]
30
Regular expressions library
[re]
30.1
General
[re.general]
30.2
Definitions
[re.def]
30.2.1
collating element
[defns.regex.collating.element]
30.2.2
finite state machine
[defns.regex.finite.state.machine]
30.2.3
format specifier
[defns.regex.format.specifier]
30.2.4
matched
[defns.regex.matched]
30.2.5
primary equivalence class
[defns.regex.primary.equivalence.class]
30.2.6
regular expression
[defns.regex.regular.expression]
30.2.7
sub-expression
[defns.regex.subexpression]
30.3
Requirements
[re.req]
30.4
Header synopsis
[re.syn]
30.5
Namespace std::regex_constants
[re.const]
30.5.1
Bitmask type syntax_option_type
[re.synopt]
30.5.2
Bitmask type match_flag_type
[re.matchflag]
30.5.3
Implementation-defined error_type
[re.err]
30.6
Class regex_error
[re.badexp]
30.7
Class template regex_traits
[re.traits]
30.8
Class template basic_regex
[re.regex]
30.8.1
Constructors
[re.regex.construct]
30.8.2
Assignment
[re.regex.assign]
30.8.3
Constant operations
[re.regex.operations]
30.8.4
Locale
[re.regex.locale]
30.8.5
Swap
[re.regex.swap]
30.8.6
Non-member functions
[re.regex.nonmemb]
30.9
Class template sub_match
[re.submatch]
30.9.1
Members
[re.submatch.members]
30.9.2
Non-member operators
[re.submatch.op]
30.10
Class template match_results
[re.results]
30.10.1
Constructors
[re.results.const]
30.10.2
State
[re.results.state]
30.10.3
Size
[re.results.size]
30.10.4
Element access
[re.results.acc]
30.10.5
Formatting
[re.results.form]
30.10.6
Allocator
[re.results.all]
30.10.7
Swap
[re.results.swap]
30.10.8
Non-member functions
[re.results.nonmember]
30.11
Regular expression algorithms
[re.alg]
30.11.1
Exceptions
[re.except]
30.11.2
regex_match
[re.alg.match]
30.11.3
regex_search
[re.alg.search]
30.11.4
regex_replace
[re.alg.replace]
30.12
Regular expression iterators
[re.iter]
30.12.1
Class template regex_iterator
[re.regiter]
30.12.1.1
Constructors
[re.regiter.cnstr]
30.12.1.2
Comparisons
[re.regiter.comp]
30.12.1.3
Indirection
[re.regiter.deref]
30.12.1.4
Increment
[re.regiter.incr]
30.12.2
Class template regex_token_iterator
[re.tokiter]
30.12.2.1
Constructors
[re.tokiter.cnstr]
30.12.2.2
Comparisons
[re.tokiter.comp]
30.12.2.3
Indirection
[re.tokiter.deref]
30.12.2.4
Increment
[re.tokiter.incr]
30.13
Modified ECMAScript regular expression grammar
[re.grammar]
31
Atomic operations library
[atomics]
31.1
General
[atomics.general]
31.2
Header 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
Operations
[atomics.ref.ops]
31.7.2
Specializations for integral types
[atomics.ref.int]
31.7.3
Specializations for floating-point types
[atomics.ref.float]
31.7.4
Partial specialization for pointers
[atomics.ref.pointer]
31.7.5
Member operators common to integers and pointers to objects
[atomics.ref.memop]
31.8
Class template atomic
[atomics.types.generic]
31.8.1
Operations on atomic types
[atomics.types.operations]
31.8.2
Specializations for integers
[atomics.types.int]
31.8.3
Specializations for floating-point types
[atomics.types.float]
31.8.4
Partial specialization for pointers
[atomics.types.pointer]
31.8.5
Member operators common to integers and pointers to objects
[atomics.types.memop]
31.8.6
Partial specializations for smart pointers
[util.smartptr.atomic]
31.8.6.1
Partial specialization for shared_ptr
[util.smartptr.atomic.shared]
31.8.6.2
Partial specialization for weak_ptr
[util.smartptr.atomic.weak]
31.9
Non-member functions
[atomics.nonmembers]
31.10
Flag type and operations
[atomics.flag]
31.11
Fences
[atomics.fences]
32
Thread support library
[thread]
32.1
General
[thread.general]
32.2
Requirements
[thread.req]
32.2.1
Template parameter names
[thread.req.paramname]
32.2.2
Exceptions
[thread.req.exception]
32.2.3
Native handles
[thread.req.native]
32.2.4
Timing specifications
[thread.req.timing]
32.2.5
Requirements for Cpp17Lockable types
[thread.req.lockable]
32.2.5.1
In general
[thread.req.lockable.general]
32.2.5.2
Cpp17BasicLockable requirements
[thread.req.lockable.basic]
32.2.5.3
Cpp17Lockable requirements
[thread.req.lockable.req]
32.2.5.4
Cpp17TimedLockable requirements
[thread.req.lockable.timed]
32.3
Stop tokens
[thread.stoptoken]
32.3.1
Introduction
[thread.stoptoken.intro]
32.3.2
Header synopsis
[thread.stoptoken.syn]
32.3.3
Class stop_token
[stoptoken]
32.3.3.1
Constructors, copy, and assignment
[stoptoken.cons]
32.3.3.2
Members
[stoptoken.mem]
32.3.3.3
Non-member functions
[stoptoken.nonmembers]
32.3.4
Class stop_source
[stopsource]
32.3.4.1
Constructors, copy, and assignment
[stopsource.cons]
32.3.4.2
Members
[stopsource.mem]
32.3.4.3
Non-member functions
[stopsource.nonmembers]
32.3.5
Class template stop_callback
[stopcallback]
32.3.5.1
Constructors and destructor
[stopcallback.cons]
32.4
Threads
[thread.threads]
32.4.1
Header synopsis
[thread.syn]
32.4.2
Class thread
[thread.thread.class]
32.4.2.1
Class thread::id
[thread.thread.id]
32.4.2.2
Constructors
[thread.thread.constr]
32.4.2.3
Destructor
[thread.thread.destr]
32.4.2.4
Assignment
[thread.thread.assign]
32.4.2.5
Members
[thread.thread.member]
32.4.2.6
Static members
[thread.thread.static]
32.4.2.7
Specialized algorithms
[thread.thread.algorithm]
32.4.3
Class jthread
[thread.jthread.class]
32.4.3.1
Constructors, move, and assignment
[thread.jthread.cons]
32.4.3.2
Members
[thread.jthread.mem]
32.4.3.3
Stop token handling
[thread.jthread.stop]
32.4.3.4
Specialized algorithms
[thread.jthread.special]
32.4.3.5
Static members
[thread.jthread.static]
32.4.4
Namespace this_thread
[thread.thread.this]
32.5
Mutual exclusion
[thread.mutex]
32.5.1
Header synopsis
[mutex.syn]
32.5.2
Header synopsis
[shared.mutex.syn]
32.5.3
Mutex requirements
[thread.mutex.requirements]
32.5.3.1
In general
[thread.mutex.requirements.general]
32.5.3.2
Mutex types
[thread.mutex.requirements.mutex]
32.5.3.2.1
Class mutex
[thread.mutex.class]
32.5.3.2.2
Class recursive_mutex
[thread.mutex.recursive]
32.5.3.3
Timed mutex types
[thread.timedmutex.requirements]
32.5.3.3.1
Class timed_mutex
[thread.timedmutex.class]
32.5.3.3.2
Class recursive_timed_mutex
[thread.timedmutex.recursive]
32.5.3.4
Shared mutex types
[thread.sharedmutex.requirements]
32.5.3.4.1
Class shared_mutex
[thread.sharedmutex.class]
32.5.3.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
32.5.3.5.1
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
32.5.4
Locks
[thread.lock]
32.5.4.1
Class template lock_guard
[thread.lock.guard]
32.5.4.2
Class template scoped_lock
[thread.lock.scoped]
32.5.4.3
Class template unique_lock
[thread.lock.unique]
32.5.4.3.1
Constructors, destructor, and assignment
[thread.lock.unique.cons]
32.5.4.3.2
Locking
[thread.lock.unique.locking]
32.5.4.3.3
Modifiers
[thread.lock.unique.mod]
32.5.4.3.4
Observers
[thread.lock.unique.obs]
32.5.4.4
Class template shared_lock
[thread.lock.shared]
32.5.4.4.1
Constructors, destructor, and assignment
[thread.lock.shared.cons]
32.5.4.4.2
Locking
[thread.lock.shared.locking]
32.5.4.4.3
Modifiers
[thread.lock.shared.mod]
32.5.4.4.4
Observers
[thread.lock.shared.obs]
32.5.5
Generic locking algorithms
[thread.lock.algorithm]
32.5.6
Call once
[thread.once]
32.5.6.1
Struct once_flag
[thread.once.onceflag]
32.5.6.2
Function call_once
[thread.once.callonce]
32.6
Condition variables
[thread.condition]
32.6.1
Header synopsis
[condition.variable.syn]
32.6.2
Non-member functions
[thread.condition.nonmember]
32.6.3
Class condition_variable
[thread.condition.condvar]
32.6.4
Class condition_variable_any
[thread.condition.condvarany]
32.6.4.1
Noninterruptible waits
[thread.condvarany.wait]
32.6.4.2
Interruptible waits
[thread.condvarany.intwait]
32.7
Semaphore
[thread.sema]
32.7.1
Header synopsis
[semaphore.syn]
32.7.2
Class template counting_semaphore
[thread.sema.cnt]
32.8
Coordination types
[thread.coord]
32.8.1
Latches
[thread.latch]
32.8.1.1
Header synopsis
[latch.syn]
32.8.1.2
Class latch
[thread.latch.class]
32.8.2
Barriers
[thread.barrier]
32.8.2.1
Header synopsis
[barrier.syn]
32.8.2.2
Class template barrier
[thread.barrier.class]
32.9
Futures
[futures]
32.9.1
Overview
[futures.overview]
32.9.2
Header 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
Member functions
[futures.task.members]
32.9.10.2
Globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
A.1
Keywords
[gram.key]
A.2
Lexical conventions
[gram.lex]
A.3
Basics
[gram.basic]
A.4
Expressions
[gram.expr]
A.5
Statements
[gram.stmt]
A.6
Declarations
[gram.dcl]
A.7
Modules
[gram.module]
A.8
Classes
[gram.class]
A.9
Overloading
[gram.over]
A.10
Templates
[gram.temp]
A.11
Exception handling
[gram.except]
A.12
Preprocessing directives
[gram.cpp]
Annex B (informative)
Implementation quantities
[implimits]
Annex C (informative)
Compatibility
[diff]
C.1
C++ and ISO C++ 2017
[diff.cpp17]
C.1.1
[lex]: lexical conventions
[diff.cpp17.lex]
C.1.2
[basic]: basics
[diff.cpp17.basic]
C.1.3
[expr]: expressions
[diff.cpp17.expr]
C.1.4
[dcl.dcl]: declarations
[diff.cpp17.dcl.dcl]
C.1.5
[class]: classes
[diff.cpp17.class]
C.1.6
[over]: overloading
[diff.cpp17.over]
C.1.7
[temp]: templates
[diff.cpp17.temp]
C.1.8
[except]: exception handling
[diff.cpp17.except]
C.1.9
[library]: library introduction
[diff.cpp17.library]
C.1.10
[containers]: containers library
[diff.cpp17.containers]
C.1.11
[iterators]: iterators library
[diff.cpp17.iterators]
C.1.12
[algorithms]: algorithms library
[diff.cpp17.alg.reqs]
C.1.13
[input.output]: input/output library
[diff.cpp17.input.output]
C.1.14
[depr]: compatibility features
[diff.cpp17.depr]
C.2
C++ and ISO C++ 2014
[diff.cpp14]
C.2.1
[lex]: lexical conventions
[diff.cpp14.lex]
C.2.2
[expr]: expressions
[diff.cpp14.expr]
C.2.3
[dcl.dcl]: declarations
[diff.cpp14.dcl.dcl]
C.2.4
[class]: classes
[diff.cpp14.class]
C.2.5
[temp]: templates
[diff.cpp14.temp]
C.2.6
[except]: exception handling
[diff.cpp14.except]
C.2.7
[library]: library introduction
[diff.cpp14.library]
C.2.8
[utilities]: general utilities library
[diff.cpp14.utilities]
C.2.9
[strings]: strings library
[diff.cpp14.string]
C.2.10
[containers]: containers library
[diff.cpp14.containers]
C.2.11
[depr]: compatibility features
[diff.cpp14.depr]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
[lex]: lexical conventions
[diff.cpp11.lex]
C.3.2
[basic]: basics
[diff.cpp11.basic]
C.3.3
[expr]: expressions
[diff.cpp11.expr]
C.3.4
[dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.5
[library]: library introduction
[diff.cpp11.library]
C.3.6
[input.output]: input/output library
[diff.cpp11.input.output]
C.4
C++ and ISO C++ 2003
[diff.cpp03]
C.4.1
[lex]: lexical conventions
[diff.cpp03.lex]
C.4.2
[expr]: expressions
[diff.cpp03.expr]
C.4.3
[dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.4.4
[class]: classes
[diff.cpp03.class]
C.4.5
[temp]: templates
[diff.cpp03.temp]
C.4.6
[library]: library introduction
[diff.cpp03.library]
C.4.7
[support]: language support library
[diff.cpp03.language.support]
C.4.8
[diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.4.9
[utilities]: general utilities library
[diff.cpp03.utilities]
C.4.10
[strings]: strings library
[diff.cpp03.strings]
C.4.11
[containers]: containers library
[diff.cpp03.containers]
C.4.12
[algorithms]: algorithms library
[diff.cpp03.algorithms]
C.4.13
[numerics]: numerics library
[diff.cpp03.numerics]
C.4.14
[input.output]: input/output library
[diff.cpp03.input.output]
C.5
C++ and ISO C
[diff.iso]
C.5.1
[lex]: lexical conventions
[diff.lex]
C.5.2
[basic]: basics
[diff.basic]
C.5.3
[expr]: expressions
[diff.expr]
C.5.4
[stmt.stmt]: statements
[diff.stat]
C.5.5
[dcl.dcl]: declarations
[diff.dcl]
C.5.6
[class]: classes
[diff.class]
C.5.7
[cpp]: preprocessing directives
[diff.cpp]
C.6
C standard library
[diff.library]
C.6.1
Modifications to headers
[diff.mods.to.headers]
C.6.2
Modifications to definitions
[diff.mods.to.definitions]
C.6.2.1
Types char16_t and char32_t
[diff.char16]
C.6.2.2
Type wchar_t
[diff.wchar.t]
C.6.2.3
Header
[diff.header.assert.h]
C.6.2.4
Header
[diff.header.iso646.h]
C.6.2.5
Header
[diff.header.stdalign.h]
C.6.2.6
Header
[diff.header.stdbool.h]
C.6.2.7
Macro NULL
[diff.null]
C.6.3
Modifications to declarations
[diff.mods.to.declarations]
C.6.4
Modifications to behavior
[diff.mods.to.behavior]
C.6.4.1
Macro offsetof(type, member-designator)
[diff.offsetof]
C.6.4.2
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
D.1
Arithmetic conversion on enumerations
[depr.arith.conv.enum]
D.2
Implicit capture of *this by reference
[depr.capture.this]
D.3
Comma operator in subscript expressions
[depr.comma.subscript]
D.4
Array comparisons
[depr.array.comp]
D.5
Deprecated volatile types
[depr.volatile.type]
D.6
Redeclaration of static constexpr data members
[depr.static.constexpr]
D.7
Non-local use of TU-local entities
[depr.local]
D.8
Implicit declaration of copy functions
[depr.impldec]
D.9
C headers
[depr.c.headers]
D.9.1
Header synopsis
[depr.complex.h.syn]
D.9.2
Header synopsis
[depr.iso646.h.syn]
D.9.3
Header synopsis
[depr.stdalign.h.syn]
D.9.4
Header synopsis
[depr.stdbool.h.syn]
D.9.5
Header synopsis
[depr.tgmath.h.syn]
D.9.6
Other C headers
[depr.c.headers.other]
D.10
Requires paragraph
[depr.res.on.required]
D.11
Relational operators
[depr.relops]
D.12
char* streams
[depr.str.strstreams]
D.12.1
Header synopsis
[depr.strstream.syn]
D.12.2
Class strstreambuf
[depr.strstreambuf]
D.12.2.1
strstreambuf constructors
[depr.strstreambuf.cons]
D.12.2.2
Member functions
[depr.strstreambuf.members]
D.12.2.3
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.12.3
Class istrstream
[depr.istrstream]
D.12.3.1
istrstream constructors
[depr.istrstream.cons]
D.12.3.2
Member functions
[depr.istrstream.members]
D.12.4
Class ostrstream
[depr.ostrstream]
D.12.4.1
ostrstream constructors
[depr.ostrstream.cons]
D.12.4.2
Member functions
[depr.ostrstream.members]
D.12.5
Class strstream
[depr.strstream]
D.12.5.1
strstream constructors
[depr.strstream.cons]
D.12.5.2
strstream destructor
[depr.strstream.dest]
D.12.5.3
strstream operations
[depr.strstream.oper]
D.13
Deprecated type traits
[depr.meta.types]
D.14
Tuple
[depr.tuple]
D.15
Variant
[depr.variant]
D.16
Deprecated iterator primitives
[depr.iterator.primitives]
D.16.1
Basic iterator
[depr.iterator.basic]
D.17
Deprecated move_iterator access
[depr.move.iter.elem]
D.18
Deprecated shared_ptr atomic access
[depr.util.smartptr.shared.atomic]
D.19
Deprecated basic_string capacity
[depr.string.capacity]
D.20
Deprecated standard code conversion facets
[depr.locale.stdcvt]
D.20.1
Header synopsis
[depr.codecvt.syn]
D.20.2
Requirements
[depr.locale.stdcvt.req]
D.21
Deprecated convenience conversion interfaces
[depr.conversions]
D.21.1
Class template wstring_convert
[depr.conversions.string]
D.21.2
Class template wbuffer_convert
[depr.conversions.buffer]
D.22
Deprecated locale category facets
[depr.locale.category]
D.23
Deprecated filesystem path factory functions
[depr.fs.path.factory]
D.24
Deprecated atomic operations
[depr.atomics]
D.24.1
Volatile access
[depr.atomics.volatile]
D.24.2
Non-member functions
[depr.atomics.nonmembers]
D.24.3
Operations on atomic types
[depr.atomics.types.operations]
D.24.4
Flag type and operations
[depr.atomics.flag]
C++20 (N4868)
1
Scope
[intro.scope]
2
Normative references
[intro.refs]
3
Terms and definitions
[intro.defs]
3.1
access
[defns.access]
3.2
arbitrary-positional stream
[defns.arbitrary.stream]
3.3
argument
[defns.argument]
3.4
argument
[defns.argument.macro]
3.5
argument
[defns.argument.throw]
3.6
argument
[defns.argument.templ]
3.7
block
[defns.block]
3.8
block
[defns.block.stmt]
3.9
character
[defns.character]
3.10
character container type
[defns.character.container]
3.11
collating element
[defns.regex.collating.element]
3.12
component
[defns.component]
3.13
conditionally-supported
[defns.cond.supp]
3.14
constant subexpression
[defns.const.subexpr]
3.15
deadlock
[defns.deadlock]
3.16
default behavior
[defns.default.behavior.impl]
3.17
diagnostic message
[defns.diagnostic]
3.18
direct-non-list-initialization
[defns.direct-non-list-init]
3.19
dynamic type
[defns.dynamic.type]
3.20
dynamic type
[defns.dynamic.type.prvalue]
3.21
expression-equivalent
[defns.expression-equivalent]
3.22
finite state machine
[defns.regex.finite.state.machine]
3.23
format specifier
[defns.regex.format.specifier]
3.24
handler function
[defns.handler]
3.25
ill-formed program
[defns.ill.formed]
3.26
implementation-defined behavior
[defns.impl.defined]
3.27
implementation-defined strict total order over pointers
[defns.order.ptr]
3.28
implementation limits
[defns.impl.limits]
3.29
iostream class templates
[defns.iostream.templates]
3.30
locale-specific behavior
[defns.locale.specific]
3.31
matched
[defns.regex.matched]
3.32
modifier function
[defns.modifier]
3.33
move assignment
[defns.move.assign]
3.34
move construction
[defns.move.constr]
3.35
multibyte character
[defns.multibyte]
3.36
NTCTS
[defns.ntcts]
3.37
observer function
[defns.observer]
3.38
parameter
[defns.parameter]
3.39
parameter
[defns.parameter.macro]
3.40
parameter
[defns.parameter.templ]
3.41
primary equivalence class
[defns.regex.primary.equivalence.class]
3.42
program-defined specialization
[defns.prog.def.spec]
3.43
program-defined type
[defns.prog.def.type]
3.44
projection
[defns.projection]
3.45
referenceable type
[defns.referenceable]
3.46
regular expression
[defns.regex.regular.expression]
3.47
replacement function
[defns.replacement]
3.48
repositional stream
[defns.repositional.stream]
3.49
required behavior
[defns.required.behavior]
3.50
reserved function
[defns.reserved.function]
3.51
signature
[defns.signature]
3.52
signature
[defns.signature.friend]
3.53
signature
[defns.signature.templ]
3.54
signature
[defns.signature.templ.friend]
3.55
signature
[defns.signature.spec]
3.56
signature
[defns.signature.member]
3.57
signature
[defns.signature.member.templ]
3.58
signature
[defns.signature.member.spec]
3.59
stable algorithm
[defns.stable]
3.60
static type
[defns.static.type]
3.61
sub-expression
[defns.regex.subexpression]
3.62
traits class
[defns.traits]
3.63
unblock
[defns.unblock]
3.64
undefined behavior
[defns.undefined]
3.65
unspecified behavior
[defns.unspecified]
3.66
valid but unspecified state
[defns.valid]
3.67
well-formed program
[defns.well.formed]
4
General principles
[intro]
4.1
Implementation compliance
[intro.compliance]
4.1.1
General
[intro.compliance.general]
4.1.2
Abstract machine
[intro.abstract]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
5
Lexical conventions
[lex]
5.1
Separate translation
[lex.separate]
5.2
Phases of translation
[lex.phases]
5.3
Character sets
[lex.charset]
5.4
Preprocessing tokens
[lex.pptoken]
5.5
Alternative tokens
[lex.digraph]
5.6
Tokens
[lex.token]
5.7
Comments
[lex.comment]
5.8
Header names
[lex.header]
5.9
Preprocessing numbers
[lex.ppnumber]
5.10
Identifiers
[lex.name]
5.11
Keywords
[lex.key]
5.12
Operators and punctuators
[lex.operators]
5.13
Literals
[lex.literal]
5.13.1
Kinds of literals
[lex.literal.kinds]
5.13.2
Integer literals
[lex.icon]
5.13.3
Character literals
[lex.ccon]
5.13.4
Floating-point literals
[lex.fcon]
5.13.5
String literals
[lex.string]
5.13.6
Boolean literals
[lex.bool]
5.13.7
Pointer literals
[lex.nullptr]
5.13.8
User-defined literals
[lex.ext]
6
Basics
[basic]
6.1
Preamble
[basic.pre]
6.2
Declarations and definitions
[basic.def]
6.3
One-definition rule
[basic.def.odr]
6.4
Scope
[basic.scope]
6.4.1
Declarative regions and scopes
[basic.scope.declarative]
6.4.2
Point of declaration
[basic.scope.pdecl]
6.4.3
Block scope
[basic.scope.block]
6.4.4
Function parameter scope
[basic.scope.param]
6.4.5
Function scope
[basic.funscope]
6.4.6
Namespace scope
[basic.scope.namespace]
6.4.7
Class scope
[basic.scope.class]
6.4.8
Enumeration scope
[basic.scope.enum]
6.4.9
Template parameter scope
[basic.scope.temp]
6.4.10
Name hiding
[basic.scope.hiding]
6.5
Name lookup
[basic.lookup]
6.5.1
General
[basic.lookup.general]
6.5.2
Unqualified name lookup
[basic.lookup.unqual]
6.5.3
Argument-dependent name lookup
[basic.lookup.argdep]
6.5.4
Qualified name lookup
[basic.lookup.qual]
6.5.4.1
General
[basic.lookup.qual.general]
6.5.4.2
Class members
[class.qual]
6.5.4.3
Namespace members
[namespace.qual]
6.5.5
Elaborated type specifiers
[basic.lookup.elab]
6.5.6
Class member access
[basic.lookup.classref]
6.5.7
Using-directives and namespace aliases
[basic.lookup.udir]
6.6
Program and linkage
[basic.link]
6.7
Memory and objects
[basic.memobj]
6.7.1
Memory model
[intro.memory]
6.7.2
Object model
[intro.object]
6.7.3
Lifetime
[basic.life]
6.7.4
Indeterminate values
[basic.indet]
6.7.5
Storage duration
[basic.stc]
6.7.5.1
General
[basic.stc.general]
6.7.5.2
Static storage duration
[basic.stc.static]
6.7.5.3
Thread storage duration
[basic.stc.thread]
6.7.5.4
Automatic storage duration
[basic.stc.auto]
6.7.5.5
Dynamic storage duration
[basic.stc.dynamic]
6.7.5.5.1
General
[basic.stc.dynamic.general]
6.7.5.5.2
Allocation functions
[basic.stc.dynamic.allocation]
6.7.5.5.3
Deallocation functions
[basic.stc.dynamic.deallocation]
6.7.5.5.4
Safely-derived pointers
[basic.stc.dynamic.safety]
6.7.5.6
Duration of subobjects
[basic.stc.inherit]
6.7.6
Alignment
[basic.align]
6.7.7
Temporary objects
[class.temporary]
6.8
Types
[basic.types]
6.8.1
General
[basic.types.general]
6.8.2
Fundamental types
[basic.fundamental]
6.8.3
Compound types
[basic.compound]
6.8.4
CV-qualifiers
[basic.type.qualifier]
6.8.5
Integer conversion rank
[conv.rank]
6.9
Program execution
[basic.exec]
6.9.1
Sequential execution
[intro.execution]
6.9.2
Multi-threaded executions and data races
[intro.multithread]
6.9.2.1
General
[intro.multithread.general]
6.9.2.2
Data races
[intro.races]
6.9.2.3
Forward progress
[intro.progress]
6.9.3
Start and termination
[basic.start]
6.9.3.1
main function
[basic.start.main]
6.9.3.2
Static initialization
[basic.start.static]
6.9.3.3
Dynamic initialization of non-local variables
[basic.start.dynamic]
6.9.3.4
Termination
[basic.start.term]
7
Expressions
[expr]
7.1
Preamble
[expr.pre]
7.2
Properties of expressions
[expr.prop]
7.2.1
Value category
[basic.lval]
7.2.2
Type
[expr.type]
7.2.3
Context dependence
[expr.context]
7.3
Standard conversions
[conv]
7.3.1
General
[conv.general]
7.3.2
Lvalue-to-rvalue conversion
[conv.lval]
7.3.3
Array-to-pointer conversion
[conv.array]
7.3.4
Function-to-pointer conversion
[conv.func]
7.3.5
Temporary materialization conversion
[conv.rval]
7.3.6
Qualification conversions
[conv.qual]
7.3.7
Integral promotions
[conv.prom]
7.3.8
Floating-point promotion
[conv.fpprom]
7.3.9
Integral conversions
[conv.integral]
7.3.10
Floating-point conversions
[conv.double]
7.3.11
Floating-integral conversions
[conv.fpint]
7.3.12
Pointer conversions
[conv.ptr]
7.3.13
Pointer-to-member conversions
[conv.mem]
7.3.14
Function pointer conversions
[conv.fctptr]
7.3.15
Boolean conversions
[conv.bool]
7.4
Usual arithmetic conversions
[expr.arith.conv]
7.5
Primary expressions
[expr.prim]
7.5.1
Literals
[expr.prim.literal]
7.5.2
This
[expr.prim.this]
7.5.3
Parentheses
[expr.prim.paren]
7.5.4
Names
[expr.prim.id]
7.5.4.1
General
[expr.prim.id.general]
7.5.4.2
Unqualified names
[expr.prim.id.unqual]
7.5.4.3
Qualified names
[expr.prim.id.qual]
7.5.4.4
Destruction
[expr.prim.id.dtor]
7.5.5
Lambda expressions
[expr.prim.lambda]
7.5.5.1
General
[expr.prim.lambda.general]
7.5.5.2
Closure types
[expr.prim.lambda.closure]
7.5.5.3
Captures
[expr.prim.lambda.capture]
7.5.6
Fold expressions
[expr.prim.fold]
7.5.7
Requires expressions
[expr.prim.req]
7.5.7.1
General
[expr.prim.req.general]
7.5.7.2
Simple requirements
[expr.prim.req.simple]
7.5.7.3
Type requirements
[expr.prim.req.type]
7.5.7.4
Compound requirements
[expr.prim.req.compound]
7.5.7.5
Nested requirements
[expr.prim.req.nested]
7.6
Compound expressions
[expr.compound]
7.6.1
Postfix expressions
[expr.post]
7.6.1.1
General
[expr.post.general]
7.6.1.2
Subscripting
[expr.sub]
7.6.1.3
Function call
[expr.call]
7.6.1.4
Explicit type conversion (functional notation)
[expr.type.conv]
7.6.1.5
Class member access
[expr.ref]
7.6.1.6
Increment and decrement
[expr.post.incr]
7.6.1.7
Dynamic cast
[expr.dynamic.cast]
7.6.1.8
Type identification
[expr.typeid]
7.6.1.9
Static cast
[expr.static.cast]
7.6.1.10
Reinterpret cast
[expr.reinterpret.cast]
7.6.1.11
Const cast
[expr.const.cast]
7.6.2
Unary expressions
[expr.unary]
7.6.2.1
General
[expr.unary.general]
7.6.2.2
Unary operators
[expr.unary.op]
7.6.2.3
Increment and decrement
[expr.pre.incr]
7.6.2.4
Await
[expr.await]
7.6.2.5
Sizeof
[expr.sizeof]
7.6.2.6
Alignof
[expr.alignof]
7.6.2.7
noexcept operator
[expr.unary.noexcept]
7.6.2.8
New
[expr.new]
7.6.2.9
Delete
[expr.delete]
7.6.3
Explicit type conversion (cast notation)
[expr.cast]
7.6.4
Pointer-to-member operators
[expr.mptr.oper]
7.6.5
Multiplicative operators
[expr.mul]
7.6.6
Additive operators
[expr.add]
7.6.7
Shift operators
[expr.shift]
7.6.8
Three-way comparison operator
[expr.spaceship]
7.6.9
Relational operators
[expr.rel]
7.6.10
Equality operators
[expr.eq]
7.6.11
Bitwise AND operator
[expr.bit.and]
7.6.12
Bitwise exclusive OR operator
[expr.xor]
7.6.13
Bitwise inclusive OR operator
[expr.or]
7.6.14
Logical AND operator
[expr.log.and]
7.6.15
Logical OR operator
[expr.log.or]
7.6.16
Conditional operator
[expr.cond]
7.6.17
Yielding a value
[expr.yield]
7.6.18
Throwing an exception
[expr.throw]
7.6.19
Assignment and compound assignment operators
[expr.ass]
7.6.20
Comma operator
[expr.comma]
7.7
Constant expressions
[expr.const]
8
Statements
[stmt.stmt]
8.1
Preamble
[stmt.pre]
8.2
Labeled statement
[stmt.label]
8.3
Expression statement
[stmt.expr]
8.4
Compound statement or block
[stmt.block]
8.5
Selection statements
[stmt.select]
8.5.1
General
[stmt.select.general]
8.5.2
The if statement
[stmt.if]
8.5.3
The switch statement
[stmt.switch]
8.6
Iteration statements
[stmt.iter]
8.6.1
General
[stmt.iter.general]
8.6.2
The while statement
[stmt.while]
8.6.3
The do statement
[stmt.do]
8.6.4
The for statement
[stmt.for]
8.6.5
The range-based for statement
[stmt.ranged]
8.7
Jump statements
[stmt.jump]
8.7.1
General
[stmt.jump.general]
8.7.2
The break statement
[stmt.break]
8.7.3
The continue statement
[stmt.cont]
8.7.4
The return statement
[stmt.return]
8.7.5
The co_return statement
[stmt.return.coroutine]
8.7.6
The goto statement
[stmt.goto]
8.8
Declaration statement
[stmt.dcl]
8.9
Ambiguity resolution
[stmt.ambig]
9
Declarations
[dcl.dcl]
9.1
Preamble
[dcl.pre]
9.2
Specifiers
[dcl.spec]
9.2.1
General
[dcl.spec.general]
9.2.2
Storage class specifiers
[dcl.stc]
9.2.3
Function specifiers
[dcl.fct.spec]
9.2.4
The typedef specifier
[dcl.typedef]
9.2.5
The friend specifier
[dcl.friend]
9.2.6
The constexpr and consteval specifiers
[dcl.constexpr]
9.2.7
The constinit specifier
[dcl.constinit]
9.2.8
The inline specifier
[dcl.inline]
9.2.9
Type specifiers
[dcl.type]
9.2.9.1
General
[dcl.type.general]
9.2.9.2
The cv-qualifiers
[dcl.type.cv]
9.2.9.3
Simple type specifiers
[dcl.type.simple]
9.2.9.4
Elaborated type specifiers
[dcl.type.elab]
9.2.9.5
Decltype specifiers
[dcl.type.decltype]
9.2.9.6
Placeholder type specifiers
[dcl.spec.auto]
9.2.9.6.1
General
[dcl.spec.auto.general]
9.2.9.6.2
Placeholder type deduction
[dcl.type.auto.deduct]
9.2.9.7
Deduced class template specialization types
[dcl.type.class.deduct]
9.3
Declarators
[dcl.decl]
9.3.1
General
[dcl.decl.general]
9.3.2
Type names
[dcl.name]
9.3.3
Ambiguity resolution
[dcl.ambig.res]
9.3.4
Meaning of declarators
[dcl.meaning]
9.3.4.1
General
[dcl.meaning.general]
9.3.4.2
Pointers
[dcl.ptr]
9.3.4.3
References
[dcl.ref]
9.3.4.4
Pointers to members
[dcl.mptr]
9.3.4.5
Arrays
[dcl.array]
9.3.4.6
Functions
[dcl.fct]
9.3.4.7
Default arguments
[dcl.fct.default]
9.4
Initializers
[dcl.init]
9.4.1
General
[dcl.init.general]
9.4.2
Aggregates
[dcl.init.aggr]
9.4.3
Character arrays
[dcl.init.string]
9.4.4
References
[dcl.init.ref]
9.4.5
List-initialization
[dcl.init.list]
9.5
Function definitions
[dcl.fct.def]
9.5.1
In general
[dcl.fct.def.general]
9.5.2
Explicitly-defaulted functions
[dcl.fct.def.default]
9.5.3
Deleted definitions
[dcl.fct.def.delete]
9.5.4
Coroutine definitions
[dcl.fct.def.coroutine]
9.6
Structured binding declarations
[dcl.struct.bind]
9.7
Enumerations
[enum]
9.7.1
Enumeration declarations
[dcl.enum]
9.7.2
The using enum declaration
[enum.udecl]
9.8
Namespaces
[basic.namespace]
9.8.1
General
[basic.namespace.general]
9.8.2
Namespace definition
[namespace.def]
9.8.2.1
General
[namespace.def.general]
9.8.2.2
Unnamed namespaces
[namespace.unnamed]
9.8.2.3
Namespace member definitions
[namespace.memdef]
9.8.3
Namespace alias
[namespace.alias]
9.8.4
Using namespace directive
[namespace.udir]
9.9
The using declaration
[namespace.udecl]
9.10
The asm declaration
[dcl.asm]
9.11
Linkage specifications
[dcl.link]
9.12
Attributes
[dcl.attr]
9.12.1
Attribute syntax and semantics
[dcl.attr.grammar]
9.12.2
Alignment specifier
[dcl.align]
9.12.3
Carries dependency attribute
[dcl.attr.depend]
9.12.4
Deprecated attribute
[dcl.attr.deprecated]
9.12.5
Fallthrough attribute
[dcl.attr.fallthrough]
9.12.6
Likelihood attributes
[dcl.attr.likelihood]
9.12.7
Maybe unused attribute
[dcl.attr.unused]
9.12.8
Nodiscard attribute
[dcl.attr.nodiscard]
9.12.9
Noreturn attribute
[dcl.attr.noreturn]
9.12.10
No unique address attribute
[dcl.attr.nouniqueaddr]
10
Modules
[module]
10.1
Module units and purviews
[module.unit]
10.2
Export declaration
[module.interface]
10.3
Import declaration
[module.import]
10.4
Global module fragment
[module.global.frag]
10.5
Private module fragment
[module.private.frag]
10.6
Instantiation context
[module.context]
10.7
Reachability
[module.reach]
11
Classes
[class]
11.1
Preamble
[class.pre]
11.2
Properties of classes
[class.prop]
11.3
Class names
[class.name]
11.4
Class members
[class.mem]
11.4.1
General
[class.mem.general]
11.4.2
Member functions
[class.mfct]
11.4.3
Non-static member functions
[class.mfct.non-static]
11.4.3.1
General
[class.mfct.non-static.general]
11.4.3.2
The this pointer
[class.this]
11.4.4
Special member functions
[special]
11.4.5
Constructors
[class.ctor]
11.4.5.1
General
[class.ctor.general]
11.4.5.2
Default constructors
[class.default.ctor]
11.4.5.3
Copy/move constructors
[class.copy.ctor]
11.4.6
Copy/move assignment operator
[class.copy.assign]
11.4.7
Destructors
[class.dtor]
11.4.8
Conversions
[class.conv]
11.4.8.1
General
[class.conv.general]
11.4.8.2
Conversion by constructor
[class.conv.ctor]
11.4.8.3
Conversion functions
[class.conv.fct]
11.4.9
Static members
[class.static]
11.4.9.1
General
[class.static.general]
11.4.9.2
Static member functions
[class.static.mfct]
11.4.9.3
Static data members
[class.static.data]
11.4.10
Bit-fields
[class.bit]
11.4.11
Nested class declarations
[class.nest]
11.4.12
Nested type names
[class.nested.type]
11.5
Unions
[class.union]
11.5.1
General
[class.union.general]
11.5.2
Anonymous unions
[class.union.anon]
11.6
Local class declarations
[class.local]
11.7
Derived classes
[class.derived]
11.7.1
General
[class.derived.general]
11.7.2
Multiple base classes
[class.mi]
11.7.3
Virtual functions
[class.virtual]
11.7.4
Abstract classes
[class.abstract]
11.8
Member name lookup
[class.member.lookup]
11.9
Member access control
[class.access]
11.9.1
General
[class.access.general]
11.9.2
Access specifiers
[class.access.spec]
11.9.3
Accessibility of base classes and base class members
[class.access.base]
11.9.4
Friends
[class.friend]
11.9.5
Protected member access
[class.protected]
11.9.6
Access to virtual functions
[class.access.virt]
11.9.7
Multiple access
[class.paths]
11.9.8
Nested classes
[class.access.nest]
11.10
Initialization
[class.init]
11.10.1
General
[class.init.general]
11.10.2
Explicit initialization
[class.expl.init]
11.10.3
Initializing bases and members
[class.base.init]
11.10.4
Initialization by inherited constructor
[class.inhctor.init]
11.10.5
Construction and destruction
[class.cdtor]
11.10.6
Copy/move elision
[class.copy.elision]
11.11
Comparisons
[class.compare]
11.11.1
Defaulted comparison operator functions
[class.compare.default]
11.11.2
Equality operator
[class.eq]
11.11.3
Three-way comparison
[class.spaceship]
11.11.4
Secondary comparison operators
[class.compare.secondary]
11.12
Free store
[class.free]
12
Overloading
[over]
12.1
Preamble
[over.pre]
12.2
Overloadable declarations
[over.load]
12.3
Declaration matching
[over.dcl]
12.4
Overload resolution
[over.match]
12.4.1
General
[over.match.general]
12.4.2
Candidate functions and argument lists
[over.match.funcs]
12.4.2.1
General
[over.match.funcs.general]
12.4.2.2
Function call syntax
[over.match.call]
12.4.2.2.1
General
[over.match.call.general]
12.4.2.2.2
Call to named function
[over.call.func]
12.4.2.2.3
Call to object of class type
[over.call.object]
12.4.2.3
Operators in expressions
[over.match.oper]
12.4.2.4
Initialization by constructor
[over.match.ctor]
12.4.2.5
Copy-initialization of class by user-defined conversion
[over.match.copy]
12.4.2.6
Initialization by conversion function
[over.match.conv]
12.4.2.7
Initialization by conversion function for direct reference binding
[over.match.ref]
12.4.2.8
Initialization by list-initialization
[over.match.list]
12.4.2.9
Class template argument deduction
[over.match.class.deduct]
12.4.3
Viable functions
[over.match.viable]
12.4.4
Best viable function
[over.match.best]
12.4.4.1
General
[over.match.best.general]
12.4.4.2
Implicit conversion sequences
[over.best.ics]
12.4.4.2.1
General
[over.best.ics.general]
12.4.4.2.2
Standard conversion sequences
[over.ics.scs]
12.4.4.2.3
User-defined conversion sequences
[over.ics.user]
12.4.4.2.4
Ellipsis conversion sequences
[over.ics.ellipsis]
12.4.4.2.5
Reference binding
[over.ics.ref]
12.4.4.2.6
List-initialization sequence
[over.ics.list]
12.4.4.3
Ranking implicit conversion sequences
[over.ics.rank]
12.5
Address of overloaded function
[over.over]
12.6
Overloaded operators
[over.oper]
12.6.1
General
[over.oper.general]
12.6.2
Unary operators
[over.unary]
12.6.3
Binary operators
[over.binary]
12.6.3.1
General
[over.binary.general]
12.6.3.2
Simple assignment
[over.ass]
12.6.4
Function call
[over.call]
12.6.5
Subscripting
[over.sub]
12.6.6
Class member access
[over.ref]
12.6.7
Increment and decrement
[over.inc]
12.7
Built-in operators
[over.built]
12.8
User-defined literals
[over.literal]
13
Templates
[temp]
13.1
Preamble
[temp.pre]
13.2
Template parameters
[temp.param]
13.3
Names of template specializations
[temp.names]
13.4
Template arguments
[temp.arg]
13.4.1
General
[temp.arg.general]
13.4.2
Template type arguments
[temp.arg.type]
13.4.3
Template non-type arguments
[temp.arg.nontype]
13.4.4
Template template arguments
[temp.arg.template]
13.5
Template constraints
[temp.constr]
13.5.1
General
[temp.constr.general]
13.5.2
Constraints
[temp.constr.constr]
13.5.2.1
General
[temp.constr.constr.general]
13.5.2.2
Logical operations
[temp.constr.op]
13.5.2.3
Atomic constraints
[temp.constr.atomic]
13.5.3
Constrained declarations
[temp.constr.decl]
13.5.4
Constraint normalization
[temp.constr.normal]
13.5.5
Partial ordering by constraints
[temp.constr.order]
13.6
Type equivalence
[temp.type]
13.7
Template declarations
[temp.decls]
13.7.1
General
[temp.decls.general]
13.7.2
Class templates
[temp.class]
13.7.2.1
General
[temp.class.general]
13.7.2.2
Member functions of class templates
[temp.mem.func]
13.7.2.3
Deduction guides
[temp.deduct.guide]
13.7.2.4
Member classes of class templates
[temp.mem.class]
13.7.2.5
Static data members of class templates
[temp.static]
13.7.2.6
Enumeration members of class templates
[temp.mem.enum]
13.7.3
Member templates
[temp.mem]
13.7.4
Variadic templates
[temp.variadic]
13.7.5
Friends
[temp.friend]
13.7.6
Class template partial specializations
[temp.class.spec]
13.7.6.1
General
[temp.class.spec.general]
13.7.6.2
Matching of class template partial specializations
[temp.class.spec.match]
13.7.6.3
Partial ordering of class template specializations
[temp.class.order]
13.7.6.4
Members of class template specializations
[temp.class.spec.mfunc]
13.7.7
Function templates
[temp.fct]
13.7.7.1
General
[temp.fct.general]
13.7.7.2
Function template overloading
[temp.over.link]
13.7.7.3
Partial ordering of function templates
[temp.func.order]
13.7.8
Alias templates
[temp.alias]
13.7.9
Concept definitions
[temp.concept]
13.8
Name resolution
[temp.res]
13.8.1
General
[temp.res.general]
13.8.2
Locally declared names
[temp.local]
13.8.3
Dependent names
[temp.dep]
13.8.3.1
General
[temp.dep.general]
13.8.3.2
Dependent types
[temp.dep.type]
13.8.3.3
Type-dependent expressions
[temp.dep.expr]
13.8.3.4
Value-dependent expressions
[temp.dep.constexpr]
13.8.3.5
Dependent template arguments
[temp.dep.temp]
13.8.4
Non-dependent names
[temp.nondep]
13.8.5
Dependent name resolution
[temp.dep.res]
13.8.5.1
Point of instantiation
[temp.point]
13.8.5.2
Candidate functions
[temp.dep.candidate]
13.8.6
Friend names declared within a class template
[temp.inject]
13.9
Template instantiation and specialization
[temp.spec]
13.9.1
General
[temp.spec.general]
13.9.2
Implicit instantiation
[temp.inst]
13.9.3
Explicit instantiation
[temp.explicit]
13.9.4
Explicit specialization
[temp.expl.spec]
13.10
Function template specializations
[temp.fct.spec]
13.10.1
General
[temp.fct.spec.general]
13.10.2
Explicit template argument specification
[temp.arg.explicit]
13.10.3
Template argument deduction
[temp.deduct]
13.10.3.1
General
[temp.deduct.general]
13.10.3.2
Deducing template arguments from a function call
[temp.deduct.call]
13.10.3.3
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
13.10.3.4
Deducing conversion function template arguments
[temp.deduct.conv]
13.10.3.5
Deducing template arguments during partial ordering
[temp.deduct.partial]
13.10.3.6
Deducing template arguments from a type
[temp.deduct.type]
13.10.3.7
Deducing template arguments from a function declaration
[temp.deduct.decl]
13.10.4
Overload resolution
[temp.over]
14
Exception handling
[except]
14.1
Preamble
[except.pre]
14.2
Throwing an exception
[except.throw]
14.3
Constructors and destructors
[except.ctor]
14.4
Handling an exception
[except.handle]
14.5
Exception specifications
[except.spec]
14.6
Special functions
[except.special]
14.6.1
General
[except.special.general]
14.6.2
The std::terminate function
[except.terminate]
14.6.3
The std::uncaught_exceptions function
[except.uncaught]
15
Preprocessing directives
[cpp]
15.1
Preamble
[cpp.pre]
15.2
Conditional inclusion
[cpp.cond]
15.3
Source file inclusion
[cpp.include]
15.4
Module directive
[cpp.module]
15.5
Header unit importation
[cpp.import]
15.6
Macro replacement
[cpp.replace]
15.6.1
General
[cpp.replace.general]
15.6.2
Argument substitution
[cpp.subst]
15.6.3
The # operator
[cpp.stringize]
15.6.4
The ## operator
[cpp.concat]
15.6.5
Rescanning and further replacement
[cpp.rescan]
15.6.6
Scope of macro definitions
[cpp.scope]
15.7
Line control
[cpp.line]
15.8
Error directive
[cpp.error]
15.9
Pragma directive
[cpp.pragma]
15.10
Null directive
[cpp.null]
15.11
Predefined macro names
[cpp.predefined]
15.12
Pragma operator
[cpp.pragma.op]
16
Library introduction
[library]
16.1
General
[library.general]
16.2
The C standard library
[library.c]
16.3
Method of description
[description]
16.3.1
General
[description.general]
16.3.2
Structure of each clause
[structure]
16.3.2.1
Elements
[structure.elements]
16.3.2.2
Summary
[structure.summary]
16.3.2.3
Requirements
[structure.requirements]
16.3.2.4
Detailed specifications
[structure.specifications]
16.3.2.5
C library
[structure.see.also]
16.3.3
Other conventions
[conventions]
16.3.3.1
General
[conventions.general]
16.3.3.2
Exposition-only functions
[expos.only.func]
16.3.3.3
Type descriptions
[type.descriptions]
16.3.3.3.1
General
[type.descriptions.general]
16.3.3.3.2
Exposition-only types
[expos.only.types]
16.3.3.3.3
Enumerated types
[enumerated.types]
16.3.3.3.4
Bitmask types
[bitmask.types]
16.3.3.3.5
Character sequences
[character.seq]
16.3.3.3.5.1
General
[character.seq.general]
16.3.3.3.5.2
Byte strings
[byte.strings]
16.3.3.3.5.3
Multibyte strings
[multibyte.strings]
16.3.3.3.6
Customization Point Object types
[customization.point.object]
16.3.3.4
Functions within classes
[functions.within.classes]
16.3.3.5
Private members
[objects.within.classes]
16.4
Library-wide requirements
[requirements]
16.4.1
General
[requirements.general]
16.4.2
Library contents and organization
[organization]
16.4.2.1
General
[organization.general]
16.4.2.2
Library contents
[contents]
16.4.2.3
Headers
[headers]
16.4.2.4
Freestanding implementations
[compliance]
16.4.3
Using the library
[using]
16.4.3.1
Overview
[using.overview]
16.4.3.2
Headers
[using.headers]
16.4.3.3
Linkage
[using.linkage]
16.4.4
Requirements on types and expressions
[utility.requirements]
16.4.4.1
General
[utility.requirements.general]
16.4.4.2
Template argument requirements
[utility.arg.requirements]
16.4.4.3
Swappable requirements
[swappable.requirements]
16.4.4.4
Cpp17NullablePointer requirements
[nullablepointer.requirements]
16.4.4.5
Cpp17Hash requirements
[hash.requirements]
16.4.4.6
Cpp17Allocator requirements
[allocator.requirements]
16.4.4.6.1
General
[allocator.requirements.general]
16.4.4.6.2
Allocator completeness requirements
[allocator.requirements.completeness]
16.4.5
Constraints on programs
[constraints]
16.4.5.1
Overview
[constraints.overview]
16.4.5.2
Namespace use
[namespace.constraints]
16.4.5.2.1
Namespace std
[namespace.std]
16.4.5.2.2
Namespace posix
[namespace.posix]
16.4.5.2.3
Namespaces for future standardization
[namespace.future]
16.4.5.3
Reserved names
[reserved.names]
16.4.5.3.1
General
[reserved.names.general]
16.4.5.3.2
Zombie names
[zombie.names]
16.4.5.3.3
Macro names
[macro.names]
16.4.5.3.4
External linkage
[extern.names]
16.4.5.3.5
Types
[extern.types]
16.4.5.3.6
User-defined literal suffixes
[usrlit.suffix]
16.4.5.4
Headers
[alt.headers]
16.4.5.5
Derived classes
[derived.classes]
16.4.5.6
Replacement functions
[replacement.functions]
16.4.5.7
Handler functions
[handler.functions]
16.4.5.8
Other functions
[res.on.functions]
16.4.5.9
Function arguments
[res.on.arguments]
16.4.5.10
Library object access
[res.on.objects]
16.4.5.11
Semantic requirements
[res.on.requirements]
16.4.6
Conforming implementations
[conforming]
16.4.6.1
Overview
[conforming.overview]
16.4.6.2
Headers
[res.on.headers]
16.4.6.3
Restrictions on macro definitions
[res.on.macro.definitions]
16.4.6.4
Non-member functions
[global.functions]
16.4.6.5
Member functions
[member.functions]
16.4.6.6
Friend functions
[hidden.friends]
16.4.6.7
Constexpr functions and constructors
[constexpr.functions]
16.4.6.8
Requirements for stable algorithms
[algorithm.stable]
16.4.6.9
Reentrancy
[reentrancy]
16.4.6.10
Data race avoidance
[res.on.data.races]
16.4.6.11
Protection within classes
[protection.within.classes]
16.4.6.12
Derived classes
[derivation]
16.4.6.13
Restrictions on exception handling
[res.on.exception.handling]
16.4.6.14
Restrictions on storage of pointers
[res.on.pointer.storage]
16.4.6.15
Value of error codes
[value.error.codes]
16.4.6.16
Moved-from state of library types
[lib.types.movedfrom]
17
Language support library
[support]
17.1
General
[support.general]
17.2
Common definitions
[support.types]
17.2.1
Header synopsis
[cstddef.syn]
17.2.2
Header 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 synopsis
[version.syn]
17.3.3
Header 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 synopsis
[climits.syn]
17.3.7
Header synopsis
[cfloat.syn]
17.4
Integer types
[cstdint]
17.4.1
General
[cstdint.general]
17.4.2
Header 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 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 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 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 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 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 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 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
[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 synopsis
[cstdarg.syn]
17.13.3
Header synopsis
[csetjmp.syn]
17.13.4
Header synopsis
[csignal.syn]
17.13.5
Signal handlers
[support.signal]
18
Concepts library
[concepts]
18.1
General
[concepts.general]
18.2
Equality preservation
[concepts.equality]
18.3
Header synopsis
[concepts.syn]
18.4
Language-related concepts
[concepts.lang]
18.4.1
General
[concepts.lang.general]
18.4.2
Concept same_as
[concept.same]
18.4.3
Concept derived_from
[concept.derived]
18.4.4
Concept convertible_to
[concept.convertible]
18.4.5
Concept common_reference_with
[concept.commonref]
18.4.6
Concept common_with
[concept.common]
18.4.7
Arithmetic concepts
[concepts.arithmetic]
18.4.8
Concept assignable_from
[concept.assignable]
18.4.9
Concept swappable
[concept.swappable]
18.4.10
Concept destructible
[concept.destructible]
18.4.11
Concept constructible_from
[concept.constructible]
18.4.12
Concept default_initializable
[concept.default.init]
18.4.13
Concept move_constructible
[concept.moveconstructible]
18.4.14
Concept copy_constructible
[concept.copyconstructible]
18.5
Comparison concepts
[concepts.compare]
18.5.1
General
[concepts.compare.general]
18.5.2
Boolean testability
[concept.booleantestable]
18.5.3
Concept equality_comparable
[concept.equalitycomparable]
18.5.4
Concept totally_ordered
[concept.totallyordered]
18.6
Object concepts
[concepts.object]
18.7
Callable concepts
[concepts.callable]
18.7.1
General
[concepts.callable.general]
18.7.2
Concept invocable
[concept.invocable]
18.7.3
Concept regular_invocable
[concept.regularinvocable]
18.7.4
Concept predicate
[concept.predicate]
18.7.5
Concept relation
[concept.relation]
18.7.6
Concept equivalence_relation
[concept.equiv]
18.7.7
Concept strict_weak_order
[concept.strictweakorder]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
General
[std.exceptions.general]
19.2.2
Header 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 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 synopsis
[cerrno.syn]
19.5
System error support
[syserr]
19.5.1
General
[syserr.general]
19.5.2
Header synopsis
[system.error.syn]
19.5.3
Class error_category
[syserr.errcat]
19.5.3.1
Overview
[syserr.errcat.overview]
19.5.3.2
Virtual members
[syserr.errcat.virtuals]
19.5.3.3
Non-virtual members
[syserr.errcat.nonvirtuals]
19.5.3.4
Program-defined classes derived from error_category
[syserr.errcat.derived]
19.5.3.5
Error category objects
[syserr.errcat.objects]
19.5.4
Class error_code
[syserr.errcode]
19.5.4.1
Overview
[syserr.errcode.overview]
19.5.4.2
Constructors
[syserr.errcode.constructors]
19.5.4.3
Modifiers
[syserr.errcode.modifiers]
19.5.4.4
Observers
[syserr.errcode.observers]
19.5.4.5
Non-member functions
[syserr.errcode.nonmembers]
19.5.5
Class error_condition
[syserr.errcondition]
19.5.5.1
Overview
[syserr.errcondition.overview]
19.5.5.2
Constructors
[syserr.errcondition.constructors]
19.5.5.3
Modifiers
[syserr.errcondition.modifiers]
19.5.5.4
Observers
[syserr.errcondition.observers]
19.5.5.5
Non-member functions
[syserr.errcondition.nonmembers]
19.5.6
Comparison operator functions
[syserr.compare]
19.5.7
System error hash support
[syserr.hash]
19.5.8
Class system_error
[syserr.syserr]
19.5.8.1
Overview
[syserr.syserr.overview]
19.5.8.2
Members
[syserr.syserr.members]
20
General utilities library
[utilities]
20.1
General
[utilities.general]
20.2
Utility components
[utility]
20.2.1
Header 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 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 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 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 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 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 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
[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 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 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 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 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 synopsis
[ratio.syn]
20.16.3
Class template ratio
[ratio.ratio]
20.16.4
Arithmetic on ratios
[ratio.arithmetic]
20.16.5
Comparison of ratios
[ratio.comparison]
20.16.6
SI types for ratio
[ratio.si]
20.17
Class type_index
[type.index]
20.17.1
Header 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 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 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 synopsis
[format.syn]
20.20.2
Format string
[format.string]
20.20.2.1
In general
[format.string.general]
20.20.2.2
Standard format specifiers
[format.string.std]
20.20.3
Error reporting
[format.err.report]
20.20.4
Formatting functions
[format.functions]
20.20.5
Formatter
[format.formatter]
20.20.5.1
Formatter requirements
[formatter.requirements]
20.20.5.2
Formatter specializations
[format.formatter.spec]
20.20.5.3
Class template basic_format_parse_context
[format.parse.ctx]
20.20.5.4
Class template basic_format_context
[format.context]
20.20.6
Arguments
[format.arguments]
20.20.6.1
Class template basic_format_arg
[format.arg]
20.20.6.2
Class template format-arg-store
[format.arg.store]
20.20.6.3
Class template basic_format_args
[format.args]
20.20.7
Class format_error
[format.error]
21
Strings library
[strings]
21.1
General
[strings.general]
21.2
Character traits
[char.traits]
21.2.1
General
[char.traits.general]
21.2.2
Character traits requirements
[char.traits.require]
21.2.3
Traits typedefs
[char.traits.typedefs]
21.2.4
char_traits specializations
[char.traits.specializations]
21.2.4.1
General
[char.traits.specializations.general]
21.2.4.2
struct char_traits
[char.traits.specializations.char]
21.2.4.3
struct char_traits
[char.traits.specializations.char8.t]
21.2.4.4
struct char_traits
[char.traits.specializations.char16.t]
21.2.4.5
struct char_traits
[char.traits.specializations.char32.t]
21.2.4.6
struct char_traits
[char.traits.specializations.wchar.t]
21.3
String classes
[string.classes]
21.3.1
General
[string.classes.general]
21.3.2
Header 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 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 synopsis
[cctype.syn]
21.5.2
Header synopsis
[cwctype.syn]
21.5.3
Header synopsis
[cstring.syn]
21.5.4
Header synopsis
[cwchar.syn]
21.5.5
Header synopsis
[cuchar.syn]
21.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
22
Containers library
[containers]
22.1
General
[containers.general]
22.2
Container requirements
[container.requirements]
22.2.1
General container requirements
[container.requirements.general]
22.2.2
Container data races
[container.requirements.dataraces]
22.2.3
Sequence containers
[sequence.reqmts]
22.2.4
Node handles
[container.node]
22.2.4.1
Overview
[container.node.overview]
22.2.4.2
Constructors, copy, and assignment
[container.node.cons]
22.2.4.3
Destructor
[container.node.dtor]
22.2.4.4
Observers
[container.node.observers]
22.2.4.5
Modifiers
[container.node.modifiers]
22.2.5
Insert return type
[container.insert.return]
22.2.6
Associative containers
[associative.reqmts]
22.2.6.1
General
[associative.reqmts.general]
22.2.6.2
Exception safety guarantees
[associative.reqmts.except]
22.2.7
Unordered associative containers
[unord.req]
22.2.7.1
General
[unord.req.general]
22.2.7.2
Exception safety guarantees
[unord.req.except]
22.3
Sequence containers
[sequences]
22.3.1
In general
[sequences.general]
22.3.2
Header synopsis
[array.syn]
22.3.3
Header synopsis
[deque.syn]
22.3.4
Header synopsis
[forward.list.syn]
22.3.5
Header synopsis
[list.syn]
22.3.6
Header 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
[vector.bool]
22.4
Associative containers
[associative]
22.4.1
In general
[associative.general]
22.4.2
Header synopsis
[associative.map.syn]
22.4.3
Header 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 synopsis
[unord.map.syn]
22.5.3
Header 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 synopsis
[queue.syn]
22.6.3
Header synopsis
[stack.syn]
22.6.4
Class template queue
[queue]
22.6.4.1
Definition
[queue.defn]
22.6.4.2
Constructors
[queue.cons]
22.6.4.3
Constructors with allocators
[queue.cons.alloc]
22.6.4.4
Operators
[queue.ops]
22.6.4.5
Specialized algorithms
[queue.special]
22.6.5
Class template priority_queue
[priority.queue]
22.6.5.1
Overview
[priqueue.overview]
22.6.5.2
Constructors
[priqueue.cons]
22.6.5.3
Constructors with allocators
[priqueue.cons.alloc]
22.6.5.4
Members
[priqueue.members]
22.6.5.5
Specialized algorithms
[priqueue.special]
22.6.6
Class template stack
[stack]
22.6.6.1
General
[stack.general]
22.6.6.2
Definition
[stack.defn]
22.6.6.3
Constructors
[stack.cons]
22.6.6.4
Constructors with allocators
[stack.cons.alloc]
22.6.6.5
Operators
[stack.ops]
22.6.6.6
Specialized algorithms
[stack.special]
22.7
Views
[views]
22.7.1
General
[views.general]
22.7.2
Header synopsis
[span.syn]
22.7.3
Class template span
[views.span]
22.7.3.1
Overview
[span.overview]
22.7.3.2
Constructors, copy, and assignment
[span.cons]
22.7.3.3
Deduction guides
[span.deduct]
22.7.3.4
Subviews
[span.sub]
22.7.3.5
Observers
[span.obs]
22.7.3.6
Element access
[span.elem]
22.7.3.7
Iterator support
[span.iterators]
22.7.3.8
Views of object representation
[span.objectrep]
23
Iterators library
[iterators]
23.1
General
[iterators.general]
23.2
Header synopsis
[iterator.synopsis]
23.3
Iterator requirements
[iterator.requirements]
23.3.1
In general
[iterator.requirements.general]
23.3.2
Associated types
[iterator.assoc.types]
23.3.2.1
Incrementable traits
[incrementable.traits]
23.3.2.2
Indirectly readable traits
[readable.traits]
23.3.2.3
Iterator traits
[iterator.traits]
23.3.3
Customization point objects
[iterator.cust]
23.3.3.1
ranges::iter_move
[iterator.cust.move]
23.3.3.2
ranges::iter_swap
[iterator.cust.swap]
23.3.4
Iterator concepts
[iterator.concepts]
23.3.4.1
General
[iterator.concepts.general]
23.3.4.2
Concept indirectly_readable
[iterator.concept.readable]
23.3.4.3
Concept indirectly_writable
[iterator.concept.writable]
23.3.4.4
Concept weakly_incrementable
[iterator.concept.winc]
23.3.4.5
Concept incrementable
[iterator.concept.inc]
23.3.4.6
Concept input_or_output_iterator
[iterator.concept.iterator]
23.3.4.7
Concept sentinel_for
[iterator.concept.sentinel]
23.3.4.8
Concept sized_sentinel_for
[iterator.concept.sizedsentinel]
23.3.4.9
Concept input_iterator
[iterator.concept.input]
23.3.4.10
Concept output_iterator
[iterator.concept.output]
23.3.4.11
Concept forward_iterator
[iterator.concept.forward]
23.3.4.12
Concept bidirectional_iterator
[iterator.concept.bidir]
23.3.4.13
Concept random_access_iterator
[iterator.concept.random.access]
23.3.4.14
Concept contiguous_iterator
[iterator.concept.contiguous]
23.3.5
C++17 iterator requirements
[iterator.cpp17]
23.3.5.1
General
[iterator.cpp17.general]
23.3.5.2
Cpp17Iterator
[iterator.iterators]
23.3.5.3
Input iterators
[input.iterators]
23.3.5.4
Output iterators
[output.iterators]
23.3.5.5
Forward iterators
[forward.iterators]
23.3.5.6
Bidirectional iterators
[bidirectional.iterators]
23.3.5.7
Random access iterators
[random.access.iterators]
23.3.6
Indirect callable requirements
[indirectcallable]
23.3.6.1
General
[indirectcallable.general]
23.3.6.2
Indirect callables
[indirectcallable.indirectinvocable]
23.3.6.3
Class template projected
[projected]
23.3.7
Common algorithm requirements
[alg.req]
23.3.7.1
General
[alg.req.general]
23.3.7.2
Concept indirectly_movable
[alg.req.ind.move]
23.3.7.3
Concept indirectly_copyable
[alg.req.ind.copy]
23.3.7.4
Concept indirectly_swappable
[alg.req.ind.swap]
23.3.7.5
Concept indirectly_comparable
[alg.req.ind.cmp]
23.3.7.6
Concept permutable
[alg.req.permutable]
23.3.7.7
Concept mergeable
[alg.req.mergeable]
23.3.7.8
Concept sortable
[alg.req.sortable]
23.4
Iterator primitives
[iterator.primitives]
23.4.1
General
[iterator.primitives.general]
23.4.2
Standard iterator tags
[std.iterator.tags]
23.4.3
Iterator operations
[iterator.operations]
23.4.4
Range iterator operations
[range.iter.ops]
23.4.4.1
General
[range.iter.ops.general]
23.4.4.2
ranges::advance
[range.iter.op.advance]
23.4.4.3
ranges::distance
[range.iter.op.distance]
23.4.4.4
ranges::next
[range.iter.op.next]
23.4.4.5
ranges::prev
[range.iter.op.prev]
23.5
Iterator adaptors
[predef.iterators]
23.5.1
Reverse iterators
[reverse.iterators]
23.5.1.1
General
[reverse.iterators.general]
23.5.1.2
Class template reverse_iterator
[reverse.iterator]
23.5.1.3
Requirements
[reverse.iter.requirements]
23.5.1.4
Construction and assignment
[reverse.iter.cons]
23.5.1.5
Conversion
[reverse.iter.conv]
23.5.1.6
Element access
[reverse.iter.elem]
23.5.1.7
Navigation
[reverse.iter.nav]
23.5.1.8
Comparisons
[reverse.iter.cmp]
23.5.1.9
Non-member functions
[reverse.iter.nonmember]
23.5.2
Insert iterators
[insert.iterators]
23.5.2.1
General
[insert.iterators.general]
23.5.2.2
Class template back_insert_iterator
[back.insert.iterator]
23.5.2.2.1
Operations
[back.insert.iter.ops]
23.5.2.2.2
back_inserter
[back.inserter]
23.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
23.5.2.3.1
Operations
[front.insert.iter.ops]
23.5.2.3.2
front_inserter
[front.inserter]
23.5.2.4
Class template insert_iterator
[insert.iterator]
23.5.2.4.1
Operations
[insert.iter.ops]
23.5.2.4.2
inserter
[inserter]
23.5.3
Move iterators and sentinels
[move.iterators]
23.5.3.1
General
[move.iterators.general]
23.5.3.2
Class template move_iterator
[move.iterator]
23.5.3.3
Requirements
[move.iter.requirements]
23.5.3.4
Construction and assignment
[move.iter.cons]
23.5.3.5
Conversion
[move.iter.op.conv]
23.5.3.6
Element access
[move.iter.elem]
23.5.3.7
Navigation
[move.iter.nav]
23.5.3.8
Comparisons
[move.iter.op.comp]
23.5.3.9
Non-member functions
[move.iter.nonmember]
23.5.3.10
Class template move_sentinel
[move.sentinel]
23.5.3.11
Operations
[move.sent.ops]
23.5.4
Common iterators
[iterators.common]
23.5.4.1
Class template common_iterator
[common.iterator]
23.5.4.2
Associated types
[common.iter.types]
23.5.4.3
Constructors and conversions
[common.iter.const]
23.5.4.4
Accessors
[common.iter.access]
23.5.4.5
Navigation
[common.iter.nav]
23.5.4.6
Comparisons
[common.iter.cmp]
23.5.4.7
Customizations
[common.iter.cust]
23.5.5
Default sentinel
[default.sentinel]
23.5.6
Counted iterators
[iterators.counted]
23.5.6.1
Class template counted_iterator
[counted.iterator]
23.5.6.2
Constructors and conversions
[counted.iter.const]
23.5.6.3
Accessors
[counted.iter.access]
23.5.6.4
Element access
[counted.iter.elem]
23.5.6.5
Navigation
[counted.iter.nav]
23.5.6.6
Comparisons
[counted.iter.cmp]
23.5.6.7
Customizations
[counted.iter.cust]
23.5.7
Unreachable sentinel
[unreachable.sentinel]
23.6
Stream iterators
[stream.iterators]
23.6.1
General
[stream.iterators.general]
23.6.2
Class template istream_iterator
[istream.iterator]
23.6.2.1
General
[istream.iterator.general]
23.6.2.2
Constructors and destructor
[istream.iterator.cons]
23.6.2.3
Operations
[istream.iterator.ops]
23.6.3
Class template ostream_iterator
[ostream.iterator]
23.6.3.1
General
[ostream.iterator.general]
23.6.3.2
Constructors and destructor
[ostream.iterator.cons.des]
23.6.3.3
Operations
[ostream.iterator.ops]
23.6.4
Class template istreambuf_iterator
[istreambuf.iterator]
23.6.4.1
General
[istreambuf.iterator.general]
23.6.4.2
Class istreambuf_iterator::proxy
[istreambuf.iterator.proxy]
23.6.4.3
Constructors
[istreambuf.iterator.cons]
23.6.4.4
Operations
[istreambuf.iterator.ops]
23.6.5
Class template ostreambuf_iterator
[ostreambuf.iterator]
23.6.5.1
General
[ostreambuf.iterator.general]
23.6.5.2
Constructors
[ostreambuf.iter.cons]
23.6.5.3
Operations
[ostreambuf.iter.ops]
23.7
Range access
[iterator.range]
24
Ranges library
[ranges]
24.1
General
[ranges.general]
24.2
Header synopsis
[ranges.syn]
24.3
Range access
[range.access]
24.3.1
General
[range.access.general]
24.3.2
ranges::begin
[range.access.begin]
24.3.3
ranges::end
[range.access.end]
24.3.4
ranges::cbegin
[range.access.cbegin]
24.3.5
ranges::cend
[range.access.cend]
24.3.6
ranges::rbegin
[range.access.rbegin]
24.3.7
ranges::rend
[range.access.rend]
24.3.8
ranges::crbegin
[range.access.crbegin]
24.3.9
ranges::crend
[range.access.crend]
24.3.10
ranges::size
[range.prim.size]
24.3.11
ranges::ssize
[range.prim.ssize]
24.3.12
ranges::empty
[range.prim.empty]
24.3.13
ranges::data
[range.prim.data]
24.3.14
ranges::cdata
[range.prim.cdata]
24.4
Range requirements
[range.req]
24.4.1
General
[range.req.general]
24.4.2
Ranges
[range.range]
24.4.3
Sized ranges
[range.sized]
24.4.4
Views
[range.view]
24.4.5
Other range refinements
[range.refinements]
24.5
Range utilities
[range.utility]
24.5.1
General
[range.utility.general]
24.5.2
Helper concepts
[range.utility.helpers]
24.5.3
View interface
[view.interface]
24.5.3.1
General
[view.interface.general]
24.5.3.2
Members
[view.interface.members]
24.5.4
Sub-ranges
[range.subrange]
24.5.4.1
General
[range.subrange.general]
24.5.4.2
Constructors and conversions
[range.subrange.ctor]
24.5.4.3
Accessors
[range.subrange.access]
24.5.5
Dangling iterator handling
[range.dangling]
24.6
Range factories
[range.factories]
24.6.1
General
[range.factories.general]
24.6.2
Empty view
[range.empty]
24.6.2.1
Overview
[range.empty.overview]
24.6.2.2
Class template empty_view
[range.empty.view]
24.6.3
Single view
[range.single]
24.6.3.1
Overview
[range.single.overview]
24.6.3.2
Class template single_view
[range.single.view]
24.6.4
Iota view
[range.iota]
24.6.4.1
Overview
[range.iota.overview]
24.6.4.2
Class template iota_view
[range.iota.view]
24.6.4.3
Class iota_view::iterator
[range.iota.iterator]
24.6.4.4
Class iota_view::sentinel
[range.iota.sentinel]
24.6.5
Istream view
[range.istream]
24.6.5.1
Overview
[range.istream.overview]
24.6.5.2
Class template basic_istream_view
[range.istream.view]
24.6.5.3
Class template basic_istream_view::iterator
[range.istream.iterator]
24.7
Range adaptors
[range.adaptors]
24.7.1
General
[range.adaptors.general]
24.7.2
Range adaptor objects
[range.adaptor.object]
24.7.3
Semiregular wrapper
[range.semi.wrap]
24.7.4
All view
[range.all]
24.7.4.1
General
[range.all.general]
24.7.4.2
Class template ref_view
[range.ref.view]
24.7.5
Filter view
[range.filter]
24.7.5.1
Overview
[range.filter.overview]
24.7.5.2
Class template filter_view
[range.filter.view]
24.7.5.3
Class filter_view::iterator
[range.filter.iterator]
24.7.5.4
Class filter_view::sentinel
[range.filter.sentinel]
24.7.6
Transform view
[range.transform]
24.7.6.1
Overview
[range.transform.overview]
24.7.6.2
Class template transform_view
[range.transform.view]
24.7.6.3
Class template transform_view::iterator
[range.transform.iterator]
24.7.6.4
Class template transform_view::sentinel
[range.transform.sentinel]
24.7.7
Take view
[range.take]
24.7.7.1
Overview
[range.take.overview]
24.7.7.2
Class template take_view
[range.take.view]
24.7.7.3
Class template take_view::sentinel
[range.take.sentinel]
24.7.8
Take while view
[range.take.while]
24.7.8.1
Overview
[range.take.while.overview]
24.7.8.2
Class template take_while_view
[range.take.while.view]
24.7.8.3
Class template take_while_view::sentinel
[range.take.while.sentinel]
24.7.9
Drop view
[range.drop]
24.7.9.1
Overview
[range.drop.overview]
24.7.9.2
Class template drop_view
[range.drop.view]
24.7.10
Drop while view
[range.drop.while]
24.7.10.1
Overview
[range.drop.while.overview]
24.7.10.2
Class template drop_while_view
[range.drop.while.view]
24.7.11
Join view
[range.join]
24.7.11.1
Overview
[range.join.overview]
24.7.11.2
Class template join_view
[range.join.view]
24.7.11.3
Class template join_view::iterator
[range.join.iterator]
24.7.11.4
Class template join_view::sentinel
[range.join.sentinel]
24.7.12
Split view
[range.split]
24.7.12.1
Overview
[range.split.overview]
24.7.12.2
Class template split_view
[range.split.view]
24.7.12.3
Class template split_view::outer-iterator
[range.split.outer]
24.7.12.4
Class split_view::outer-iterator::value_type
[range.split.outer.value]
24.7.12.5
Class template split_view::inner-iterator
[range.split.inner]
24.7.13
Counted view
[range.counted]
24.7.14
Common view
[range.common]
24.7.14.1
Overview
[range.common.overview]
24.7.14.2
Class template common_view
[range.common.view]
24.7.15
Reverse view
[range.reverse]
24.7.15.1
Overview
[range.reverse.overview]
24.7.15.2
Class template reverse_view
[range.reverse.view]
24.7.16
Elements view
[range.elements]
24.7.16.1
Overview
[range.elements.overview]
24.7.16.2
Class template elements_view
[range.elements.view]
24.7.16.3
Class template elements_view::iterator
[range.elements.iterator]
24.7.16.4
Class template elements_view::sentinel
[range.elements.sentinel]
25
Algorithms library
[algorithms]
25.1
General
[algorithms.general]
25.2
Algorithms requirements
[algorithms.requirements]
25.3
Parallel algorithms
[algorithms.parallel]
25.3.1
Preamble
[algorithms.parallel.defns]
25.3.2
Requirements on user-provided function objects
[algorithms.parallel.user]
25.3.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
25.3.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
25.3.5
ExecutionPolicy algorithm overloads
[algorithms.parallel.overloads]
25.4
Header 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 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 algorithms
[specialized.algorithms]
25.11.1
General
[specialized.algorithms.general]
25.11.2
Special memory concepts
[special.mem.concepts]
25.11.3
uninitialized_default_construct
[uninitialized.construct.default]
25.11.4
uninitialized_value_construct
[uninitialized.construct.value]
25.11.5
uninitialized_copy
[uninitialized.copy]
25.11.6
uninitialized_move
[uninitialized.move]
25.11.7
uninitialized_fill
[uninitialized.fill]
25.11.8
construct_at
[specialized.construct]
25.11.9
destroy
[specialized.destroy]
25.12
C library algorithms
[alg.c.library]
26
Numerics library
[numerics]
26.1
General
[numerics.general]
26.2
Numeric type requirements
[numeric.requirements]
26.3
The floating-point environment
[cfenv]
26.3.1
Header 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 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 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 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 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 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 synopsis
[numbers.syn]
26.9.2
Mathematical constants
[math.constants]
27
Time library
[time]
27.1
General
[time.general]
27.2
Header 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 synopsis
[ctime.syn]
28
Localization library
[localization]
28.1
General
[localization.general]
28.2
Header 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 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 synopsis
[clocale.syn]
28.5.2
Data races
[clocale.data.races]
29
Input/output library
[input.output]
29.1
General
[input.output.general]
29.2
Iostreams requirements
[iostreams.requirements]
29.2.1
Imbue limitations
[iostream.limits.imbue]
29.2.2
Positioning type limitations
[iostreams.limits.pos]
29.2.3
Thread safety
[iostreams.threadsafety]
29.3
Forward declarations
[iostream.forward]
29.3.1
Header synopsis
[iosfwd.syn]
29.3.2
Overview
[iostream.forward.overview]
29.4
Standard iostream objects
[iostream.objects]
29.4.1
Header 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 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 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 synopsis
[istream.syn]
29.7.2
Header synopsis
[ostream.syn]
29.7.3
Header 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 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 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 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 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 synopsis
[cstdio.syn]
29.12.2
Header synopsis
[cinttypes.syn]
30
Regular expressions library
[re]
30.1
General
[re.general]
30.2
Requirements
[re.req]
30.3
Header synopsis
[re.syn]
30.4
Namespace std::regex_constants
[re.const]
30.4.1
General
[re.const.general]
30.4.2
Bitmask type syntax_option_type
[re.synopt]
30.4.3
Bitmask type match_flag_type
[re.matchflag]
30.4.4
Implementation-defined error_type
[re.err]
30.5
Class regex_error
[re.badexp]
30.6
Class template regex_traits
[re.traits]
30.7
Class template basic_regex
[re.regex]
30.7.1
General
[re.regex.general]
30.7.2
Constructors
[re.regex.construct]
30.7.3
Assignment
[re.regex.assign]
30.7.4
Constant operations
[re.regex.operations]
30.7.5
Locale
[re.regex.locale]
30.7.6
Swap
[re.regex.swap]
30.7.7
Non-member functions
[re.regex.nonmemb]
30.8
Class template sub_match
[re.submatch]
30.8.1
General
[re.submatch.general]
30.8.2
Members
[re.submatch.members]
30.8.3
Non-member operators
[re.submatch.op]
30.9
Class template match_results
[re.results]
30.9.1
General
[re.results.general]
30.9.2
Constructors
[re.results.const]
30.9.3
State
[re.results.state]
30.9.4
Size
[re.results.size]
30.9.5
Element access
[re.results.acc]
30.9.6
Formatting
[re.results.form]
30.9.7
Allocator
[re.results.all]
30.9.8
Swap
[re.results.swap]
30.9.9
Non-member functions
[re.results.nonmember]
30.10
Regular expression algorithms
[re.alg]
30.10.1
Exceptions
[re.except]
30.10.2
regex_match
[re.alg.match]
30.10.3
regex_search
[re.alg.search]
30.10.4
regex_replace
[re.alg.replace]
30.11
Regular expression iterators
[re.iter]
30.11.1
Class template regex_iterator
[re.regiter]
30.11.1.1
General
[re.regiter.general]
30.11.1.2
Constructors
[re.regiter.cnstr]
30.11.1.3
Comparisons
[re.regiter.comp]
30.11.1.4
Indirection
[re.regiter.deref]
30.11.1.5
Increment
[re.regiter.incr]
30.11.2
Class template regex_token_iterator
[re.tokiter]
30.11.2.1
General
[re.tokiter.general]
30.11.2.2
Constructors
[re.tokiter.cnstr]
30.11.2.3
Comparisons
[re.tokiter.comp]
30.11.2.4
Indirection
[re.tokiter.deref]
30.11.2.5
Increment
[re.tokiter.incr]
30.12
Modified ECMAScript regular expression grammar
[re.grammar]
31
Atomic operations library
[atomics]
31.1
General
[atomics.general]
31.2
Header synopsis
[atomics.syn]
31.3
Type aliases
[atomics.alias]
31.4
Order and consistency
[atomics.order]
31.5
Lock-free property
[atomics.lockfree]
31.6
Waiting and notifying
[atomics.wait]
31.7
Class template atomic_ref
[atomics.ref.generic]
31.7.1
General
[atomics.ref.generic.general]
31.7.2
Operations
[atomics.ref.ops]
31.7.3
Specializations for integral types
[atomics.ref.int]
31.7.4
Specializations for floating-point types
[atomics.ref.float]
31.7.5
Partial specialization for pointers
[atomics.ref.pointer]
31.7.6
Member operators common to integers and pointers to objects
[atomics.ref.memop]
31.8
Class template atomic
[atomics.types.generic]
31.8.1
General
[atomics.types.generic.general]
31.8.2
Operations on atomic types
[atomics.types.operations]
31.8.3
Specializations for integers
[atomics.types.int]
31.8.4
Specializations for floating-point types
[atomics.types.float]
31.8.5
Partial specialization for pointers
[atomics.types.pointer]
31.8.6
Member operators common to integers and pointers to objects
[atomics.types.memop]
31.8.7
Partial specializations for smart pointers
[util.smartptr.atomic]
31.8.7.1
General
[util.smartptr.atomic.general]
31.8.7.2
Partial specialization for shared_ptr
[util.smartptr.atomic.shared]
31.8.7.3
Partial specialization for weak_ptr
[util.smartptr.atomic.weak]
31.9
Non-member functions
[atomics.nonmembers]
31.10
Flag type and operations
[atomics.flag]
31.11
Fences
[atomics.fences]
32
Thread support library
[thread]
32.1
General
[thread.general]
32.2
Requirements
[thread.req]
32.2.1
Template parameter names
[thread.req.paramname]
32.2.2
Exceptions
[thread.req.exception]
32.2.3
Native handles
[thread.req.native]
32.2.4
Timing specifications
[thread.req.timing]
32.2.5
Requirements for Cpp17Lockable types
[thread.req.lockable]
32.2.5.1
In general
[thread.req.lockable.general]
32.2.5.2
Cpp17BasicLockable requirements
[thread.req.lockable.basic]
32.2.5.3
Cpp17Lockable requirements
[thread.req.lockable.req]
32.2.5.4
Cpp17TimedLockable requirements
[thread.req.lockable.timed]
32.3
Stop tokens
[thread.stoptoken]
32.3.1
Introduction
[thread.stoptoken.intro]
32.3.2
Header 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 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 synopsis
[mutex.syn]
32.5.3
Header 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 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 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 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 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 synopsis
[future.syn]
32.9.3
Error handling
[futures.errors]
32.9.4
Class future_error
[futures.future.error]
32.9.5
Shared state
[futures.state]
32.9.6
Class template promise
[futures.promise]
32.9.7
Class template future
[futures.unique.future]
32.9.8
Class template shared_future
[futures.shared.future]
32.9.9
Function template async
[futures.async]
32.9.10
Class template packaged_task
[futures.task]
32.9.10.1
General
[futures.task.general]
32.9.10.2
Member functions
[futures.task.members]
32.9.10.3
Globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
A.1
General
[gram.general]
A.2
Keywords
[gram.key]
A.3
Lexical conventions
[gram.lex]
A.4
Basics
[gram.basic]
A.5
Expressions
[gram.expr]
A.6
Statements
[gram.stmt]
A.7
Declarations
[gram.dcl]
A.8
Modules
[gram.module]
A.9
Classes
[gram.class]
A.10
Overloading
[gram.over]
A.11
Templates
[gram.temp]
A.12
Exception handling
[gram.except]
A.13
Preprocessing directives
[gram.cpp]
Annex B (normative)
Implementation quantities
[implimits]
Annex C (informative)
Compatibility
[diff]
C.1
C++ and ISO C++ 2017
[diff.cpp17]
C.1.1
General
[diff.cpp17.general]
C.1.2
[lex]: lexical conventions
[diff.cpp17.lex]
C.1.3
[basic]: basics
[diff.cpp17.basic]
C.1.4
[expr]: expressions
[diff.cpp17.expr]
C.1.5
[dcl.dcl]: declarations
[diff.cpp17.dcl.dcl]
C.1.6
[class]: classes
[diff.cpp17.class]
C.1.7
[over]: overloading
[diff.cpp17.over]
C.1.8
[temp]: templates
[diff.cpp17.temp]
C.1.9
[except]: exception handling
[diff.cpp17.except]
C.1.10
[library]: library introduction
[diff.cpp17.library]
C.1.11
[containers]: containers library
[diff.cpp17.containers]
C.1.12
[iterators]: iterators library
[diff.cpp17.iterators]
C.1.13
[algorithms]: algorithms library
[diff.cpp17.alg.reqs]
C.1.14
[input.output]: input/output library
[diff.cpp17.input.output]
C.1.15
[depr]: compatibility features
[diff.cpp17.depr]
C.2
C++ and ISO C++ 2014
[diff.cpp14]
C.2.1
General
[diff.cpp14.general]
C.2.2
[lex]: lexical conventions
[diff.cpp14.lex]
C.2.3
[expr]: expressions
[diff.cpp14.expr]
C.2.4
[dcl.dcl]: declarations
[diff.cpp14.dcl.dcl]
C.2.5
[class]: classes
[diff.cpp14.class]
C.2.6
[temp]: templates
[diff.cpp14.temp]
C.2.7
[except]: exception handling
[diff.cpp14.except]
C.2.8
[library]: library introduction
[diff.cpp14.library]
C.2.9
[utilities]: general utilities library
[diff.cpp14.utilities]
C.2.10
[strings]: strings library
[diff.cpp14.string]
C.2.11
[containers]: containers library
[diff.cpp14.containers]
C.2.12
[depr]: compatibility features
[diff.cpp14.depr]
C.3
C++ and ISO C++ 2011
[diff.cpp11]
C.3.1
General
[diff.cpp11.general]
C.3.2
[lex]: lexical conventions
[diff.cpp11.lex]
C.3.3
[basic]: basics
[diff.cpp11.basic]
C.3.4
[expr]: expressions
[diff.cpp11.expr]
C.3.5
[dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.3.6
[library]: library introduction
[diff.cpp11.library]
C.3.7
[input.output]: input/output library
[diff.cpp11.input.output]
C.4
C++ and ISO C++ 2003
[diff.cpp03]
C.4.1
General
[diff.cpp03.general]
C.4.2
[lex]: lexical conventions
[diff.cpp03.lex]
C.4.3
[expr]: expressions
[diff.cpp03.expr]
C.4.4
[dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.4.5
[class]: classes
[diff.cpp03.class]
C.4.6
[temp]: templates
[diff.cpp03.temp]
C.4.7
[library]: library introduction
[diff.cpp03.library]
C.4.8
[support]: language support library
[diff.cpp03.language.support]
C.4.9
[diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.4.10
[utilities]: general utilities library
[diff.cpp03.utilities]
C.4.11
[strings]: strings library
[diff.cpp03.strings]
C.4.12
[containers]: containers library
[diff.cpp03.containers]
C.4.13
[algorithms]: algorithms library
[diff.cpp03.algorithms]
C.4.14
[numerics]: numerics library
[diff.cpp03.numerics]
C.4.15
[input.output]: input/output library
[diff.cpp03.input.output]
C.5
C++ and ISO C
[diff.iso]
C.5.1
General
[diff.iso.general]
C.5.2
[lex]: lexical conventions
[diff.lex]
C.5.3
[basic]: basics
[diff.basic]
C.5.4
[expr]: expressions
[diff.expr]
C.5.5
[stmt.stmt]: statements
[diff.stat]
C.5.6
[dcl.dcl]: declarations
[diff.dcl]
C.5.7
[class]: classes
[diff.class]
C.5.8
[cpp]: preprocessing directives
[diff.cpp]
C.6
C standard library
[diff.library]
C.6.1
General
[diff.library.general]
C.6.2
Modifications to headers
[diff.mods.to.headers]
C.6.3
Modifications to definitions
[diff.mods.to.definitions]
C.6.3.1
Types char16_t and char32_t
[diff.char16]
C.6.3.2
Type wchar_t
[diff.wchar.t]
C.6.3.3
Header
[diff.header.assert.h]
C.6.3.4
Header
[diff.header.iso646.h]
C.6.3.5
Header
[diff.header.stdalign.h]
C.6.3.6
Header
[diff.header.stdbool.h]
C.6.3.7
Macro NULL
[diff.null]
C.6.4
Modifications to declarations
[diff.mods.to.declarations]
C.6.5
Modifications to behavior
[diff.mods.to.behavior]
C.6.5.1
General
[diff.mods.to.behavior.general]
C.6.5.2
Macro offsetof(type, member-designator)
[diff.offsetof]
C.6.5.3
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
D.1
General
[depr.general]
D.2
Arithmetic conversion on enumerations
[depr.arith.conv.enum]
D.3
Implicit capture of *this by reference
[depr.capture.this]
D.4
Comma operator in subscript expressions
[depr.comma.subscript]
D.5
Array comparisons
[depr.array.comp]
D.6
Deprecated volatile types
[depr.volatile.type]
D.7
Redeclaration of static constexpr data members
[depr.static.constexpr]
D.8
Non-local use of TU-local entities
[depr.local]
D.9
Implicit declaration of copy functions
[depr.impldec]
D.10
C headers
[depr.c.headers]
D.10.1
General
[depr.c.headers.general]
D.10.2
Header synopsis
[depr.complex.h.syn]
D.10.3
Header synopsis
[depr.iso646.h.syn]
D.10.4
Header synopsis
[depr.stdalign.h.syn]
D.10.5
Header synopsis
[depr.stdbool.h.syn]
D.10.6
Header 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 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 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]
C++23 (N4950)
1
Scope
[intro.scope]
2
Normative references
[intro.refs]
3
Terms and definitions
[intro.defs]
3.1
access
[defns.access]
3.2
argument
[defns.argument]
3.3
argument
[defns.argument.macro]
3.4
argument
[defns.argument.throw]
3.5
argument
[defns.argument.templ]
3.6
block
[defns.block]
3.7
block
[defns.block.stmt]
3.8
C standard library
[defns.c.lib]
3.9
character
[defns.character]
3.10
character container type
[defns.character.container]
3.11
collating element
[defns.regex.collating.element]
3.12
component
[defns.component]
3.13
conditionally-supported
[defns.cond.supp]
3.14
constant subexpression
[defns.const.subexpr]
3.15
deadlock
[defns.deadlock]
3.16
default behavior
[defns.default.behavior.impl]
3.17
diagnostic message
[defns.diagnostic]
3.18
dynamic type
[defns.dynamic.type]
3.19
dynamic type
[defns.dynamic.type.prvalue]
3.20
expression-equivalent
[defns.expression.equivalent]
3.21
finite state machine
[defns.regex.finite.state.machine]
3.22
format specifier
[defns.regex.format.specifier]
3.23
handler function
[defns.handler]
3.24
ill-formed program
[defns.ill.formed]
3.25
implementation-defined behavior
[defns.impl.defined]
3.26
implementation-defined strict total order over pointers
[defns.order.ptr]
3.27
implementation limit
[defns.impl.limits]
3.28
locale-specific behavior
[defns.locale.specific]
3.29
matched
[defns.regex.matched]
3.30
modifier function
[defns.modifier]
3.31
move assignment
[defns.move.assign]
3.32
move construction
[defns.move.constr]
3.33
non-constant library call
[defns.nonconst.libcall]
3.34
NTCTS
[defns.ntcts]
3.35
observer function
[defns.observer]
3.36
parameter
[defns.parameter]
3.37
parameter
[defns.parameter.macro]
3.38
parameter
[defns.parameter.templ]
3.39
primary equivalence class
[defns.regex.primary.equivalence.class]
3.40
program-defined specialization
[defns.prog.def.spec]
3.41
program-defined type
[defns.prog.def.type]
3.42
projection
[defns.projection]
3.43
referenceable type
[defns.referenceable]
3.44
regular expression
[defns.regex.regular.expression]
3.45
replacement function
[defns.replacement]
3.46
required behavior
[defns.required.behavior]
3.47
reserved function
[defns.reserved.function]
3.48
signature
[defns.signature]
3.49
signature
[defns.signature.friend]
3.50
signature
[defns.signature.templ]
3.51
signature
[defns.signature.templ.friend]
3.52
signature
[defns.signature.spec]
3.53
signature
[defns.signature.member]
3.54
signature
[defns.signature.member.templ]
3.55
signature
[defns.signature.member.spec]
3.56
signature
[defns.signature.template.head]
3.57
stable algorithm
[defns.stable]
3.58
static type
[defns.static.type]
3.59
sub-expression
[defns.regex.subexpression]
3.60
traits class
[defns.traits]
3.61
unblock
[defns.unblock]
3.62
undefined behavior
[defns.undefined]
3.63
unspecified behavior
[defns.unspecified]
3.64
valid but unspecified state
[defns.valid]
3.65
well-formed program
[defns.well.formed]
4
General principles
[intro]
4.1
Implementation compliance
[intro.compliance]
4.1.1
General
[intro.compliance.general]
4.1.2
Abstract machine
[intro.abstract]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
5
Lexical conventions
[lex]
5.1
Separate translation
[lex.separate]
5.2
Phases of translation
[lex.phases]
5.3
Character sets
[lex.charset]
5.4
Preprocessing tokens
[lex.pptoken]
5.5
Alternative tokens
[lex.digraph]
5.6
Tokens
[lex.token]
5.7
Comments
[lex.comment]
5.8
Header names
[lex.header]
5.9
Preprocessing numbers
[lex.ppnumber]
5.10
Identifiers
[lex.name]
5.11
Keywords
[lex.key]
5.12
Operators and punctuators
[lex.operators]
5.13
Literals
[lex.literal]
5.13.1
Kinds of literals
[lex.literal.kinds]
5.13.2
Integer literals
[lex.icon]
5.13.3
Character literals
[lex.ccon]
5.13.4
Floating-point literals
[lex.fcon]
5.13.5
String literals
[lex.string]
5.13.6
Boolean literals
[lex.bool]
5.13.7
Pointer literals
[lex.nullptr]
5.13.8
User-defined literals
[lex.ext]
6
Basics
[basic]
6.1
Preamble
[basic.pre]
6.2
Declarations and definitions
[basic.def]
6.3
One-definition rule
[basic.def.odr]
6.4
Scope
[basic.scope]
6.4.1
General
[basic.scope.scope]
6.4.2
Point of declaration
[basic.scope.pdecl]
6.4.3
Block scope
[basic.scope.block]
6.4.4
Function parameter scope
[basic.scope.param]
6.4.5
Lambda scope
[basic.scope.lambda]
6.4.6
Namespace scope
[basic.scope.namespace]
6.4.7
Class scope
[basic.scope.class]
6.4.8
Enumeration scope
[basic.scope.enum]
6.4.9
Template parameter scope
[basic.scope.temp]
6.5
Name lookup
[basic.lookup]
6.5.1
General
[basic.lookup.general]
6.5.2
Member name lookup
[class.member.lookup]
6.5.3
Unqualified name lookup
[basic.lookup.unqual]
6.5.4
Argument-dependent name lookup
[basic.lookup.argdep]
6.5.5
Qualified name lookup
[basic.lookup.qual]
6.5.5.1
General
[basic.lookup.qual.general]
6.5.5.2
Class members
[class.qual]
6.5.5.3
Namespace members
[namespace.qual]
6.5.6
Elaborated type specifiers
[basic.lookup.elab]
6.5.7
Using-directives and namespace aliases
[basic.lookup.udir]
6.6
Program and linkage
[basic.link]
6.7
Memory and objects
[basic.memobj]
6.7.1
Memory model
[intro.memory]
6.7.2
Object model
[intro.object]
6.7.3
Lifetime
[basic.life]
6.7.4
Indeterminate values
[basic.indet]
6.7.5
Storage duration
[basic.stc]
6.7.5.1
General
[basic.stc.general]
6.7.5.2
Static storage duration
[basic.stc.static]
6.7.5.3
Thread storage duration
[basic.stc.thread]
6.7.5.4
Automatic storage duration
[basic.stc.auto]
6.7.5.5
Dynamic storage duration
[basic.stc.dynamic]
6.7.5.5.1
General
[basic.stc.dynamic.general]
6.7.5.5.2
Allocation functions
[basic.stc.dynamic.allocation]
6.7.5.5.3
Deallocation functions
[basic.stc.dynamic.deallocation]
6.7.5.6
Duration of subobjects
[basic.stc.inherit]
6.7.6
Alignment
[basic.align]
6.7.7
Temporary objects
[class.temporary]
6.8
Types
[basic.types]
6.8.1
General
[basic.types.general]
6.8.2
Fundamental types
[basic.fundamental]
6.8.3
Optional extended floating-point types
[basic.extended.fp]
6.8.4
Compound types
[basic.compound]
6.8.5
CV-qualifiers
[basic.type.qualifier]
6.8.6
Conversion ranks
[conv.rank]
6.9
Program execution
[basic.exec]
6.9.1
Sequential execution
[intro.execution]
6.9.2
Multi-threaded executions and data races
[intro.multithread]
6.9.2.1
General
[intro.multithread.general]
6.9.2.2
Data races
[intro.races]
6.9.2.3
Forward progress
[intro.progress]
6.9.3
Start and termination
[basic.start]
6.9.3.1
main function
[basic.start.main]
6.9.3.2
Static initialization
[basic.start.static]
6.9.3.3
Dynamic initialization of non-block variables
[basic.start.dynamic]
6.9.3.4
Termination
[basic.start.term]
7
Expressions
[expr]
7.1
Preamble
[expr.pre]
7.2
Properties of expressions
[expr.prop]
7.2.1
Value category
[basic.lval]
7.2.2
Type
[expr.type]
7.2.3
Context dependence
[expr.context]
7.3
Standard conversions
[conv]
7.3.1
General
[conv.general]
7.3.2
Lvalue-to-rvalue conversion
[conv.lval]
7.3.3
Array-to-pointer conversion
[conv.array]
7.3.4
Function-to-pointer conversion
[conv.func]
7.3.5
Temporary materialization conversion
[conv.rval]
7.3.6
Qualification conversions
[conv.qual]
7.3.7
Integral promotions
[conv.prom]
7.3.8
Floating-point promotion
[conv.fpprom]
7.3.9
Integral conversions
[conv.integral]
7.3.10
Floating-point conversions
[conv.double]
7.3.11
Floating-integral conversions
[conv.fpint]
7.3.12
Pointer conversions
[conv.ptr]
7.3.13
Pointer-to-member conversions
[conv.mem]
7.3.14
Function pointer conversions
[conv.fctptr]
7.3.15
Boolean conversions
[conv.bool]
7.4
Usual arithmetic conversions
[expr.arith.conv]
7.5
Primary expressions
[expr.prim]
7.5.1
Literals
[expr.prim.literal]
7.5.2
This
[expr.prim.this]
7.5.3
Parentheses
[expr.prim.paren]
7.5.4
Names
[expr.prim.id]
7.5.4.1
General
[expr.prim.id.general]
7.5.4.2
Unqualified names
[expr.prim.id.unqual]
7.5.4.3
Qualified names
[expr.prim.id.qual]
7.5.4.4
Destruction
[expr.prim.id.dtor]
7.5.5
Lambda expressions
[expr.prim.lambda]
7.5.5.1
General
[expr.prim.lambda.general]
7.5.5.2
Closure types
[expr.prim.lambda.closure]
7.5.5.3
Captures
[expr.prim.lambda.capture]
7.5.6
Fold expressions
[expr.prim.fold]
7.5.7
Requires expressions
[expr.prim.req]
7.5.7.1
General
[expr.prim.req.general]
7.5.7.2
Simple requirements
[expr.prim.req.simple]
7.5.7.3
Type requirements
[expr.prim.req.type]
7.5.7.4
Compound requirements
[expr.prim.req.compound]
7.5.7.5
Nested requirements
[expr.prim.req.nested]
7.6
Compound expressions
[expr.compound]
7.6.1
Postfix expressions
[expr.post]
7.6.1.1
General
[expr.post.general]
7.6.1.2
Subscripting
[expr.sub]
7.6.1.3
Function call
[expr.call]
7.6.1.4
Explicit type conversion (functional notation)
[expr.type.conv]
7.6.1.5
Class member access
[expr.ref]
7.6.1.6
Increment and decrement
[expr.post.incr]
7.6.1.7
Dynamic cast
[expr.dynamic.cast]
7.6.1.8
Type identification
[expr.typeid]
7.6.1.9
Static cast
[expr.static.cast]
7.6.1.10
Reinterpret cast
[expr.reinterpret.cast]
7.6.1.11
Const cast
[expr.const.cast]
7.6.2
Unary expressions
[expr.unary]
7.6.2.1
General
[expr.unary.general]
7.6.2.2
Unary operators
[expr.unary.op]
7.6.2.3
Increment and decrement
[expr.pre.incr]
7.6.2.4
Await
[expr.await]
7.6.2.5
Sizeof
[expr.sizeof]
7.6.2.6
Alignof
[expr.alignof]
7.6.2.7
noexcept operator
[expr.unary.noexcept]
7.6.2.8
New
[expr.new]
7.6.2.9
Delete
[expr.delete]
7.6.3
Explicit type conversion (cast notation)
[expr.cast]
7.6.4
Pointer-to-member operators
[expr.mptr.oper]
7.6.5
Multiplicative operators
[expr.mul]
7.6.6
Additive operators
[expr.add]
7.6.7
Shift operators
[expr.shift]
7.6.8
Three-way comparison operator
[expr.spaceship]
7.6.9
Relational operators
[expr.rel]
7.6.10
Equality operators
[expr.eq]
7.6.11
Bitwise AND operator
[expr.bit.and]
7.6.12
Bitwise exclusive OR operator
[expr.xor]
7.6.13
Bitwise inclusive OR operator
[expr.or]
7.6.14
Logical AND operator
[expr.log.and]
7.6.15
Logical OR operator
[expr.log.or]
7.6.16
Conditional operator
[expr.cond]
7.6.17
Yielding a value
[expr.yield]
7.6.18
Throwing an exception
[expr.throw]
7.6.19
Assignment and compound assignment operators
[expr.ass]
7.6.20
Comma operator
[expr.comma]
7.7
Constant expressions
[expr.const]
8
Statements
[stmt.stmt]
8.1
Preamble
[stmt.pre]
8.2
Label
[stmt.label]
8.3
Expression statement
[stmt.expr]
8.4
Compound statement or block
[stmt.block]
8.5
Selection statements
[stmt.select]
8.5.1
General
[stmt.select.general]
8.5.2
The if statement
[stmt.if]
8.5.3
The switch statement
[stmt.switch]
8.6
Iteration statements
[stmt.iter]
8.6.1
General
[stmt.iter.general]
8.6.2
The while statement
[stmt.while]
8.6.3
The do statement
[stmt.do]
8.6.4
The for statement
[stmt.for]
8.6.5
The range-based for statement
[stmt.ranged]
8.7
Jump statements
[stmt.jump]
8.7.1
General
[stmt.jump.general]
8.7.2
The break statement
[stmt.break]
8.7.3
The continue statement
[stmt.cont]
8.7.4
The return statement
[stmt.return]
8.7.5
The co_return statement
[stmt.return.coroutine]
8.7.6
The goto statement
[stmt.goto]
8.8
Declaration statement
[stmt.dcl]
8.9
Ambiguity resolution
[stmt.ambig]
9
Declarations
[dcl.dcl]
9.1
Preamble
[dcl.pre]
9.2
Specifiers
[dcl.spec]
9.2.1
General
[dcl.spec.general]
9.2.2
Storage class specifiers
[dcl.stc]
9.2.3
Function specifiers
[dcl.fct.spec]
9.2.4
The typedef specifier
[dcl.typedef]
9.2.5
The friend specifier
[dcl.friend]
9.2.6
The constexpr and consteval specifiers
[dcl.constexpr]
9.2.7
The constinit specifier
[dcl.constinit]
9.2.8
The inline specifier
[dcl.inline]
9.2.9
Type specifiers
[dcl.type]
9.2.9.1
General
[dcl.type.general]
9.2.9.2
The cv-qualifiers
[dcl.type.cv]
9.2.9.3
Simple type specifiers
[dcl.type.simple]
9.2.9.4
Elaborated type specifiers
[dcl.type.elab]
9.2.9.5
Decltype specifiers
[dcl.type.decltype]
9.2.9.6
Placeholder type specifiers
[dcl.spec.auto]
9.2.9.6.1
General
[dcl.spec.auto.general]
9.2.9.6.2
Placeholder type deduction
[dcl.type.auto.deduct]
9.2.9.7
Deduced class template specialization types
[dcl.type.class.deduct]
9.3
Declarators
[dcl.decl]
9.3.1
General
[dcl.decl.general]
9.3.2
Type names
[dcl.name]
9.3.3
Ambiguity resolution
[dcl.ambig.res]
9.3.4
Meaning of declarators
[dcl.meaning]
9.3.4.1
General
[dcl.meaning.general]
9.3.4.2
Pointers
[dcl.ptr]
9.3.4.3
References
[dcl.ref]
9.3.4.4
Pointers to members
[dcl.mptr]
9.3.4.5
Arrays
[dcl.array]
9.3.4.6
Functions
[dcl.fct]
9.3.4.7
Default arguments
[dcl.fct.default]
9.4
Initializers
[dcl.init]
9.4.1
General
[dcl.init.general]
9.4.2
Aggregates
[dcl.init.aggr]
9.4.3
Character arrays
[dcl.init.string]
9.4.4
References
[dcl.init.ref]
9.4.5
List-initialization
[dcl.init.list]
9.5
Function definitions
[dcl.fct.def]
9.5.1
In general
[dcl.fct.def.general]
9.5.2
Explicitly-defaulted functions
[dcl.fct.def.default]
9.5.3
Deleted definitions
[dcl.fct.def.delete]
9.5.4
Coroutine definitions
[dcl.fct.def.coroutine]
9.6
Structured binding declarations
[dcl.struct.bind]
9.7
Enumerations
[enum]
9.7.1
Enumeration declarations
[dcl.enum]
9.7.2
The using enum declaration
[enum.udecl]
9.8
Namespaces
[basic.namespace]
9.8.1
General
[basic.namespace.general]
9.8.2
Namespace definition
[namespace.def]
9.8.2.1
General
[namespace.def.general]
9.8.2.2
Unnamed namespaces
[namespace.unnamed]
9.8.3
Namespace alias
[namespace.alias]
9.8.4
Using namespace directive
[namespace.udir]
9.9
The using declaration
[namespace.udecl]
9.10
The asm declaration
[dcl.asm]
9.11
Linkage specifications
[dcl.link]
9.12
Attributes
[dcl.attr]
9.12.1
Attribute syntax and semantics
[dcl.attr.grammar]
9.12.2
Alignment specifier
[dcl.align]
9.12.3
Assumption attribute
[dcl.attr.assume]
9.12.4
Carries dependency attribute
[dcl.attr.depend]
9.12.5
Deprecated attribute
[dcl.attr.deprecated]
9.12.6
Fallthrough attribute
[dcl.attr.fallthrough]
9.12.7
Likelihood attributes
[dcl.attr.likelihood]
9.12.8
Maybe unused attribute
[dcl.attr.unused]
9.12.9
Nodiscard attribute
[dcl.attr.nodiscard]
9.12.10
Noreturn attribute
[dcl.attr.noreturn]
9.12.11
No unique address attribute
[dcl.attr.nouniqueaddr]
10
Modules
[module]
10.1
Module units and purviews
[module.unit]
10.2
Export declaration
[module.interface]
10.3
Import declaration
[module.import]
10.4
Global module fragment
[module.global.frag]
10.5
Private module fragment
[module.private.frag]
10.6
Instantiation context
[module.context]
10.7
Reachability
[module.reach]
11
Classes
[class]
11.1
Preamble
[class.pre]
11.2
Properties of classes
[class.prop]
11.3
Class names
[class.name]
11.4
Class members
[class.mem]
11.4.1
General
[class.mem.general]
11.4.2
Member functions
[class.mfct]
11.4.3
Non-static member functions
[class.mfct.non.static]
11.4.4
Special member functions
[special]
11.4.5
Constructors
[class.ctor]
11.4.5.1
General
[class.ctor.general]
11.4.5.2
Default constructors
[class.default.ctor]
11.4.5.3
Copy/move constructors
[class.copy.ctor]
11.4.6
Copy/move assignment operator
[class.copy.assign]
11.4.7
Destructors
[class.dtor]
11.4.8
Conversions
[class.conv]
11.4.8.1
General
[class.conv.general]
11.4.8.2
Conversion by constructor
[class.conv.ctor]
11.4.8.3
Conversion functions
[class.conv.fct]
11.4.9
Static members
[class.static]
11.4.9.1
General
[class.static.general]
11.4.9.2
Static member functions
[class.static.mfct]
11.4.9.3
Static data members
[class.static.data]
11.4.10
Bit-fields
[class.bit]
11.4.11
Allocation and deallocation functions
[class.free]
11.4.12
Nested class declarations
[class.nest]
11.5
Unions
[class.union]
11.5.1
General
[class.union.general]
11.5.2
Anonymous unions
[class.union.anon]
11.6
Local class declarations
[class.local]
11.7
Derived classes
[class.derived]
11.7.1
General
[class.derived.general]
11.7.2
Multiple base classes
[class.mi]
11.7.3
Virtual functions
[class.virtual]
11.7.4
Abstract classes
[class.abstract]
11.8
Member access control
[class.access]
11.8.1
General
[class.access.general]
11.8.2
Access specifiers
[class.access.spec]
11.8.3
Accessibility of base classes and base class members
[class.access.base]
11.8.4
Friends
[class.friend]
11.8.5
Protected member access
[class.protected]
11.8.6
Access to virtual functions
[class.access.virt]
11.8.7
Multiple access
[class.paths]
11.8.8
Nested classes
[class.access.nest]
11.9
Initialization
[class.init]
11.9.1
General
[class.init.general]
11.9.2
Explicit initialization
[class.expl.init]
11.9.3
Initializing bases and members
[class.base.init]
11.9.4
Initialization by inherited constructor
[class.inhctor.init]
11.9.5
Construction and destruction
[class.cdtor]
11.9.6
Copy/move elision
[class.copy.elision]
11.10
Comparisons
[class.compare]
11.10.1
Defaulted comparison operator functions
[class.compare.default]
11.10.2
Equality operator
[class.eq]
11.10.3
Three-way comparison
[class.spaceship]
11.10.4
Secondary comparison operators
[class.compare.secondary]
12
Overloading
[over]
12.1
Preamble
[over.pre]
12.2
Overload resolution
[over.match]
12.2.1
General
[over.match.general]
12.2.2
Candidate functions and argument lists
[over.match.funcs]
12.2.2.1
General
[over.match.funcs.general]
12.2.2.2
Function call syntax
[over.match.call]
12.2.2.2.1
General
[over.match.call.general]
12.2.2.2.2
Call to named function
[over.call.func]
12.2.2.2.3
Call to object of class type
[over.call.object]
12.2.2.3
Operators in expressions
[over.match.oper]
12.2.2.4
Initialization by constructor
[over.match.ctor]
12.2.2.5
Copy-initialization of class by user-defined conversion
[over.match.copy]
12.2.2.6
Initialization by conversion function
[over.match.conv]
12.2.2.7
Initialization by conversion function for direct reference binding
[over.match.ref]
12.2.2.8
Initialization by list-initialization
[over.match.list]
12.2.2.9
Class template argument deduction
[over.match.class.deduct]
12.2.3
Viable functions
[over.match.viable]
12.2.4
Best viable function
[over.match.best]
12.2.4.1
General
[over.match.best.general]
12.2.4.2
Implicit conversion sequences
[over.best.ics]
12.2.4.2.1
General
[over.best.ics.general]
12.2.4.2.2
Standard conversion sequences
[over.ics.scs]
12.2.4.2.3
User-defined conversion sequences
[over.ics.user]
12.2.4.2.4
Ellipsis conversion sequences
[over.ics.ellipsis]
12.2.4.2.5
Reference binding
[over.ics.ref]
12.2.4.2.6
List-initialization sequence
[over.ics.list]
12.2.4.3
Ranking implicit conversion sequences
[over.ics.rank]
12.3
Address of an overload set
[over.over]
12.4
Overloaded operators
[over.oper]
12.4.1
General
[over.oper.general]
12.4.2
Unary operators
[over.unary]
12.4.3
Binary operators
[over.binary]
12.4.3.1
General
[over.binary.general]
12.4.3.2
Simple assignment
[over.ass]
12.4.4
Function call
[over.call]
12.4.5
Subscripting
[over.sub]
12.4.6
Class member access
[over.ref]
12.4.7
Increment and decrement
[over.inc]
12.5
Built-in operators
[over.built]
12.6
User-defined literals
[over.literal]
13
Templates
[temp]
13.1
Preamble
[temp.pre]
13.2
Template parameters
[temp.param]
13.3
Names of template specializations
[temp.names]
13.4
Template arguments
[temp.arg]
13.4.1
General
[temp.arg.general]
13.4.2
Template type arguments
[temp.arg.type]
13.4.3
Template non-type arguments
[temp.arg.nontype]
13.4.4
Template template arguments
[temp.arg.template]
13.5
Template constraints
[temp.constr]
13.5.1
General
[temp.constr.general]
13.5.2
Constraints
[temp.constr.constr]
13.5.2.1
General
[temp.constr.constr.general]
13.5.2.2
Logical operations
[temp.constr.op]
13.5.2.3
Atomic constraints
[temp.constr.atomic]
13.5.3
Constrained declarations
[temp.constr.decl]
13.5.4
Constraint normalization
[temp.constr.normal]
13.5.5
Partial ordering by constraints
[temp.constr.order]
13.6
Type equivalence
[temp.type]
13.7
Template declarations
[temp.decls]
13.7.1
General
[temp.decls.general]
13.7.2
Class templates
[temp.class]
13.7.2.1
General
[temp.class.general]
13.7.2.2
Member functions of class templates
[temp.mem.func]
13.7.2.3
Deduction guides
[temp.deduct.guide]
13.7.2.4
Member classes of class templates
[temp.mem.class]
13.7.2.5
Static data members of class templates
[temp.static]
13.7.2.6
Enumeration members of class templates
[temp.mem.enum]
13.7.3
Member templates
[temp.mem]
13.7.4
Variadic templates
[temp.variadic]
13.7.5
Friends
[temp.friend]
13.7.6
Partial specialization
[temp.spec.partial]
13.7.6.1
General
[temp.spec.partial.general]
13.7.6.2
Matching of partial specializations
[temp.spec.partial.match]
13.7.6.3
Partial ordering of partial specializations
[temp.spec.partial.order]
13.7.6.4
Members of class template partial specializations
[temp.spec.partial.member]
13.7.7
Function templates
[temp.fct]
13.7.7.1
General
[temp.fct.general]
13.7.7.2
Function template overloading
[temp.over.link]
13.7.7.3
Partial ordering of function templates
[temp.func.order]
13.7.8
Alias templates
[temp.alias]
13.7.9
Concept definitions
[temp.concept]
13.8
Name resolution
[temp.res]
13.8.1
General
[temp.res.general]
13.8.2
Locally declared names
[temp.local]
13.8.3
Dependent names
[temp.dep]
13.8.3.1
General
[temp.dep.general]
13.8.3.2
Dependent types
[temp.dep.type]
13.8.3.3
Type-dependent expressions
[temp.dep.expr]
13.8.3.4
Value-dependent expressions
[temp.dep.constexpr]
13.8.3.5
Dependent template arguments
[temp.dep.temp]
13.8.4
Dependent name resolution
[temp.dep.res]
13.8.4.1
Point of instantiation
[temp.point]
13.8.4.2
Candidate functions
[temp.dep.candidate]
13.9
Template instantiation and specialization
[temp.spec]
13.9.1
General
[temp.spec.general]
13.9.2
Implicit instantiation
[temp.inst]
13.9.3
Explicit instantiation
[temp.explicit]
13.9.4
Explicit specialization
[temp.expl.spec]
13.10
Function template specializations
[temp.fct.spec]
13.10.1
General
[temp.fct.spec.general]
13.10.2
Explicit template argument specification
[temp.arg.explicit]
13.10.3
Template argument deduction
[temp.deduct]
13.10.3.1
General
[temp.deduct.general]
13.10.3.2
Deducing template arguments from a function call
[temp.deduct.call]
13.10.3.3
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
13.10.3.4
Deducing conversion function template arguments
[temp.deduct.conv]
13.10.3.5
Deducing template arguments during partial ordering
[temp.deduct.partial]
13.10.3.6
Deducing template arguments from a type
[temp.deduct.type]
13.10.3.7
Deducing template arguments from a function declaration
[temp.deduct.decl]
13.10.4
Overload resolution
[temp.over]
14
Exception handling
[except]
14.1
Preamble
[except.pre]
14.2
Throwing an exception
[except.throw]
14.3
Constructors and destructors
[except.ctor]
14.4
Handling an exception
[except.handle]
14.5
Exception specifications
[except.spec]
14.6
Special functions
[except.special]
14.6.1
General
[except.special.general]
14.6.2
The std::terminate function
[except.terminate]
14.6.3
The std::uncaught_exceptions function
[except.uncaught]
15
Preprocessing directives
[cpp]
15.1
Preamble
[cpp.pre]
15.2
Conditional inclusion
[cpp.cond]
15.3
Source file inclusion
[cpp.include]
15.4
Module directive
[cpp.module]
15.5
Header unit importation
[cpp.import]
15.6
Macro replacement
[cpp.replace]
15.6.1
General
[cpp.replace.general]
15.6.2
Argument substitution
[cpp.subst]
15.6.3
The # operator
[cpp.stringize]
15.6.4
The ## operator
[cpp.concat]
15.6.5
Rescanning and further replacement
[cpp.rescan]
15.6.6
Scope of macro definitions
[cpp.scope]
15.7
Line control
[cpp.line]
15.8
Diagnostic directives
[cpp.error]
15.9
Pragma directive
[cpp.pragma]
15.10
Null directive
[cpp.null]
15.11
Predefined macro names
[cpp.predefined]
15.12
Pragma operator
[cpp.pragma.op]
16
Library introduction
[library]
16.1
General
[library.general]
16.2
The C standard library
[library.c]
16.3
Method of description
[description]
16.3.1
General
[description.general]
16.3.2
Structure of each clause
[structure]
16.3.2.1
Elements
[structure.elements]
16.3.2.2
Summary
[structure.summary]
16.3.2.3
Requirements
[structure.requirements]
16.3.2.4
Detailed specifications
[structure.specifications]
16.3.2.5
C library
[structure.see.also]
16.3.3
Other conventions
[conventions]
16.3.3.1
General
[conventions.general]
16.3.3.2
Exposition-only entities, etc.
[expos.only.entity]
16.3.3.3
Type descriptions
[type.descriptions]
16.3.3.3.1
General
[type.descriptions.general]
16.3.3.3.2
Enumerated types
[enumerated.types]
16.3.3.3.3
Bitmask types
[bitmask.types]
16.3.3.3.4
Character sequences
[character.seq]
16.3.3.3.4.1
General
[character.seq.general]
16.3.3.3.4.2
Byte strings
[byte.strings]
16.3.3.3.4.3
Multibyte strings
[multibyte.strings]
16.3.3.3.5
Customization Point Object types
[customization.point.object]
16.3.3.4
Functions within classes
[functions.within.classes]
16.3.3.5
Private members
[objects.within.classes]
16.3.3.6
Freestanding items
[freestanding.item]
16.4
Library-wide requirements
[requirements]
16.4.1
General
[requirements.general]
16.4.2
Library contents and organization
[organization]
16.4.2.1
General
[organization.general]
16.4.2.2
Library contents
[contents]
16.4.2.3
Headers
[headers]
16.4.2.4
Modules
[std.modules]
16.4.2.5
Freestanding implementations
[compliance]
16.4.3
Using the library
[using]
16.4.3.1
Overview
[using.overview]
16.4.3.2
Headers
[using.headers]
16.4.3.3
Linkage
[using.linkage]
16.4.4
Requirements on types and expressions
[utility.requirements]
16.4.4.1
General
[utility.requirements.general]
16.4.4.2
Template argument requirements
[utility.arg.requirements]
16.4.4.3
Swappable requirements
[swappable.requirements]
16.4.4.4
Cpp17NullablePointer requirements
[nullablepointer.requirements]
16.4.4.5
Cpp17Hash requirements
[hash.requirements]
16.4.4.6
Cpp17Allocator requirements
[allocator.requirements]
16.4.4.6.1
General
[allocator.requirements.general]
16.4.4.6.2
Allocator completeness requirements
[allocator.requirements.completeness]
16.4.5
Constraints on programs
[constraints]
16.4.5.1
Overview
[constraints.overview]
16.4.5.2
Namespace use
[namespace.constraints]
16.4.5.2.1
Namespace std
[namespace.std]
16.4.5.2.2
Namespace posix
[namespace.posix]
16.4.5.2.3
Namespaces for future standardization
[namespace.future]
16.4.5.3
Reserved names
[reserved.names]
16.4.5.3.1
General
[reserved.names.general]
16.4.5.3.2
Zombie names
[zombie.names]
16.4.5.3.3
Macro names
[macro.names]
16.4.5.3.4
External linkage
[extern.names]
16.4.5.3.5
Types
[extern.types]
16.4.5.3.6
User-defined literal suffixes
[usrlit.suffix]
16.4.5.4
Headers
[alt.headers]
16.4.5.5
Derived classes
[derived.classes]
16.4.5.6
Replacement functions
[replacement.functions]
16.4.5.7
Handler functions
[handler.functions]
16.4.5.8
Other functions
[res.on.functions]
16.4.5.9
Function arguments
[res.on.arguments]
16.4.5.10
Library object access
[res.on.objects]
16.4.5.11
Semantic requirements
[res.on.requirements]
16.4.6
Conforming implementations
[conforming]
16.4.6.1
Overview
[conforming.overview]
16.4.6.2
Headers
[res.on.headers]
16.4.6.3
Restrictions on macro definitions
[res.on.macro.definitions]
16.4.6.4
Non-member functions
[global.functions]
16.4.6.5
Member functions
[member.functions]
16.4.6.6
Friend functions
[hidden.friends]
16.4.6.7
Constexpr functions and constructors
[constexpr.functions]
16.4.6.8
Requirements for stable algorithms
[algorithm.stable]
16.4.6.9
Reentrancy
[reentrancy]
16.4.6.10
Data race avoidance
[res.on.data.races]
16.4.6.11
Protection within classes
[protection.within.classes]
16.4.6.12
Derived classes
[derivation]
16.4.6.13
Restrictions on exception handling
[res.on.exception.handling]
16.4.6.14
Value of error codes
[value.error.codes]
16.4.6.15
Moved-from state of library types
[lib.types.movedfrom]
17
Language support library
[support]
17.1
General
[support.general]
17.2
Common definitions
[support.types]
17.2.1
Header synopsis
[cstddef.syn]
17.2.2
Header 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 synopsis
[version.syn]
17.3.3
Header synopsis
[limits.syn]
17.3.4
Enum float_round_style
[round.style]
17.3.5
Class template numeric_limits
[numeric.limits]
17.3.5.1
General
[numeric.limits.general]
17.3.5.2
numeric_limits members
[numeric.limits.members]
17.3.5.3
numeric_limits specializations
[numeric.special]
17.3.6
Header synopsis
[climits.syn]
17.3.7
Header synopsis
[cfloat.syn]
17.4
Arithmetic types
[support.arith.types]
17.4.1
Header synopsis
[cstdint.syn]
17.4.2
Header synopsis
[stdfloat.syn]
17.5
Startup and termination
[support.start.term]
17.6
Dynamic memory management
[support.dynamic]
17.6.1
General
[support.dynamic.general]
17.6.2
Header 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 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 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 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 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 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 synopsis
[coroutine.syn]
17.12.3
Coroutine traits
[coroutine.traits]
17.12.3.1
General
[coroutine.traits.general]
17.12.3.2
Class template coroutine_traits
[coroutine.traits.primary]
17.12.4
Class template coroutine_handle
[coroutine.handle]
17.12.4.1
General
[coroutine.handle.general]
17.12.4.2
Construct/reset
[coroutine.handle.con]
17.12.4.3
Conversion
[coroutine.handle.conv]
17.12.4.4
Export/import
[coroutine.handle.export.import]
17.12.4.5
Observers
[coroutine.handle.observers]
17.12.4.6
Resumption
[coroutine.handle.resumption]
17.12.4.7
Promise access
[coroutine.handle.promise]
17.12.4.8
Comparison operators
[coroutine.handle.compare]
17.12.4.9
Hash support
[coroutine.handle.hash]
17.12.5
No-op coroutines
[coroutine.noop]
17.12.5.1
Class noop_coroutine_promise
[coroutine.promise.noop]
17.12.5.2
Class coroutine_handle
[coroutine.handle.noop]
17.12.5.2.1
Conversion
[coroutine.handle.noop.conv]
17.12.5.2.2
Observers
[coroutine.handle.noop.observers]
17.12.5.2.3
Resumption
[coroutine.handle.noop.resumption]
17.12.5.2.4
Promise access
[coroutine.handle.noop.promise]
17.12.5.2.5
Address
[coroutine.handle.noop.address]
17.12.5.3
Function noop_coroutine
[coroutine.noop.coroutine]
17.12.6
Trivial awaitables
[coroutine.trivial.awaitables]
17.13
Other runtime support
[support.runtime]
17.13.1
General
[support.runtime.general]
17.13.2
Header synopsis
[cstdarg.syn]
17.13.3
Header synopsis
[csetjmp.syn]
17.13.4
Header synopsis
[csignal.syn]
17.13.5
Signal handlers
[support.signal]
17.14
C headers
[support.c.headers]
17.14.1
General
[support.c.headers.general]
17.14.2
Header synopsis
[complex.h.syn]
17.14.3
Header synopsis
[iso646.h.syn]
17.14.4
Header synopsis
[stdalign.h.syn]
17.14.5
Header synopsis
[stdbool.h.syn]
17.14.6
Header synopsis
[tgmath.h.syn]
17.14.7
Other C headers
[support.c.headers.other]
18
Concepts library
[concepts]
18.1
General
[concepts.general]
18.2
Equality preservation
[concepts.equality]
18.3
Header synopsis
[concepts.syn]
18.4
Language-related concepts
[concepts.lang]
18.4.1
General
[concepts.lang.general]
18.4.2
Concept same_as
[concept.same]
18.4.3
Concept derived_from
[concept.derived]
18.4.4
Concept convertible_to
[concept.convertible]
18.4.5
Concept common_reference_with
[concept.commonref]
18.4.6
Concept common_with
[concept.common]
18.4.7
Arithmetic concepts
[concepts.arithmetic]
18.4.8
Concept assignable_from
[concept.assignable]
18.4.9
Concept swappable
[concept.swappable]
18.4.10
Concept destructible
[concept.destructible]
18.4.11
Concept constructible_from
[concept.constructible]
18.4.12
Concept default_initializable
[concept.default.init]
18.4.13
Concept move_constructible
[concept.moveconstructible]
18.4.14
Concept copy_constructible
[concept.copyconstructible]
18.5
Comparison concepts
[concepts.compare]
18.5.1
General
[concepts.compare.general]
18.5.2
Boolean testability
[concept.booleantestable]
18.5.3
Comparison common types
[concept.comparisoncommontype]
18.5.4
Concept equality_comparable
[concept.equalitycomparable]
18.5.5
Concept totally_ordered
[concept.totallyordered]
18.6
Object concepts
[concepts.object]
18.7
Callable concepts
[concepts.callable]
18.7.1
General
[concepts.callable.general]
18.7.2
Concept invocable
[concept.invocable]
18.7.3
Concept regular_invocable
[concept.regularinvocable]
18.7.4
Concept predicate
[concept.predicate]
18.7.5
Concept relation
[concept.relation]
18.7.6
Concept equivalence_relation
[concept.equiv]
18.7.7
Concept strict_weak_order
[concept.strictweakorder]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
General
[std.exceptions.general]
19.2.2
Header 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 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 synopsis
[cerrno.syn]
19.5
System error support
[syserr]
19.5.1
General
[syserr.general]
19.5.2
Header synopsis
[system.error.syn]
19.5.3
Class error_category
[syserr.errcat]
19.5.3.1
Overview
[syserr.errcat.overview]
19.5.3.2
Virtual members
[syserr.errcat.virtuals]
19.5.3.3
Non-virtual members
[syserr.errcat.nonvirtuals]
19.5.3.4
Program-defined classes derived from error_category
[syserr.errcat.derived]
19.5.3.5
Error category objects
[syserr.errcat.objects]
19.5.4
Class error_code
[syserr.errcode]
19.5.4.1
Overview
[syserr.errcode.overview]
19.5.4.2
Constructors
[syserr.errcode.constructors]
19.5.4.3
Modifiers
[syserr.errcode.modifiers]
19.5.4.4
Observers
[syserr.errcode.observers]
19.5.4.5
Non-member functions
[syserr.errcode.nonmembers]
19.5.5
Class error_condition
[syserr.errcondition]
19.5.5.1
Overview
[syserr.errcondition.overview]
19.5.5.2
Constructors
[syserr.errcondition.constructors]
19.5.5.3
Modifiers
[syserr.errcondition.modifiers]
19.5.5.4
Observers
[syserr.errcondition.observers]
19.5.5.5
Non-member functions
[syserr.errcondition.nonmembers]
19.5.6
Comparison operator functions
[syserr.compare]
19.5.7
System error hash support
[syserr.hash]
19.5.8
Class system_error
[syserr.syserr]
19.5.8.1
Overview
[syserr.syserr.overview]
19.5.8.2
Members
[syserr.syserr.members]
19.6
Stacktrace
[stacktrace]
19.6.1
General
[stacktrace.general]
19.6.2
Header synopsis
[stacktrace.syn]
19.6.3
Class stacktrace_entry
[stacktrace.entry]
19.6.3.1
Overview
[stacktrace.entry.overview]
19.6.3.2
Constructors
[stacktrace.entry.cons]
19.6.3.3
Observers
[stacktrace.entry.obs]
19.6.3.4
Query
[stacktrace.entry.query]
19.6.3.5
Comparison
[stacktrace.entry.cmp]
19.6.4
Class template basic_stacktrace
[stacktrace.basic]
19.6.4.1
Overview
[stacktrace.basic.overview]
19.6.4.2
Creation and assignment
[stacktrace.basic.cons]
19.6.4.3
Observers
[stacktrace.basic.obs]
19.6.4.4
Comparisons
[stacktrace.basic.cmp]
19.6.4.5
Modifiers
[stacktrace.basic.mod]
19.6.4.6
Non-member functions
[stacktrace.basic.nonmem]
19.6.4.7
Formatting support
[stacktrace.format]
19.6.4.8
Hash support
[stacktrace.basic.hash]
20
Memory management library
[mem]
20.1
General
[mem.general]
20.2
Memory
[memory]
20.2.1
In general
[memory.general]
20.2.2
Header synopsis
[memory.syn]
20.2.3
Pointer traits
[pointer.traits]
20.2.3.1
General
[pointer.traits.general]
20.2.3.2
Member types
[pointer.traits.types]
20.2.3.3
Member functions
[pointer.traits.functions]
20.2.3.4
Optional members
[pointer.traits.optmem]
20.2.4
Pointer conversion
[pointer.conversion]
20.2.5
Pointer alignment
[ptr.align]
20.2.6
Explicit lifetime management
[obj.lifetime]
20.2.7
Allocator argument tag
[allocator.tag]
20.2.8
uses_allocator
[allocator.uses]
20.2.8.1
uses_allocator trait
[allocator.uses.trait]
20.2.8.2
Uses-allocator construction
[allocator.uses.construction]
20.2.9
Allocator traits
[allocator.traits]
20.2.9.1
General
[allocator.traits.general]
20.2.9.2
Member types
[allocator.traits.types]
20.2.9.3
Static member functions
[allocator.traits.members]
20.2.9.4
Other
[allocator.traits.other]
20.2.10
The default allocator
[default.allocator]
20.2.10.1
General
[default.allocator.general]
20.2.10.2
Members
[allocator.members]
20.2.10.3
Operators
[allocator.globals]
20.2.11
addressof
[specialized.addressof]
20.2.12
C library memory allocation
[c.malloc]
20.3
Smart pointers
[smartptr]
20.3.1
Unique-ownership pointers
[unique.ptr]
20.3.1.1
General
[unique.ptr.general]
20.3.1.2
Default deleters
[unique.ptr.dltr]
20.3.1.2.1
In general
[unique.ptr.dltr.general]
20.3.1.2.2
default_delete
[unique.ptr.dltr.dflt]
20.3.1.2.3
default_delete
[unique.ptr.dltr.dflt1]
20.3.1.3
unique_ptr for single objects
[unique.ptr.single]
20.3.1.3.1
General
[unique.ptr.single.general]
20.3.1.3.2
Constructors
[unique.ptr.single.ctor]
20.3.1.3.3
Destructor
[unique.ptr.single.dtor]
20.3.1.3.4
Assignment
[unique.ptr.single.asgn]
20.3.1.3.5
Observers
[unique.ptr.single.observers]
20.3.1.3.6
Modifiers
[unique.ptr.single.modifiers]
20.3.1.4
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.3.1.4.1
General
[unique.ptr.runtime.general]
20.3.1.4.2
Constructors
[unique.ptr.runtime.ctor]
20.3.1.4.3
Assignment
[unique.ptr.runtime.asgn]
20.3.1.4.4
Observers
[unique.ptr.runtime.observers]
20.3.1.4.5
Modifiers
[unique.ptr.runtime.modifiers]
20.3.1.5
Creation
[unique.ptr.create]
20.3.1.6
Specialized algorithms
[unique.ptr.special]
20.3.1.7
I/O
[unique.ptr.io]
20.3.2
Shared-ownership pointers
[util.sharedptr]
20.3.2.1
Class bad_weak_ptr
[util.smartptr.weak.bad]
20.3.2.2
Class template shared_ptr
[util.smartptr.shared]
20.3.2.2.1
General
[util.smartptr.shared.general]
20.3.2.2.2
Constructors
[util.smartptr.shared.const]
20.3.2.2.3
Destructor
[util.smartptr.shared.dest]
20.3.2.2.4
Assignment
[util.smartptr.shared.assign]
20.3.2.2.5
Modifiers
[util.smartptr.shared.mod]
20.3.2.2.6
Observers
[util.smartptr.shared.obs]
20.3.2.2.7
Creation
[util.smartptr.shared.create]
20.3.2.2.8
Comparison
[util.smartptr.shared.cmp]
20.3.2.2.9
Specialized algorithms
[util.smartptr.shared.spec]
20.3.2.2.10
Casts
[util.smartptr.shared.cast]
20.3.2.2.11
get_deleter
[util.smartptr.getdeleter]
20.3.2.2.12
I/O
[util.smartptr.shared.io]
20.3.2.3
Class template weak_ptr
[util.smartptr.weak]
20.3.2.3.1
General
[util.smartptr.weak.general]
20.3.2.3.2
Constructors
[util.smartptr.weak.const]
20.3.2.3.3
Destructor
[util.smartptr.weak.dest]
20.3.2.3.4
Assignment
[util.smartptr.weak.assign]
20.3.2.3.5
Modifiers
[util.smartptr.weak.mod]
20.3.2.3.6
Observers
[util.smartptr.weak.obs]
20.3.2.3.7
Specialized algorithms
[util.smartptr.weak.spec]
20.3.2.4
Class template owner_less
[util.smartptr.ownerless]
20.3.2.5
Class template enable_shared_from_this
[util.smartptr.enab]
20.3.3
Smart pointer hash support
[util.smartptr.hash]
20.3.4
Smart pointer adaptors
[smartptr.adapt]
20.3.4.1
Class template out_ptr_t
[out.ptr.t]
20.3.4.2
Function template out_ptr
[out.ptr]
20.3.4.3
Class template inout_ptr_t
[inout.ptr.t]
20.3.4.4
Function template inout_ptr
[inout.ptr]
20.4
Memory resources
[mem.res]
20.4.1
Header synopsis
[mem.res.syn]
20.4.2
Class memory_resource
[mem.res.class]
20.4.2.1
General
[mem.res.class.general]
20.4.2.2
Public member functions
[mem.res.public]
20.4.2.3
Private virtual member functions
[mem.res.private]
20.4.2.4
Equality
[mem.res.eq]
20.4.3
Class template polymorphic_allocator
[mem.poly.allocator.class]
20.4.3.1
General
[mem.poly.allocator.class.general]
20.4.3.2
Constructors
[mem.poly.allocator.ctor]
20.4.3.3
Member functions
[mem.poly.allocator.mem]
20.4.3.4
Equality
[mem.poly.allocator.eq]
20.4.4
Access to program-wide memory_resource objects
[mem.res.global]
20.4.5
Pool resource classes
[mem.res.pool]
20.4.5.1
Classes synchronized_pool_resource and unsynchronized_pool_resource
[mem.res.pool.overview]
20.4.5.2
pool_options data members
[mem.res.pool.options]
20.4.5.3
Constructors and destructors
[mem.res.pool.ctor]
20.4.5.4
Members
[mem.res.pool.mem]
20.4.6
Class monotonic_buffer_resource
[mem.res.monotonic.buffer]
20.4.6.1
General
[mem.res.monotonic.buffer.general]
20.4.6.2
Constructors and destructor
[mem.res.monotonic.buffer.ctor]
20.4.6.3
Members
[mem.res.monotonic.buffer.mem]
20.5
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.5.1
Header synopsis
[allocator.adaptor.syn]
20.5.2
Member types
[allocator.adaptor.types]
20.5.3
Constructors
[allocator.adaptor.cnstr]
20.5.4
Members
[allocator.adaptor.members]
20.5.5
Operators
[scoped.adaptor.operators]
21
Metaprogramming library
[meta]
21.1
General
[meta.general]
21.2
Compile-time integer sequences
[intseq]
21.2.1
In general
[intseq.general]
21.2.2
Class template integer_sequence
[intseq.intseq]
21.2.3
Alias template make_integer_sequence
[intseq.make]
21.3
Metaprogramming and type traits
[type.traits]
21.3.1
General
[type.traits.general]
21.3.2
Requirements
[meta.rqmts]
21.3.3
Header synopsis
[meta.type.synop]
21.3.4
Helper classes
[meta.help]
21.3.5
Unary type traits
[meta.unary]
21.3.5.1
General
[meta.unary.general]
21.3.5.2
Primary type categories
[meta.unary.cat]
21.3.5.3
Composite type traits
[meta.unary.comp]
21.3.5.4
Type properties
[meta.unary.prop]
21.3.6
Type property queries
[meta.unary.prop.query]
21.3.7
Relationships between types
[meta.rel]
21.3.8
Transformations between types
[meta.trans]
21.3.8.1
General
[meta.trans.general]
21.3.8.2
Const-volatile modifications
[meta.trans.cv]
21.3.8.3
Reference modifications
[meta.trans.ref]
21.3.8.4
Sign modifications
[meta.trans.sign]
21.3.8.5
Array modifications
[meta.trans.arr]
21.3.8.6
Pointer modifications
[meta.trans.ptr]
21.3.8.7
Other transformations
[meta.trans.other]
21.3.9
Logical operator traits
[meta.logical]
21.3.10
Member relationships
[meta.member]
21.3.11
Constant evaluation context
[meta.const.eval]
21.4
Compile-time rational arithmetic
[ratio]
21.4.1
In general
[ratio.general]
21.4.2
Header synopsis
[ratio.syn]
21.4.3
Class template ratio
[ratio.ratio]
21.4.4
Arithmetic on ratios
[ratio.arithmetic]
21.4.5
Comparison of ratios
[ratio.comparison]
21.4.6
SI types for ratio
[ratio.si]
22
General utilities library
[utilities]
22.1
General
[utilities.general]
22.2
Utility components
[utility]
22.2.1
Header synopsis
[utility.syn]
22.2.2
swap
[utility.swap]
22.2.3
exchange
[utility.exchange]
22.2.4
Forward/move helpers
[forward]
22.2.5
Function template as_const
[utility.as.const]
22.2.6
Function template declval
[declval]
22.2.7
Integer comparison functions
[utility.intcmp]
22.2.8
Function template to_underlying
[utility.underlying]
22.2.9
Function unreachable
[utility.unreachable]
22.3
Pairs
[pairs]
22.3.1
In general
[pairs.general]
22.3.2
Class template pair
[pairs.pair]
22.3.3
Specialized algorithms
[pairs.spec]
22.3.4
Tuple-like access to pair
[pair.astuple]
22.3.5
Piecewise construction
[pair.piecewise]
22.4
Tuples
[tuple]
22.4.1
In general
[tuple.general]
22.4.2
Header synopsis
[tuple.syn]
22.4.3
Concept tuple-like
[tuple.like]
22.4.4
Class template tuple
[tuple.tuple]
22.4.4.1
Construction
[tuple.cnstr]
22.4.4.2
Assignment
[tuple.assign]
22.4.4.3
swap
[tuple.swap]
22.4.5
Tuple creation functions
[tuple.creation]
22.4.6
Calling a function with a tuple of arguments
[tuple.apply]
22.4.7
Tuple helper classes
[tuple.helper]
22.4.8
Element access
[tuple.elem]
22.4.9
Relational operators
[tuple.rel]
22.4.10
common_reference related specializations
[tuple.common.ref]
22.4.11
Tuple traits
[tuple.traits]
22.4.12
Tuple specialized algorithms
[tuple.special]
22.5
Optional objects
[optional]
22.5.1
In general
[optional.general]
22.5.2
Header synopsis
[optional.syn]
22.5.3
Class template optional
[optional.optional]
22.5.3.1
General
[optional.optional.general]
22.5.3.2
Constructors
[optional.ctor]
22.5.3.3
Destructor
[optional.dtor]
22.5.3.4
Assignment
[optional.assign]
22.5.3.5
Swap
[optional.swap]
22.5.3.6
Observers
[optional.observe]
22.5.3.7
Monadic operations
[optional.monadic]
22.5.3.8
Modifiers
[optional.mod]
22.5.4
No-value state indicator
[optional.nullopt]
22.5.5
Class bad_optional_access
[optional.bad.access]
22.5.6
Relational operators
[optional.relops]
22.5.7
Comparison with nullopt
[optional.nullops]
22.5.8
Comparison with T
[optional.comp.with.t]
22.5.9
Specialized algorithms
[optional.specalg]
22.5.10
Hash support
[optional.hash]
22.6
Variants
[variant]
22.6.1
In general
[variant.general]
22.6.2
Header synopsis
[variant.syn]
22.6.3
Class template variant
[variant.variant]
22.6.3.1
General
[variant.variant.general]
22.6.3.2
Constructors
[variant.ctor]
22.6.3.3
Destructor
[variant.dtor]
22.6.3.4
Assignment
[variant.assign]
22.6.3.5
Modifiers
[variant.mod]
22.6.3.6
Value status
[variant.status]
22.6.3.7
Swap
[variant.swap]
22.6.4
variant helper classes
[variant.helper]
22.6.5
Value access
[variant.get]
22.6.6
Relational operators
[variant.relops]
22.6.7
Visitation
[variant.visit]
22.6.8
Class monostate
[variant.monostate]
22.6.9
monostate relational operators
[variant.monostate.relops]
22.6.10
Specialized algorithms
[variant.specalg]
22.6.11
Class bad_variant_access
[variant.bad.access]
22.6.12
Hash support
[variant.hash]
22.7
Storage for any type
[any]
22.7.1
General
[any.general]
22.7.2
Header synopsis
[any.synop]
22.7.3
Class bad_any_cast
[any.bad.any.cast]
22.7.4
Class any
[any.class]
22.7.4.1
General
[any.class.general]
22.7.4.2
Construction and destruction
[any.cons]
22.7.4.3
Assignment
[any.assign]
22.7.4.4
Modifiers
[any.modifiers]
22.7.4.5
Observers
[any.observers]
22.7.5
Non-member functions
[any.nonmembers]
22.8
Expected objects
[expected]
22.8.1
In general
[expected.general]
22.8.2
Header synopsis
[expected.syn]
22.8.3
Class template unexpected
[expected.unexpected]
22.8.3.1
General
[expected.un.general]
22.8.3.2
Constructors
[expected.un.cons]
22.8.3.3
Observers
[expected.un.obs]
22.8.3.4
Swap
[expected.un.swap]
22.8.3.5
Equality operator
[expected.un.eq]
22.8.4
Class template bad_expected_access
[expected.bad]
22.8.5
Class template specialization bad_expected_access
[expected.bad.void]
22.8.6
Class template expected
[expected.expected]
22.8.6.1
General
[expected.object.general]
22.8.6.2
Constructors
[expected.object.cons]
22.8.6.3
Destructor
[expected.object.dtor]
22.8.6.4
Assignment
[expected.object.assign]
22.8.6.5
Swap
[expected.object.swap]
22.8.6.6
Observers
[expected.object.obs]
22.8.6.7
Monadic operations
[expected.object.monadic]
22.8.6.8
Equality operators
[expected.object.eq]
22.8.7
Partial specialization of expected for void types
[expected.void]
22.8.7.1
General
[expected.void.general]
22.8.7.2
Constructors
[expected.void.cons]
22.8.7.3
Destructor
[expected.void.dtor]
22.8.7.4
Assignment
[expected.void.assign]
22.8.7.5
Swap
[expected.void.swap]
22.8.7.6
Observers
[expected.void.obs]
22.8.7.7
Monadic operations
[expected.void.monadic]
22.8.7.8
Equality operators
[expected.void.eq]
22.9
Bitsets
[bitset]
22.9.1
Header synopsis
[bitset.syn]
22.9.2
Class template bitset
[template.bitset]
22.9.2.1
General
[template.bitset.general]
22.9.2.2
Constructors
[bitset.cons]
22.9.2.3
Members
[bitset.members]
22.9.3
bitset hash support
[bitset.hash]
22.9.4
bitset operators
[bitset.operators]
22.10
Function objects
[function.objects]
22.10.1
General
[function.objects.general]
22.10.2
Header synopsis
[functional.syn]
22.10.3
Definitions
[func.def]
22.10.4
Requirements
[func.require]
22.10.5
invoke functions
[func.invoke]
22.10.6
Class template reference_wrapper
[refwrap]
22.10.6.1
General
[refwrap.general]
22.10.6.2
Constructors
[refwrap.const]
22.10.6.3
Assignment
[refwrap.assign]
22.10.6.4
Access
[refwrap.access]
22.10.6.5
Invocation
[refwrap.invoke]
22.10.6.6
Helper functions
[refwrap.helpers]
22.10.6.7
common_reference related specializations
[refwrap.common.ref]
22.10.7
Arithmetic operations
[arithmetic.operations]
22.10.7.1
General
[arithmetic.operations.general]
22.10.7.2
Class template plus
[arithmetic.operations.plus]
22.10.7.3
Class template minus
[arithmetic.operations.minus]
22.10.7.4
Class template multiplies
[arithmetic.operations.multiplies]
22.10.7.5
Class template divides
[arithmetic.operations.divides]
22.10.7.6
Class template modulus
[arithmetic.operations.modulus]
22.10.7.7
Class template negate
[arithmetic.operations.negate]
22.10.8
Comparisons
[comparisons]
22.10.8.1
General
[comparisons.general]
22.10.8.2
Class template equal_to
[comparisons.equal.to]
22.10.8.3
Class template not_equal_to
[comparisons.not.equal.to]
22.10.8.4
Class template greater
[comparisons.greater]
22.10.8.5
Class template less
[comparisons.less]
22.10.8.6
Class template greater_equal
[comparisons.greater.equal]
22.10.8.7
Class template less_equal
[comparisons.less.equal]
22.10.8.8
Class compare_three_way
[comparisons.three.way]
22.10.9
Concept-constrained comparisons
[range.cmp]
22.10.10
Logical operations
[logical.operations]
22.10.10.1
General
[logical.operations.general]
22.10.10.2
Class template logical_and
[logical.operations.and]
22.10.10.3
Class template logical_or
[logical.operations.or]
22.10.10.4
Class template logical_not
[logical.operations.not]
22.10.11
Bitwise operations
[bitwise.operations]
22.10.11.1
General
[bitwise.operations.general]
22.10.11.2
Class template bit_and
[bitwise.operations.and]
22.10.11.3
Class template bit_or
[bitwise.operations.or]
22.10.11.4
Class template bit_xor
[bitwise.operations.xor]
22.10.11.5
Class template bit_not
[bitwise.operations.not]
22.10.12
Class identity
[func.identity]
22.10.13
Function template not_fn
[func.not.fn]
22.10.14
Function templates bind_front and bind_back
[func.bind.partial]
22.10.15
Function object binders
[func.bind]
22.10.15.1
General
[func.bind.general]
22.10.15.2
Class template is_bind_expression
[func.bind.isbind]
22.10.15.3
Class template is_placeholder
[func.bind.isplace]
22.10.15.4
Function template bind
[func.bind.bind]
22.10.15.5
Placeholders
[func.bind.place]
22.10.16
Function template mem_fn
[func.memfn]
22.10.17
Polymorphic function wrappers
[func.wrap]
22.10.17.1
General
[func.wrap.general]
22.10.17.2
Class bad_function_call
[func.wrap.badcall]
22.10.17.3
Class template function
[func.wrap.func]
22.10.17.3.1
General
[func.wrap.func.general]
22.10.17.3.2
Constructors and destructor
[func.wrap.func.con]
22.10.17.3.3
Modifiers
[func.wrap.func.mod]
22.10.17.3.4
Capacity
[func.wrap.func.cap]
22.10.17.3.5
Invocation
[func.wrap.func.inv]
22.10.17.3.6
Target access
[func.wrap.func.targ]
22.10.17.3.7
Null pointer comparison operator functions
[func.wrap.func.nullptr]
22.10.17.3.8
Specialized algorithms
[func.wrap.func.alg]
22.10.17.4
Move only wrapper
[func.wrap.move]
22.10.17.4.1
General
[func.wrap.move.general]
22.10.17.4.2
Class template move_only_function
[func.wrap.move.class]
22.10.17.4.3
Constructors, assignment, and destructor
[func.wrap.move.ctor]
22.10.17.4.4
Invocation
[func.wrap.move.inv]
22.10.17.4.5
Utility
[func.wrap.move.util]
22.10.18
Searchers
[func.search]
22.10.18.1
General
[func.search.general]
22.10.18.2
Class template default_searcher
[func.search.default]
22.10.18.3
Class template boyer_moore_searcher
[func.search.bm]
22.10.18.4
Class template boyer_moore_horspool_searcher
[func.search.bmh]
22.10.19
Class template hash
[unord.hash]
22.11
Class type_index
[type.index]
22.11.1
Header synopsis
[type.index.synopsis]
22.11.2
type_index overview
[type.index.overview]
22.11.3
type_index members
[type.index.members]
22.11.4
Hash support
[type.index.hash]
22.12
Execution policies
[execpol]
22.12.1
In general
[execpol.general]
22.12.2
Header synopsis
[execution.syn]
22.12.3
Execution policy type trait
[execpol.type]
22.12.4
Sequenced execution policy
[execpol.seq]
22.12.5
Parallel execution policy
[execpol.par]
22.12.6
Parallel and unsequenced execution policy
[execpol.parunseq]
22.12.7
Unsequenced execution policy
[execpol.unseq]
22.12.8
Execution policy objects
[execpol.objects]
22.13
Primitive numeric conversions
[charconv]
22.13.1
Header synopsis
[charconv.syn]
22.13.2
Primitive numeric output conversion
[charconv.to.chars]
22.13.3
Primitive numeric input conversion
[charconv.from.chars]
22.14
Formatting
[format]
22.14.1
Header synopsis
[format.syn]
22.14.2
Format string
[format.string]
22.14.2.1
In general
[format.string.general]
22.14.2.2
Standard format specifiers
[format.string.std]
22.14.3
Error reporting
[format.err.report]
22.14.4
Class template basic_format_string
[format.fmt.string]
22.14.5
Formatting functions
[format.functions]
22.14.6
Formatter
[format.formatter]
22.14.6.1
Formatter requirements
[formatter.requirements]
22.14.6.2
Concept formattable
[format.formattable]
22.14.6.3
Formatter specializations
[format.formatter.spec]
22.14.6.4
Formatting escaped characters and strings
[format.string.escaped]
22.14.6.5
Class template basic_format_parse_context
[format.parse.ctx]
22.14.6.6
Class template basic_format_context
[format.context]
22.14.7
Formatting of ranges
[format.range]
22.14.7.1
Variable template format_kind
[format.range.fmtkind]
22.14.7.2
Class template range_formatter
[format.range.formatter]
22.14.7.3
Class template range-default-formatter
[format.range.fmtdef]
22.14.7.4
Specialization of range-default-formatter for maps
[format.range.fmtmap]
22.14.7.5
Specialization of range-default-formatter for sets
[format.range.fmtset]
22.14.7.6
Specialization of range-default-formatter for strings
[format.range.fmtstr]
22.14.8
Arguments
[format.arguments]
22.14.8.1
Class template basic_format_arg
[format.arg]
22.14.8.2
Class template format-arg-store
[format.arg.store]
22.14.8.3
Class template basic_format_args
[format.args]
22.14.9
Tuple formatter
[format.tuple]
22.14.10
Class format_error
[format.error]
22.15
Bit manipulation
[bit]
22.15.1
General
[bit.general]
22.15.2
Header synopsis
[bit.syn]
22.15.3
Function template bit_cast
[bit.cast]
22.15.4
byteswap
[bit.byteswap]
22.15.5
Integral powers of 2
[bit.pow.two]
22.15.6
Rotating
[bit.rotate]
22.15.7
Counting
[bit.count]
22.15.8
Endian
[bit.endian]
23
Strings library
[strings]
23.1
General
[strings.general]
23.2
Character traits
[char.traits]
23.2.1
General
[char.traits.general]
23.2.2
Character traits requirements
[char.traits.require]
23.2.3
Traits typedefs
[char.traits.typedefs]
23.2.4
char_traits specializations
[char.traits.specializations]
23.2.4.1
General
[char.traits.specializations.general]
23.2.4.2
struct char_traits
[char.traits.specializations.char]
23.2.4.3
struct char_traits
[char.traits.specializations.char8.t]
23.2.4.4
struct char_traits
[char.traits.specializations.char16.t]
23.2.4.5
struct char_traits
[char.traits.specializations.char32.t]
23.2.4.6
struct char_traits
[char.traits.specializations.wchar.t]
23.3
String view classes
[string.view]
23.3.1
General
[string.view.general]
23.3.2
Header synopsis
[string.view.synop]
23.3.3
Class template basic_string_view
[string.view.template]
23.3.3.1
General
[string.view.template.general]
23.3.3.2
Construction and assignment
[string.view.cons]
23.3.3.3
Deduction guides
[string.view.deduct]
23.3.3.4
Iterator support
[string.view.iterators]
23.3.3.5
Capacity
[string.view.capacity]
23.3.3.6
Element access
[string.view.access]
23.3.3.7
Modifiers
[string.view.modifiers]
23.3.3.8
String operations
[string.view.ops]
23.3.3.9
Searching
[string.view.find]
23.3.4
Non-member comparison functions
[string.view.comparison]
23.3.5
Inserters and extractors
[string.view.io]
23.3.6
Hash support
[string.view.hash]
23.3.7
Suffix for basic_string_view literals
[string.view.literals]
23.4
String classes
[string.classes]
23.4.1
General
[string.classes.general]
23.4.2
Header synopsis
[string.syn]
23.4.3
Class template basic_string
[basic.string]
23.4.3.1
General
[basic.string.general]
23.4.3.2
General requirements
[string.require]
23.4.3.3
Constructors and assignment operators
[string.cons]
23.4.3.4
Iterator support
[string.iterators]
23.4.3.5
Capacity
[string.capacity]
23.4.3.6
Element access
[string.access]
23.4.3.7
Modifiers
[string.modifiers]
23.4.3.7.1
basic_string::operator+=
[string.op.append]
23.4.3.7.2
basic_string::append
[string.append]
23.4.3.7.3
basic_string::assign
[string.assign]
23.4.3.7.4
basic_string::insert
[string.insert]
23.4.3.7.5
basic_string::erase
[string.erase]
23.4.3.7.6
basic_string::replace
[string.replace]
23.4.3.7.7
basic_string::copy
[string.copy]
23.4.3.7.8
basic_string::swap
[string.swap]
23.4.3.8
String operations
[string.ops]
23.4.3.8.1
Accessors
[string.accessors]
23.4.3.8.2
Searching
[string.find]
23.4.3.8.3
basic_string::substr
[string.substr]
23.4.3.8.4
basic_string::compare
[string.compare]
23.4.3.8.5
basic_string::starts_with
[string.starts.with]
23.4.3.8.6
basic_string::ends_with
[string.ends.with]
23.4.3.8.7
basic_string::contains
[string.contains]
23.4.4
Non-member functions
[string.nonmembers]
23.4.4.1
operator+
[string.op.plus]
23.4.4.2
Non-member comparison operator functions
[string.cmp]
23.4.4.3
swap
[string.special]
23.4.4.4
Inserters and extractors
[string.io]
23.4.4.5
Erasure
[string.erasure]
23.4.5
Numeric conversions
[string.conversions]
23.4.6
Hash support
[basic.string.hash]
23.4.7
Suffix for basic_string literals
[basic.string.literals]
23.5
Null-terminated sequence utilities
[c.strings]
23.5.1
Header synopsis
[cctype.syn]
23.5.2
Header synopsis
[cwctype.syn]
23.5.3
Header synopsis
[cstring.syn]
23.5.4
Header synopsis
[cwchar.syn]
23.5.5
Header synopsis
[cuchar.syn]
23.5.6
Multibyte / wide string and character conversion functions
[c.mb.wcs]
24
Containers library
[containers]
24.1
General
[containers.general]
24.2
Requirements
[container.requirements]
24.2.1
Preamble
[container.requirements.pre]
24.2.2
General containers
[container.requirements.general]
24.2.2.1
Introduction
[container.intro.reqmts]
24.2.2.2
Container requirements
[container.reqmts]
24.2.2.3
Reversible container requirements
[container.rev.reqmts]
24.2.2.4
Optional container requirements
[container.opt.reqmts]
24.2.2.5
Allocator-aware containers
[container.alloc.reqmts]
24.2.3
Container data races
[container.requirements.dataraces]
24.2.4
Sequence containers
[sequence.reqmts]
24.2.5
Node handles
[container.node]
24.2.5.1
Overview
[container.node.overview]
24.2.5.2
Constructors, copy, and assignment
[container.node.cons]
24.2.5.3
Destructor
[container.node.dtor]
24.2.5.4
Observers
[container.node.observers]
24.2.5.5
Modifiers
[container.node.modifiers]
24.2.6
Insert return type
[container.insert.return]
24.2.7
Associative containers
[associative.reqmts]
24.2.7.1
General
[associative.reqmts.general]
24.2.7.2
Exception safety guarantees
[associative.reqmts.except]
24.2.8
Unordered associative containers
[unord.req]
24.2.8.1
General
[unord.req.general]
24.2.8.2
Exception safety guarantees
[unord.req.except]
24.3
Sequence containers
[sequences]
24.3.1
In general
[sequences.general]
24.3.2
Header synopsis
[array.syn]
24.3.3
Header synopsis
[deque.syn]
24.3.4
Header synopsis
[forward.list.syn]
24.3.5
Header synopsis
[list.syn]
24.3.6
Header synopsis
[vector.syn]
24.3.7
Class template array
[array]
24.3.7.1
Overview
[array.overview]
24.3.7.2
Constructors, copy, and assignment
[array.cons]
24.3.7.3
Member functions
[array.members]
24.3.7.4
Specialized algorithms
[array.special]
24.3.7.5
Zero-sized arrays
[array.zero]
24.3.7.6
Array creation functions
[array.creation]
24.3.7.7
Tuple interface
[array.tuple]
24.3.8
Class template deque
[deque]
24.3.8.1
Overview
[deque.overview]
24.3.8.2
Constructors, copy, and assignment
[deque.cons]
24.3.8.3
Capacity
[deque.capacity]
24.3.8.4
Modifiers
[deque.modifiers]
24.3.8.5
Erasure
[deque.erasure]
24.3.9
Class template forward_list
[forward.list]
24.3.9.1
Overview
[forward.list.overview]
24.3.9.2
Constructors, copy, and assignment
[forward.list.cons]
24.3.9.3
Iterators
[forward.list.iter]
24.3.9.4
Element access
[forward.list.access]
24.3.9.5
Modifiers
[forward.list.modifiers]
24.3.9.6
Operations
[forward.list.ops]
24.3.9.7
Erasure
[forward.list.erasure]
24.3.10
Class template list
[list]
24.3.10.1
Overview
[list.overview]
24.3.10.2
Constructors, copy, and assignment
[list.cons]
24.3.10.3
Capacity
[list.capacity]
24.3.10.4
Modifiers
[list.modifiers]
24.3.10.5
Operations
[list.ops]
24.3.10.6
Erasure
[list.erasure]
24.3.11
Class template vector
[vector]
24.3.11.1
Overview
[vector.overview]
24.3.11.2
Constructors
[vector.cons]
24.3.11.3
Capacity
[vector.capacity]
24.3.11.4
Data
[vector.data]
24.3.11.5
Modifiers
[vector.modifiers]
24.3.11.6
Erasure
[vector.erasure]
24.3.12
Specialization of vector for bool
[vector.bool]
24.3.12.1
Partial class template specialization vector
[vector.bool.pspc]
24.3.12.2
Formatter specialization for vector
[vector.bool.fmt]
24.4
Associative containers
[associative]
24.4.1
In general
[associative.general]
24.4.2
Header synopsis
[associative.map.syn]
24.4.3
Header synopsis
[associative.set.syn]
24.4.4
Class template map
[map]
24.4.4.1
Overview
[map.overview]
24.4.4.2
Constructors, copy, and assignment
[map.cons]
24.4.4.3
Element access
[map.access]
24.4.4.4
Modifiers
[map.modifiers]
24.4.4.5
Erasure
[map.erasure]
24.4.5
Class template multimap
[multimap]
24.4.5.1
Overview
[multimap.overview]
24.4.5.2
Constructors
[multimap.cons]
24.4.5.3
Modifiers
[multimap.modifiers]
24.4.5.4
Erasure
[multimap.erasure]
24.4.6
Class template set
[set]
24.4.6.1
Overview
[set.overview]
24.4.6.2
Constructors, copy, and assignment
[set.cons]
24.4.6.3
Erasure
[set.erasure]
24.4.7
Class template multiset
[multiset]
24.4.7.1
Overview
[multiset.overview]
24.4.7.2
Constructors
[multiset.cons]
24.4.7.3
Erasure
[multiset.erasure]
24.5
Unordered associative containers
[unord]
24.5.1
In general
[unord.general]
24.5.2
Header synopsis
[unord.map.syn]
24.5.3
Header synopsis
[unord.set.syn]
24.5.4
Class template unordered_map
[unord.map]
24.5.4.1
Overview
[unord.map.overview]
24.5.4.2
Constructors
[unord.map.cnstr]
24.5.4.3
Element access
[unord.map.elem]
24.5.4.4
Modifiers
[unord.map.modifiers]
24.5.4.5
Erasure
[unord.map.erasure]
24.5.5
Class template unordered_multimap
[unord.multimap]
24.5.5.1
Overview
[unord.multimap.overview]
24.5.5.2
Constructors
[unord.multimap.cnstr]
24.5.5.3
Modifiers
[unord.multimap.modifiers]
24.5.5.4
Erasure
[unord.multimap.erasure]
24.5.6
Class template unordered_set
[unord.set]
24.5.6.1
Overview
[unord.set.overview]
24.5.6.2
Constructors
[unord.set.cnstr]
24.5.6.3
Erasure
[unord.set.erasure]
24.5.7
Class template unordered_multiset
[unord.multiset]
24.5.7.1
Overview
[unord.multiset.overview]
24.5.7.2
Constructors
[unord.multiset.cnstr]
24.5.7.3
Erasure
[unord.multiset.erasure]
24.6
Container adaptors
[container.adaptors]
24.6.1
In general
[container.adaptors.general]
24.6.2
Header synopsis
[queue.syn]
24.6.3
Header synopsis
[stack.syn]
24.6.4
Header synopsis
[flat.map.syn]
24.6.5
Header synopsis
[flat.set.syn]
24.6.6
Class template queue
[queue]
24.6.6.1
Definition
[queue.defn]
24.6.6.2
Constructors
[queue.cons]
24.6.6.3
Constructors with allocators
[queue.cons.alloc]
24.6.6.4
Modifiers
[queue.mod]
24.6.6.5
Operators
[queue.ops]
24.6.6.6
Specialized algorithms
[queue.special]
24.6.7
Class template priority_queue
[priority.queue]
24.6.7.1
Overview
[priqueue.overview]
24.6.7.2
Constructors
[priqueue.cons]
24.6.7.3
Constructors with allocators
[priqueue.cons.alloc]
24.6.7.4
Members
[priqueue.members]
24.6.7.5
Specialized algorithms
[priqueue.special]
24.6.8
Class template stack
[stack]
24.6.8.1
General
[stack.general]
24.6.8.2
Definition
[stack.defn]
24.6.8.3
Constructors
[stack.cons]
24.6.8.4
Constructors with allocators
[stack.cons.alloc]
24.6.8.5
Modifiers
[stack.mod]
24.6.8.6
Operators
[stack.ops]
24.6.8.7
Specialized algorithms
[stack.special]
24.6.9
Class template flat_map
[flat.map]
24.6.9.1
Overview
[flat.map.overview]
24.6.9.2
Definition
[flat.map.defn]
24.6.9.3
Constructors
[flat.map.cons]
24.6.9.4
Capacity
[flat.map.capacity]
24.6.9.5
Access
[flat.map.access]
24.6.9.6
Modifiers
[flat.map.modifiers]
24.6.9.7
Erasure
[flat.map.erasure]
24.6.10
Class template flat_multimap
[flat.multimap]
24.6.10.1
Overview
[flat.multimap.overview]
24.6.10.2
Definition
[flat.multimap.defn]
24.6.10.3
Constructors
[flat.multimap.cons]
24.6.10.4
Erasure
[flat.multimap.erasure]
24.6.11
Class template flat_set
[flat.set]
24.6.11.1
Overview
[flat.set.overview]
24.6.11.2
Definition
[flat.set.defn]
24.6.11.3
Constructors
[flat.set.cons]
24.6.11.4
Modifiers
[flat.set.modifiers]
24.6.11.5
Erasure
[flat.set.erasure]
24.6.12
Class template flat_multiset
[flat.multiset]
24.6.12.1
Overview
[flat.multiset.overview]
24.6.12.2
Definition
[flat.multiset.defn]
24.6.12.3
Constructors
[flat.multiset.cons]
24.6.12.4
Modifiers
[flat.multiset.modifiers]
24.6.12.5
Erasure
[flat.multiset.erasure]
24.6.13
Container adaptors formatting
[container.adaptors.format]
24.7
Views
[views]
24.7.1
General
[views.general]
24.7.2
Contiguous access
[views.contiguous]
24.7.2.1
Header synopsis
[span.syn]
24.7.2.2
Class template span
[views.span]
24.7.2.2.1
Overview
[span.overview]
24.7.2.2.2
Constructors, copy, and assignment
[span.cons]
24.7.2.2.3
Deduction guides
[span.deduct]
24.7.2.2.4
Subviews
[span.sub]
24.7.2.2.5
Observers
[span.obs]
24.7.2.2.6
Element access
[span.elem]
24.7.2.2.7
Iterator support
[span.iterators]
24.7.2.3
Views of object representation
[span.objectrep]
24.7.3
Multidimensional access
[views.multidim]
24.7.3.1
Overview
[mdspan.overview]
24.7.3.2
Header synopsis
[mdspan.syn]
24.7.3.3
Class template extents
[mdspan.extents]
24.7.3.3.1
Overview
[mdspan.extents.overview]
24.7.3.3.2
Exposition-only helpers
[mdspan.extents.expo]
24.7.3.3.3
Constructors
[mdspan.extents.cons]
24.7.3.3.4
Observers of the multidimensional index space
[mdspan.extents.obs]
24.7.3.3.5
Comparison operators
[mdspan.extents.cmp]
24.7.3.3.6
Alias template dextents
[mdspan.extents.dextents]
24.7.3.4
Layout mapping
[mdspan.layout]
24.7.3.4.1
General
[mdspan.layout.general]
24.7.3.4.2
Requirements
[mdspan.layout.reqmts]
24.7.3.4.3
Layout mapping policy requirements
[mdspan.layout.policy.reqmts]
24.7.3.4.4
Layout mapping policies
[mdspan.layout.policy.overview]
24.7.3.4.5
Class template layout_left::mapping
[mdspan.layout.left]
24.7.3.4.5.1
Overview
[mdspan.layout.left.overview]
24.7.3.4.5.2
Constructors
[mdspan.layout.left.cons]
24.7.3.4.5.3
Observers
[mdspan.layout.left.obs]
24.7.3.4.6
Class template layout_right::mapping
[mdspan.layout.right]
24.7.3.4.6.1
Overview
[mdspan.layout.right.overview]
24.7.3.4.6.2
Constructors
[mdspan.layout.right.cons]
24.7.3.4.6.3
Observers
[mdspan.layout.right.obs]
24.7.3.4.7
Class template layout_stride::mapping
[mdspan.layout.stride]
24.7.3.4.7.1
Overview
[mdspan.layout.stride.overview]
24.7.3.4.7.2
Exposition-only helpers
[mdspan.layout.stride.expo]
24.7.3.4.7.3
Constructors
[mdspan.layout.stride.cons]
24.7.3.4.7.4
Observers
[mdspan.layout.stride.obs]
24.7.3.5
Accessor policy
[mdspan.accessor]
24.7.3.5.1
General
[mdspan.accessor.general]
24.7.3.5.2
Requirements
[mdspan.accessor.reqmts]
24.7.3.5.3
Class template default_accessor
[mdspan.accessor.default]
24.7.3.5.3.1
Overview
[mdspan.accessor.default.overview]
24.7.3.5.3.2
Members
[mdspan.accessor.default.members]
24.7.3.6
Class template mdspan
[mdspan.mdspan]
24.7.3.6.1
Overview
[mdspan.mdspan.overview]
24.7.3.6.2
Constructors
[mdspan.mdspan.cons]
24.7.3.6.3
Members
[mdspan.mdspan.members]
25
Iterators library
[iterators]
25.1
General
[iterators.general]
25.2
Header synopsis
[iterator.synopsis]
25.3
Iterator requirements
[iterator.requirements]
25.3.1
In general
[iterator.requirements.general]
25.3.2
Associated types
[iterator.assoc.types]
25.3.2.1
Incrementable traits
[incrementable.traits]
25.3.2.2
Indirectly readable traits
[readable.traits]
25.3.2.3
Iterator traits
[iterator.traits]
25.3.3
Customization point objects
[iterator.cust]
25.3.3.1
ranges::iter_move
[iterator.cust.move]
25.3.3.2
ranges::iter_swap
[iterator.cust.swap]
25.3.4
Iterator concepts
[iterator.concepts]
25.3.4.1
General
[iterator.concepts.general]
25.3.4.2
Concept indirectly_readable
[iterator.concept.readable]
25.3.4.3
Concept indirectly_writable
[iterator.concept.writable]
25.3.4.4
Concept weakly_incrementable
[iterator.concept.winc]
25.3.4.5
Concept incrementable
[iterator.concept.inc]
25.3.4.6
Concept input_or_output_iterator
[iterator.concept.iterator]
25.3.4.7
Concept sentinel_for
[iterator.concept.sentinel]
25.3.4.8
Concept sized_sentinel_for
[iterator.concept.sizedsentinel]
25.3.4.9
Concept input_iterator
[iterator.concept.input]
25.3.4.10
Concept output_iterator
[iterator.concept.output]
25.3.4.11
Concept forward_iterator
[iterator.concept.forward]
25.3.4.12
Concept bidirectional_iterator
[iterator.concept.bidir]
25.3.4.13
Concept random_access_iterator
[iterator.concept.random.access]
25.3.4.14
Concept contiguous_iterator
[iterator.concept.contiguous]
25.3.5
C++17 iterator requirements
[iterator.cpp17]
25.3.5.1
General
[iterator.cpp17.general]
25.3.5.2
Cpp17Iterator
[iterator.iterators]
25.3.5.3
Input iterators
[input.iterators]
25.3.5.4
Output iterators
[output.iterators]
25.3.5.5
Forward iterators
[forward.iterators]
25.3.5.6
Bidirectional iterators
[bidirectional.iterators]
25.3.5.7
Random access iterators
[random.access.iterators]
25.3.6
Indirect callable requirements
[indirectcallable]
25.3.6.1
General
[indirectcallable.general]
25.3.6.2
Indirect callable traits
[indirectcallable.traits]
25.3.6.3
Indirect callables
[indirectcallable.indirectinvocable]
25.3.6.4
Class template projected
[projected]
25.3.7
Common algorithm requirements
[alg.req]
25.3.7.1
General
[alg.req.general]
25.3.7.2
Concept indirectly_movable
[alg.req.ind.move]
25.3.7.3
Concept indirectly_copyable
[alg.req.ind.copy]
25.3.7.4
Concept indirectly_swappable
[alg.req.ind.swap]
25.3.7.5
Concept indirectly_comparable
[alg.req.ind.cmp]
25.3.7.6
Concept permutable
[alg.req.permutable]
25.3.7.7
Concept mergeable
[alg.req.mergeable]
25.3.7.8
Concept sortable
[alg.req.sortable]
25.4
Iterator primitives
[iterator.primitives]
25.4.1
General
[iterator.primitives.general]
25.4.2
Standard iterator tags
[std.iterator.tags]
25.4.3
Iterator operations
[iterator.operations]
25.4.4
Range iterator operations
[range.iter.ops]
25.4.4.1
General
[range.iter.ops.general]
25.4.4.2
ranges::advance
[range.iter.op.advance]
25.4.4.3
ranges::distance
[range.iter.op.distance]
25.4.4.4
ranges::next
[range.iter.op.next]
25.4.4.5
ranges::prev
[range.iter.op.prev]
25.5
Iterator adaptors
[predef.iterators]
25.5.1
Reverse iterators
[reverse.iterators]
25.5.1.1
General
[reverse.iterators.general]
25.5.1.2
Class template reverse_iterator
[reverse.iterator]
25.5.1.3
Requirements
[reverse.iter.requirements]
25.5.1.4
Construction and assignment
[reverse.iter.cons]
25.5.1.5
Conversion
[reverse.iter.conv]
25.5.1.6
Element access
[reverse.iter.elem]
25.5.1.7
Navigation
[reverse.iter.nav]
25.5.1.8
Comparisons
[reverse.iter.cmp]
25.5.1.9
Non-member functions
[reverse.iter.nonmember]
25.5.2
Insert iterators
[insert.iterators]
25.5.2.1
General
[insert.iterators.general]
25.5.2.2
Class template back_insert_iterator
[back.insert.iterator]
25.5.2.2.1
Operations
[back.insert.iter.ops]
25.5.2.2.2
back_inserter
[back.inserter]
25.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
25.5.2.3.1
Operations
[front.insert.iter.ops]
25.5.2.3.2
front_inserter
[front.inserter]
25.5.2.4
Class template insert_iterator
[insert.iterator]
25.5.2.4.1
Operations
[insert.iter.ops]
25.5.2.4.2
inserter
[inserter]
25.5.3
Constant iterators and sentinels
[const.iterators]
25.5.3.1
General
[const.iterators.general]
25.5.3.2
Alias templates
[const.iterators.alias]
25.5.3.3
Class template basic_const_iterator
[const.iterators.iterator]
25.5.3.4
Member types
[const.iterators.types]
25.5.3.5
Operations
[const.iterators.ops]
25.5.4
Move iterators and sentinels
[move.iterators]
25.5.4.1
General
[move.iterators.general]
25.5.4.2
Class template move_iterator
[move.iterator]
25.5.4.3
Requirements
[move.iter.requirements]
25.5.4.4
Construction and assignment
[move.iter.cons]
25.5.4.5
Conversion
[move.iter.op.conv]
25.5.4.6
Element access
[move.iter.elem]
25.5.4.7
Navigation
[move.iter.nav]
25.5.4.8
Comparisons
[move.iter.op.comp]
25.5.4.9
Non-member functions
[move.iter.nonmember]
25.5.4.10
Class template move_sentinel
[move.sentinel]
25.5.4.11
Operations
[move.sent.ops]
25.5.5
Common iterators
[iterators.common]
25.5.5.1
Class template common_iterator
[common.iterator]
25.5.5.2
Associated types
[common.iter.types]
25.5.5.3
Constructors and conversions
[common.iter.const]
25.5.5.4
Accessors
[common.iter.access]
25.5.5.5
Navigation
[common.iter.nav]
25.5.5.6
Comparisons
[common.iter.cmp]
25.5.5.7
Customizations
[common.iter.cust]
25.5.6
Default sentinel
[default.sentinel]
25.5.7
Counted iterators
[iterators.counted]
25.5.7.1
Class template counted_iterator
[counted.iterator]
25.5.7.2
Constructors and conversions
[counted.iter.const]
25.5.7.3
Accessors
[counted.iter.access]
25.5.7.4
Element access
[counted.iter.elem]
25.5.7.5
Navigation
[counted.iter.nav]
25.5.7.6
Comparisons
[counted.iter.cmp]
25.5.7.7
Customizations
[counted.iter.cust]
25.5.8
Unreachable sentinel
[unreachable.sentinel]
25.6
Stream iterators
[stream.iterators]
25.6.1
General
[stream.iterators.general]
25.6.2
Class template istream_iterator
[istream.iterator]
25.6.2.1
General
[istream.iterator.general]
25.6.2.2
Constructors and destructor
[istream.iterator.cons]
25.6.2.3
Operations
[istream.iterator.ops]
25.6.3
Class template ostream_iterator
[ostream.iterator]
25.6.3.1
General
[ostream.iterator.general]
25.6.3.2
Constructors and destructor
[ostream.iterator.cons.des]
25.6.3.3
Operations
[ostream.iterator.ops]
25.6.4
Class template istreambuf_iterator
[istreambuf.iterator]
25.6.4.1
General
[istreambuf.iterator.general]
25.6.4.2
Class istreambuf_iterator::proxy
[istreambuf.iterator.proxy]
25.6.4.3
Constructors
[istreambuf.iterator.cons]
25.6.4.4
Operations
[istreambuf.iterator.ops]
25.6.5
Class template ostreambuf_iterator
[ostreambuf.iterator]
25.6.5.1
General
[ostreambuf.iterator.general]
25.6.5.2
Constructors
[ostreambuf.iter.cons]
25.6.5.3
Operations
[ostreambuf.iter.ops]
25.7
Range access
[iterator.range]
26
Ranges library
[ranges]
26.1
General
[ranges.general]
26.2
Header synopsis
[ranges.syn]
26.3
Range access
[range.access]
26.3.1
General
[range.access.general]
26.3.2
ranges::begin
[range.access.begin]
26.3.3
ranges::end
[range.access.end]
26.3.4
ranges::cbegin
[range.access.cbegin]
26.3.5
ranges::cend
[range.access.cend]
26.3.6
ranges::rbegin
[range.access.rbegin]
26.3.7
ranges::rend
[range.access.rend]
26.3.8
ranges::crbegin
[range.access.crbegin]
26.3.9
ranges::crend
[range.access.crend]
26.3.10
ranges::size
[range.prim.size]
26.3.11
ranges::ssize
[range.prim.ssize]
26.3.12
ranges::empty
[range.prim.empty]
26.3.13
ranges::data
[range.prim.data]
26.3.14
ranges::cdata
[range.prim.cdata]
26.4
Range requirements
[range.req]
26.4.1
General
[range.req.general]
26.4.2
Ranges
[range.range]
26.4.3
Sized ranges
[range.sized]
26.4.4
Views
[range.view]
26.4.5
Other range refinements
[range.refinements]
26.5
Range utilities
[range.utility]
26.5.1
General
[range.utility.general]
26.5.2
Helper concepts
[range.utility.helpers]
26.5.3
View interface
[view.interface]
26.5.3.1
General
[view.interface.general]
26.5.3.2
Members
[view.interface.members]
26.5.4
Sub-ranges
[range.subrange]
26.5.4.1
General
[range.subrange.general]
26.5.4.2
Constructors and conversions
[range.subrange.ctor]
26.5.4.3
Accessors
[range.subrange.access]
26.5.5
Dangling iterator handling
[range.dangling]
26.5.6
Class template elements_of
[range.elementsof]
26.5.7
Range conversions
[range.utility.conv]
26.5.7.1
General
[range.utility.conv.general]
26.5.7.2
ranges::to
[range.utility.conv.to]
26.5.7.3
ranges::to adaptors
[range.utility.conv.adaptors]
26.6
Range factories
[range.factories]
26.6.1
General
[range.factories.general]
26.6.2
Empty view
[range.empty]
26.6.2.1
Overview
[range.empty.overview]
26.6.2.2
Class template empty_view
[range.empty.view]
26.6.3
Single view
[range.single]
26.6.3.1
Overview
[range.single.overview]
26.6.3.2
Class template single_view
[range.single.view]
26.6.4
Iota view
[range.iota]
26.6.4.1
Overview
[range.iota.overview]
26.6.4.2
Class template iota_view
[range.iota.view]
26.6.4.3
Class iota_view::iterator
[range.iota.iterator]
26.6.4.4
Class iota_view::sentinel
[range.iota.sentinel]
26.6.5
Repeat view
[range.repeat]
26.6.5.1
Overview
[range.repeat.overview]
26.6.5.2
Class template repeat_view
[range.repeat.view]
26.6.5.3
Class repeat_view::iterator
[range.repeat.iterator]
26.6.6
Istream view
[range.istream]
26.6.6.1
Overview
[range.istream.overview]
26.6.6.2
Class template basic_istream_view
[range.istream.view]
26.6.6.3
Class basic_istream_view::iterator
[range.istream.iterator]
26.7
Range adaptors
[range.adaptors]
26.7.1
General
[range.adaptors.general]
26.7.2
Range adaptor objects
[range.adaptor.object]
26.7.3
Movable wrapper
[range.move.wrap]
26.7.4
Non-propagating cache
[range.nonprop.cache]
26.7.5
Range adaptor helpers
[range.adaptor.helpers]
26.7.6
All view
[range.all]
26.7.6.1
General
[range.all.general]
26.7.6.2
Class template ref_view
[range.ref.view]
26.7.6.3
Class template owning_view
[range.owning.view]
26.7.7
As rvalue view
[range.as.rvalue]
26.7.7.1
Overview
[range.as.rvalue.overview]
26.7.7.2
Class template as_rvalue_view
[range.as.rvalue.view]
26.7.8
Filter view
[range.filter]
26.7.8.1
Overview
[range.filter.overview]
26.7.8.2
Class template filter_view
[range.filter.view]
26.7.8.3
Class filter_view::iterator
[range.filter.iterator]
26.7.8.4
Class filter_view::sentinel
[range.filter.sentinel]
26.7.9
Transform view
[range.transform]
26.7.9.1
Overview
[range.transform.overview]
26.7.9.2
Class template transform_view
[range.transform.view]
26.7.9.3
Class template transform_view::iterator
[range.transform.iterator]
26.7.9.4
Class template transform_view::sentinel
[range.transform.sentinel]
26.7.10
Take view
[range.take]
26.7.10.1
Overview
[range.take.overview]
26.7.10.2
Class template take_view
[range.take.view]
26.7.10.3
Class template take_view::sentinel
[range.take.sentinel]
26.7.11
Take while view
[range.take.while]
26.7.11.1
Overview
[range.take.while.overview]
26.7.11.2
Class template take_while_view
[range.take.while.view]
26.7.11.3
Class template take_while_view::sentinel
[range.take.while.sentinel]
26.7.12
Drop view
[range.drop]
26.7.12.1
Overview
[range.drop.overview]
26.7.12.2
Class template drop_view
[range.drop.view]
26.7.13
Drop while view
[range.drop.while]
26.7.13.1
Overview
[range.drop.while.overview]
26.7.13.2
Class template drop_while_view
[range.drop.while.view]
26.7.14
Join view
[range.join]
26.7.14.1
Overview
[range.join.overview]
26.7.14.2
Class template join_view
[range.join.view]
26.7.14.3
Class template join_view::iterator
[range.join.iterator]
26.7.14.4
Class template join_view::sentinel
[range.join.sentinel]
26.7.15
Join with view
[range.join.with]
26.7.15.1
Overview
[range.join.with.overview]
26.7.15.2
Class template join_with_view
[range.join.with.view]
26.7.15.3
Class template join_with_view::iterator
[range.join.with.iterator]
26.7.15.4
Class template join_with_view::sentinel
[range.join.with.sentinel]
26.7.16
Lazy split view
[range.lazy.split]
26.7.16.1
Overview
[range.lazy.split.overview]
26.7.16.2
Class template lazy_split_view
[range.lazy.split.view]
26.7.16.3
Class template lazy_split_view::outer-iterator
[range.lazy.split.outer]
26.7.16.4
Class lazy_split_view::outer-iterator::value_type
[range.lazy.split.outer.value]
26.7.16.5
Class template lazy_split_view::inner-iterator
[range.lazy.split.inner]
26.7.17
Split view
[range.split]
26.7.17.1
Overview
[range.split.overview]
26.7.17.2
Class template split_view
[range.split.view]
26.7.17.3
Class split_view::iterator
[range.split.iterator]
26.7.17.4
Class split_view::sentinel
[range.split.sentinel]
26.7.18
Counted view
[range.counted]
26.7.19
Common view
[range.common]
26.7.19.1
Overview
[range.common.overview]
26.7.19.2
Class template common_view
[range.common.view]
26.7.20
Reverse view
[range.reverse]
26.7.20.1
Overview
[range.reverse.overview]
26.7.20.2
Class template reverse_view
[range.reverse.view]
26.7.21
As const view
[range.as.const]
26.7.21.1
Overview
[range.as.const.overview]
26.7.21.2
Class template as_const_view
[range.as.const.view]
26.7.22
Elements view
[range.elements]
26.7.22.1
Overview
[range.elements.overview]
26.7.22.2
Class template elements_view
[range.elements.view]
26.7.22.3
Class template elements_view::iterator
[range.elements.iterator]
26.7.22.4
Class template elements_view::sentinel
[range.elements.sentinel]
26.7.23
Enumerate view
[range.enumerate]
26.7.23.1
Overview
[range.enumerate.overview]
26.7.23.2
Class template enumerate_view
[range.enumerate.view]
26.7.23.3
Class template enumerate_view::iterator
[range.enumerate.iterator]
26.7.23.4
Class template enumerate_view::sentinel
[range.enumerate.sentinel]
26.7.24
Zip view
[range.zip]
26.7.24.1
Overview
[range.zip.overview]
26.7.24.2
Class template zip_view
[range.zip.view]
26.7.24.3
Class template zip_view::iterator
[range.zip.iterator]
26.7.24.4
Class template zip_view::sentinel
[range.zip.sentinel]
26.7.25
Zip transform view
[range.zip.transform]
26.7.25.1
Overview
[range.zip.transform.overview]
26.7.25.2
Class template zip_transform_view
[range.zip.transform.view]
26.7.25.3
Class template zip_transform_view::iterator
[range.zip.transform.iterator]
26.7.25.4
Class template zip_transform_view::sentinel
[range.zip.transform.sentinel]
26.7.26
Adjacent view
[range.adjacent]
26.7.26.1
Overview
[range.adjacent.overview]
26.7.26.2
Class template adjacent_view
[range.adjacent.view]
26.7.26.3
Class template adjacent_view::iterator
[range.adjacent.iterator]
26.7.26.4
Class template adjacent_view::sentinel
[range.adjacent.sentinel]
26.7.27
Adjacent transform view
[range.adjacent.transform]
26.7.27.1
Overview
[range.adjacent.transform.overview]
26.7.27.2
Class template adjacent_transform_view
[range.adjacent.transform.view]
26.7.27.3
Class template adjacent_transform_view::iterator
[range.adjacent.transform.iterator]
26.7.27.4
Class template adjacent_transform_view::sentinel
[range.adjacent.transform.sentinel]
26.7.28
Chunk view
[range.chunk]
26.7.28.1
Overview
[range.chunk.overview]
26.7.28.2
Class template chunk_view for input ranges
[range.chunk.view.input]
26.7.28.3
Class chunk_view::outer-iterator
[range.chunk.outer.iter]
26.7.28.4
Class chunk_view::outer-iterator::value_type
[range.chunk.outer.value]
26.7.28.5
Class chunk_view::inner-iterator
[range.chunk.inner.iter]
26.7.28.6
Class template chunk_view for forward ranges
[range.chunk.view.fwd]
26.7.28.7
Class template chunk_view::iterator for forward ranges
[range.chunk.fwd.iter]
26.7.29
Slide view
[range.slide]
26.7.29.1
Overview
[range.slide.overview]
26.7.29.2
Class template slide_view
[range.slide.view]
26.7.29.3
Class template slide_view::iterator
[range.slide.iterator]
26.7.29.4
Class slide_view::sentinel
[range.slide.sentinel]
26.7.30
Chunk by view
[range.chunk.by]
26.7.30.1
Overview
[range.chunk.by.overview]
26.7.30.2
Class template chunk_by_view
[range.chunk.by.view]
26.7.30.3
Class chunk_by_view::iterator
[range.chunk.by.iter]
26.7.31
Stride view
[range.stride]
26.7.31.1
Overview
[range.stride.overview]
26.7.31.2
Class template stride_view
[range.stride.view]
26.7.31.3
Class template stride_view::iterator
[range.stride.iterator]
26.7.32
Cartesian product view
[range.cartesian]
26.7.32.1
Overview
[range.cartesian.overview]
26.7.32.2
Class template cartesian_product_view
[range.cartesian.view]
26.7.32.3
Class template cartesian_product_view::iterator
[range.cartesian.iterator]
26.8
Range generators
[coro.generator]
26.8.1
Overview
[coroutine.generator.overview]
26.8.2
Header synopsis
[generator.syn]
26.8.3
Class template generator
[coro.generator.class]
26.8.4
Members
[coro.generator.members]
26.8.5
Class generator::promise_type
[coro.generator.promise]
26.8.6
Class generator::iterator
[coro.generator.iterator]
27
Algorithms library
[algorithms]
27.1
General
[algorithms.general]
27.2
Algorithms requirements
[algorithms.requirements]
27.3
Parallel algorithms
[algorithms.parallel]
27.3.1
Preamble
[algorithms.parallel.defns]
27.3.2
Requirements on user-provided function objects
[algorithms.parallel.user]
27.3.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
27.3.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
27.3.5
ExecutionPolicy algorithm overloads
[algorithms.parallel.overloads]
27.4
Header synopsis
[algorithm.syn]
27.5
Algorithm result types
[algorithms.results]
27.6
Non-modifying sequence operations
[alg.nonmodifying]
27.6.1
All of
[alg.all.of]
27.6.2
Any of
[alg.any.of]
27.6.3
None of
[alg.none.of]
27.6.4
Contains
[alg.contains]
27.6.5
For each
[alg.foreach]
27.6.6
Find
[alg.find]
27.6.7
Find last
[alg.find.last]
27.6.8
Find end
[alg.find.end]
27.6.9
Find first
[alg.find.first.of]
27.6.10
Adjacent find
[alg.adjacent.find]
27.6.11
Count
[alg.count]
27.6.12
Mismatch
[mismatch]
27.6.13
Equal
[alg.equal]
27.6.14
Is permutation
[alg.is.permutation]
27.6.15
Search
[alg.search]
27.6.16
Starts with
[alg.starts.with]
27.6.17
Ends with
[alg.ends.with]
27.6.18
Fold
[alg.fold]
27.7
Mutating sequence operations
[alg.modifying.operations]
27.7.1
Copy
[alg.copy]
27.7.2
Move
[alg.move]
27.7.3
Swap
[alg.swap]
27.7.4
Transform
[alg.transform]
27.7.5
Replace
[alg.replace]
27.7.6
Fill
[alg.fill]
27.7.7
Generate
[alg.generate]
27.7.8
Remove
[alg.remove]
27.7.9
Unique
[alg.unique]
27.7.10
Reverse
[alg.reverse]
27.7.11
Rotate
[alg.rotate]
27.7.12
Sample
[alg.random.sample]
27.7.13
Shuffle
[alg.random.shuffle]
27.7.14
Shift
[alg.shift]
27.8
Sorting and related operations
[alg.sorting]
27.8.1
General
[alg.sorting.general]
27.8.2
Sorting
[alg.sort]
27.8.2.1
sort
[sort]
27.8.2.2
stable_sort
[stable.sort]
27.8.2.3
partial_sort
[partial.sort]
27.8.2.4
partial_sort_copy
[partial.sort.copy]
27.8.2.5
is_sorted
[is.sorted]
27.8.3
Nth element
[alg.nth.element]
27.8.4
Binary search
[alg.binary.search]
27.8.4.1
General
[alg.binary.search.general]
27.8.4.2
lower_bound
[lower.bound]
27.8.4.3
upper_bound
[upper.bound]
27.8.4.4
equal_range
[equal.range]
27.8.4.5
binary_search
[binary.search]
27.8.5
Partitions
[alg.partitions]
27.8.6
Merge
[alg.merge]
27.8.7
Set operations on sorted structures
[alg.set.operations]
27.8.7.1
General
[alg.set.operations.general]
27.8.7.2
includes
[includes]
27.8.7.3
set_union
[set.union]
27.8.7.4
set_intersection
[set.intersection]
27.8.7.5
set_difference
[set.difference]
27.8.7.6
set_symmetric_difference
[set.symmetric.difference]
27.8.8
Heap operations
[alg.heap.operations]
27.8.8.1
General
[alg.heap.operations.general]
27.8.8.2
push_heap
[push.heap]
27.8.8.3
pop_heap
[pop.heap]
27.8.8.4
make_heap
[make.heap]
27.8.8.5
sort_heap
[sort.heap]
27.8.8.6
is_heap
[is.heap]
27.8.9
Minimum and maximum
[alg.min.max]
27.8.10
Bounded value
[alg.clamp]
27.8.11
Lexicographical comparison
[alg.lex.comparison]
27.8.12
Three-way comparison algorithms
[alg.three.way]
27.8.13
Permutation generators
[alg.permutation.generators]
27.9
Header synopsis
[numeric.ops.overview]
27.10
Generalized numeric operations
[numeric.ops]
27.10.1
General
[numeric.ops.general]
27.10.2
Definitions
[numerics.defns]
27.10.3
Accumulate
[accumulate]
27.10.4
Reduce
[reduce]
27.10.5
Inner product
[inner.product]
27.10.6
Transform reduce
[transform.reduce]
27.10.7
Partial sum
[partial.sum]
27.10.8
Exclusive scan
[exclusive.scan]
27.10.9
Inclusive scan
[inclusive.scan]
27.10.10
Transform exclusive scan
[transform.exclusive.scan]
27.10.11
Transform inclusive scan
[transform.inclusive.scan]
27.10.12
Adjacent difference
[adjacent.difference]
27.10.13
Iota
[numeric.iota]
27.10.14
Greatest common divisor
[numeric.ops.gcd]
27.10.15
Least common multiple
[numeric.ops.lcm]
27.10.16
Midpoint
[numeric.ops.midpoint]
27.11
Specialized algorithms
[specialized.algorithms]
27.11.1
General
[specialized.algorithms.general]
27.11.2
Special memory concepts
[special.mem.concepts]
27.11.3
uninitialized_default_construct
[uninitialized.construct.default]
27.11.4
uninitialized_value_construct
[uninitialized.construct.value]
27.11.5
uninitialized_copy
[uninitialized.copy]
27.11.6
uninitialized_move
[uninitialized.move]
27.11.7
uninitialized_fill
[uninitialized.fill]
27.11.8
construct_at
[specialized.construct]
27.11.9
destroy
[specialized.destroy]
27.12
C library algorithms
[alg.c.library]
28
Numerics library
[numerics]
28.1
General
[numerics.general]
28.2
Numeric type requirements
[numeric.requirements]
28.3
The floating-point environment
[cfenv]
28.3.1
Header synopsis
[cfenv.syn]
28.3.2
Threads
[cfenv.thread]
28.4
Complex numbers
[complex.numbers]
28.4.1
General
[complex.numbers.general]
28.4.2
Header synopsis
[complex.syn]
28.4.3
Class template complex
[complex]
28.4.4
Member functions
[complex.members]
28.4.5
Member operators
[complex.member.ops]
28.4.6
Non-member operations
[complex.ops]
28.4.7
Value operations
[complex.value.ops]
28.4.8
Transcendentals
[complex.transcendentals]
28.4.9
Additional overloads
[cmplx.over]
28.4.10
Suffixes for complex number literals
[complex.literals]
28.5
Random number generation
[rand]
28.5.1
General
[rand.general]
28.5.2
Header synopsis
[rand.synopsis]
28.5.3
Requirements
[rand.req]
28.5.3.1
General requirements
[rand.req.genl]
28.5.3.2
Seed sequence requirements
[rand.req.seedseq]
28.5.3.3
Uniform random bit generator requirements
[rand.req.urng]
28.5.3.4
Random number engine requirements
[rand.req.eng]
28.5.3.5
Random number engine adaptor requirements
[rand.req.adapt]
28.5.3.6
Random number distribution requirements
[rand.req.dist]
28.5.4
Random number engine class templates
[rand.eng]
28.5.4.1
General
[rand.eng.general]
28.5.4.2
Class template linear_congruential_engine
[rand.eng.lcong]
28.5.4.3
Class template mersenne_twister_engine
[rand.eng.mers]
28.5.4.4
Class template subtract_with_carry_engine
[rand.eng.sub]
28.5.5
Random number engine adaptor class templates
[rand.adapt]
28.5.5.1
In general
[rand.adapt.general]
28.5.5.2
Class template discard_block_engine
[rand.adapt.disc]
28.5.5.3
Class template independent_bits_engine
[rand.adapt.ibits]
28.5.5.4
Class template shuffle_order_engine
[rand.adapt.shuf]
28.5.6
Engines and engine adaptors with predefined parameters
[rand.predef]
28.5.7
Class random_device
[rand.device]
28.5.8
Utilities
[rand.util]
28.5.8.1
Class seed_seq
[rand.util.seedseq]
28.5.8.2
Function template generate_canonical
[rand.util.canonical]
28.5.9
Random number distribution class templates
[rand.dist]
28.5.9.1
In general
[rand.dist.general]
28.5.9.2
Uniform distributions
[rand.dist.uni]
28.5.9.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
28.5.9.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
28.5.9.3
Bernoulli distributions
[rand.dist.bern]
28.5.9.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
28.5.9.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
28.5.9.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
28.5.9.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
28.5.9.4
Poisson distributions
[rand.dist.pois]
28.5.9.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
28.5.9.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
28.5.9.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
28.5.9.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
28.5.9.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
28.5.9.5
Normal distributions
[rand.dist.norm]
28.5.9.5.1
Class template normal_distribution
[rand.dist.norm.normal]
28.5.9.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
28.5.9.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
28.5.9.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
28.5.9.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
28.5.9.5.6
Class template student_t_distribution
[rand.dist.norm.t]
28.5.9.6
Sampling distributions
[rand.dist.samp]
28.5.9.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
28.5.9.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
28.5.9.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
28.5.10
Low-quality random number generation
[c.math.rand]
28.6
Numeric arrays
[numarray]
28.6.1
Header synopsis
[valarray.syn]
28.6.2
Class template valarray
[template.valarray]
28.6.2.1
Overview
[template.valarray.overview]
28.6.2.2
Constructors
[valarray.cons]
28.6.2.3
Assignment
[valarray.assign]
28.6.2.4
Element access
[valarray.access]
28.6.2.5
Subset operations
[valarray.sub]
28.6.2.6
Unary operators
[valarray.unary]
28.6.2.7
Compound assignment
[valarray.cassign]
28.6.2.8
Member functions
[valarray.members]
28.6.3
valarray non-member operations
[valarray.nonmembers]
28.6.3.1
Binary operators
[valarray.binary]
28.6.3.2
Logical operators
[valarray.comparison]
28.6.3.3
Transcendentals
[valarray.transcend]
28.6.3.4
Specialized algorithms
[valarray.special]
28.6.4
Class slice
[class.slice]
28.6.4.1
Overview
[class.slice.overview]
28.6.4.2
Constructors
[cons.slice]
28.6.4.3
Access functions
[slice.access]
28.6.4.4
Operators
[slice.ops]
28.6.5
Class template slice_array
[template.slice.array]
28.6.5.1
Overview
[template.slice.array.overview]
28.6.5.2
Assignment
[slice.arr.assign]
28.6.5.3
Compound assignment
[slice.arr.comp.assign]
28.6.5.4
Fill function
[slice.arr.fill]
28.6.6
The gslice class
[class.gslice]
28.6.6.1
Overview
[class.gslice.overview]
28.6.6.2
Constructors
[gslice.cons]
28.6.6.3
Access functions
[gslice.access]
28.6.7
Class template gslice_array
[template.gslice.array]
28.6.7.1
Overview
[template.gslice.array.overview]
28.6.7.2
Assignment
[gslice.array.assign]
28.6.7.3
Compound assignment
[gslice.array.comp.assign]
28.6.7.4
Fill function
[gslice.array.fill]
28.6.8
Class template mask_array
[template.mask.array]
28.6.8.1
Overview
[template.mask.array.overview]
28.6.8.2
Assignment
[mask.array.assign]
28.6.8.3
Compound assignment
[mask.array.comp.assign]
28.6.8.4
Fill function
[mask.array.fill]
28.6.9
Class template indirect_array
[template.indirect.array]
28.6.9.1
Overview
[template.indirect.array.overview]
28.6.9.2
Assignment
[indirect.array.assign]
28.6.9.3
Compound assignment
[indirect.array.comp.assign]
28.6.9.4
Fill function
[indirect.array.fill]
28.6.10
valarray range access
[valarray.range]
28.7
Mathematical functions for floating-point types
[c.math]
28.7.1
Header synopsis
[cmath.syn]
28.7.2
Absolute values
[c.math.abs]
28.7.3
Three-dimensional hypotenuse
[c.math.hypot3]
28.7.4
Linear interpolation
[c.math.lerp]
28.7.5
Classification / comparison functions
[c.math.fpclass]
28.7.6
Mathematical special functions
[sf.cmath]
28.7.6.1
General
[sf.cmath.general]
28.7.6.2
Associated Laguerre polynomials
[sf.cmath.assoc.laguerre]
28.7.6.3
Associated Legendre functions
[sf.cmath.assoc.legendre]
28.7.6.4
Beta function
[sf.cmath.beta]
28.7.6.5
Complete elliptic integral of the first kind
[sf.cmath.comp.ellint.1]
28.7.6.6
Complete elliptic integral of the second kind
[sf.cmath.comp.ellint.2]
28.7.6.7
Complete elliptic integral of the third kind
[sf.cmath.comp.ellint.3]
28.7.6.8
Regular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.i]
28.7.6.9
Cylindrical Bessel functions of the first kind
[sf.cmath.cyl.bessel.j]
28.7.6.10
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.k]
28.7.6.11
Cylindrical Neumann functions
[sf.cmath.cyl.neumann]
28.7.6.12
Incomplete elliptic integral of the first kind
[sf.cmath.ellint.1]
28.7.6.13
Incomplete elliptic integral of the second kind
[sf.cmath.ellint.2]
28.7.6.14
Incomplete elliptic integral of the third kind
[sf.cmath.ellint.3]
28.7.6.15
Exponential integral
[sf.cmath.expint]
28.7.6.16
Hermite polynomials
[sf.cmath.hermite]
28.7.6.17
Laguerre polynomials
[sf.cmath.laguerre]
28.7.6.18
Legendre polynomials
[sf.cmath.legendre]
28.7.6.19
Riemann zeta function
[sf.cmath.riemann.zeta]
28.7.6.20
Spherical Bessel functions of the first kind
[sf.cmath.sph.bessel]
28.7.6.21
Spherical associated Legendre functions
[sf.cmath.sph.legendre]
28.7.6.22
Spherical Neumann functions
[sf.cmath.sph.neumann]
28.8
Numbers
[numbers]
28.8.1
Header synopsis
[numbers.syn]
28.8.2
Mathematical constants
[math.constants]
29
Time library
[time]
29.1
General
[time.general]
29.2
Header synopsis
[time.syn]
29.3
Cpp17Clock requirements
[time.clock.req]
29.4
Time-related traits
[time.traits]
29.4.1
treat_as_floating_point
[time.traits.is.fp]
29.4.2
duration_values
[time.traits.duration.values]
29.4.3
Specializations of common_type
[time.traits.specializations]
29.4.4
Class template is_clock
[time.traits.is.clock]
29.5
Class template duration
[time.duration]
29.5.1
General
[time.duration.general]
29.5.2
Constructors
[time.duration.cons]
29.5.3
Observer
[time.duration.observer]
29.5.4
Arithmetic
[time.duration.arithmetic]
29.5.5
Special values
[time.duration.special]
29.5.6
Non-member arithmetic
[time.duration.nonmember]
29.5.7
Comparisons
[time.duration.comparisons]
29.5.8
Conversions
[time.duration.cast]
29.5.9
Suffixes for duration literals
[time.duration.literals]
29.5.10
Algorithms
[time.duration.alg]
29.5.11
I/O
[time.duration.io]
29.6
Class template time_point
[time.point]
29.6.1
General
[time.point.general]
29.6.2
Constructors
[time.point.cons]
29.6.3
Observer
[time.point.observer]
29.6.4
Arithmetic
[time.point.arithmetic]
29.6.5
Special values
[time.point.special]
29.6.6
Non-member arithmetic
[time.point.nonmember]
29.6.7
Comparisons
[time.point.comparisons]
29.6.8
Conversions
[time.point.cast]
29.7
Clocks
[time.clock]
29.7.1
General
[time.clock.general]
29.7.2
Class system_clock
[time.clock.system]
29.7.2.1
Overview
[time.clock.system.overview]
29.7.2.2
Members
[time.clock.system.members]
29.7.2.3
Non-member functions
[time.clock.system.nonmembers]
29.7.3
Class utc_clock
[time.clock.utc]
29.7.3.1
Overview
[time.clock.utc.overview]
29.7.3.2
Member functions
[time.clock.utc.members]
29.7.3.3
Non-member functions
[time.clock.utc.nonmembers]
29.7.4
Class tai_clock
[time.clock.tai]
29.7.4.1
Overview
[time.clock.tai.overview]
29.7.4.2
Member functions
[time.clock.tai.members]
29.7.4.3
Non-member functions
[time.clock.tai.nonmembers]
29.7.5
Class gps_clock
[time.clock.gps]
29.7.5.1
Overview
[time.clock.gps.overview]
29.7.5.2
Member functions
[time.clock.gps.members]
29.7.5.3
Non-member functions
[time.clock.gps.nonmembers]
29.7.6
Type file_clock
[time.clock.file]
29.7.6.1
Overview
[time.clock.file.overview]
29.7.6.2
Member functions
[time.clock.file.members]
29.7.6.3
Non-member functions
[time.clock.file.nonmembers]
29.7.7
Class steady_clock
[time.clock.steady]
29.7.8
Class high_resolution_clock
[time.clock.hires]
29.7.9
Local time
[time.clock.local]
29.7.10
time_point conversions
[time.clock.cast]
29.7.10.1
Class template clock_time_conversion
[time.clock.conv]
29.7.10.2
Identity conversions
[time.clock.cast.id]
29.7.10.3
Conversions between system_clock and utc_clock
[time.clock.cast.sys.utc]
29.7.10.4
Conversions between system_clock and other clocks
[time.clock.cast.sys]
29.7.10.5
Conversions between utc_clock and other clocks
[time.clock.cast.utc]
29.7.10.6
Function template clock_cast
[time.clock.cast.fn]
29.8
The civil calendar
[time.cal]
29.8.1
In general
[time.cal.general]
29.8.2
Class last_spec
[time.cal.last]
29.8.3
Class day
[time.cal.day]
29.8.3.1
Overview
[time.cal.day.overview]
29.8.3.2
Member functions
[time.cal.day.members]
29.8.3.3
Non-member functions
[time.cal.day.nonmembers]
29.8.4
Class month
[time.cal.month]
29.8.4.1
Overview
[time.cal.month.overview]
29.8.4.2
Member functions
[time.cal.month.members]
29.8.4.3
Non-member functions
[time.cal.month.nonmembers]
29.8.5
Class year
[time.cal.year]
29.8.5.1
Overview
[time.cal.year.overview]
29.8.5.2
Member functions
[time.cal.year.members]
29.8.5.3
Non-member functions
[time.cal.year.nonmembers]
29.8.6
Class weekday
[time.cal.wd]
29.8.6.1
Overview
[time.cal.wd.overview]
29.8.6.2
Member functions
[time.cal.wd.members]
29.8.6.3
Non-member functions
[time.cal.wd.nonmembers]
29.8.7
Class weekday_indexed
[time.cal.wdidx]
29.8.7.1
Overview
[time.cal.wdidx.overview]
29.8.7.2
Member functions
[time.cal.wdidx.members]
29.8.7.3
Non-member functions
[time.cal.wdidx.nonmembers]
29.8.8
Class weekday_last
[time.cal.wdlast]
29.8.8.1
Overview
[time.cal.wdlast.overview]
29.8.8.2
Member functions
[time.cal.wdlast.members]
29.8.8.3
Non-member functions
[time.cal.wdlast.nonmembers]
29.8.9
Class month_day
[time.cal.md]
29.8.9.1
Overview
[time.cal.md.overview]
29.8.9.2
Member functions
[time.cal.md.members]
29.8.9.3
Non-member functions
[time.cal.md.nonmembers]
29.8.10
Class month_day_last
[time.cal.mdlast]
29.8.11
Class month_weekday
[time.cal.mwd]
29.8.11.1
Overview
[time.cal.mwd.overview]
29.8.11.2
Member functions
[time.cal.mwd.members]
29.8.11.3
Non-member functions
[time.cal.mwd.nonmembers]
29.8.12
Class month_weekday_last
[time.cal.mwdlast]
29.8.12.1
Overview
[time.cal.mwdlast.overview]
29.8.12.2
Member functions
[time.cal.mwdlast.members]
29.8.12.3
Non-member functions
[time.cal.mwdlast.nonmembers]
29.8.13
Class year_month
[time.cal.ym]
29.8.13.1
Overview
[time.cal.ym.overview]
29.8.13.2
Member functions
[time.cal.ym.members]
29.8.13.3
Non-member functions
[time.cal.ym.nonmembers]
29.8.14
Class year_month_day
[time.cal.ymd]
29.8.14.1
Overview
[time.cal.ymd.overview]
29.8.14.2
Member functions
[time.cal.ymd.members]
29.8.14.3
Non-member functions
[time.cal.ymd.nonmembers]
29.8.15
Class year_month_day_last
[time.cal.ymdlast]
29.8.15.1
Overview
[time.cal.ymdlast.overview]
29.8.15.2
Member functions
[time.cal.ymdlast.members]
29.8.15.3
Non-member functions
[time.cal.ymdlast.nonmembers]
29.8.16
Class year_month_weekday
[time.cal.ymwd]
29.8.16.1
Overview
[time.cal.ymwd.overview]
29.8.16.2
Member functions
[time.cal.ymwd.members]
29.8.16.3
Non-member functions
[time.cal.ymwd.nonmembers]
29.8.17
Class year_month_weekday_last
[time.cal.ymwdlast]
29.8.17.1
Overview
[time.cal.ymwdlast.overview]
29.8.17.2
Member functions
[time.cal.ymwdlast.members]
29.8.17.3
Non-member functions
[time.cal.ymwdlast.nonmembers]
29.8.18
Conventional syntax operators
[time.cal.operators]
29.9
Class template hh_mm_ss
[time.hms]
29.9.1
Overview
[time.hms.overview]
29.9.2
Members
[time.hms.members]
29.9.3
Non-members
[time.hms.nonmembers]
29.10
12/24 hours functions
[time.12]
29.11
Time zones
[time.zone]
29.11.1
In general
[time.zone.general]
29.11.2
Time zone database
[time.zone.db]
29.11.2.1
Class tzdb
[time.zone.db.tzdb]
29.11.2.2
Class tzdb_list
[time.zone.db.list]
29.11.2.3
Time zone database access
[time.zone.db.access]
29.11.2.4
Remote time zone database support
[time.zone.db.remote]
29.11.3
Exception classes
[time.zone.exception]
29.11.3.1
Class nonexistent_local_time
[time.zone.exception.nonexist]
29.11.3.2
Class ambiguous_local_time
[time.zone.exception.ambig]
29.11.4
Information classes
[time.zone.info]
29.11.4.1
Class sys_info
[time.zone.info.sys]
29.11.4.2
Class local_info
[time.zone.info.local]
29.11.5
Class time_zone
[time.zone.timezone]
29.11.5.1
Overview
[time.zone.overview]
29.11.5.2
Member functions
[time.zone.members]
29.11.5.3
Non-member functions
[time.zone.nonmembers]
29.11.6
Class template zoned_traits
[time.zone.zonedtraits]
29.11.7
Class template zoned_time
[time.zone.zonedtime]
29.11.7.1
Overview
[time.zone.zonedtime.overview]
29.11.7.2
Constructors
[time.zone.zonedtime.ctor]
29.11.7.3
Member functions
[time.zone.zonedtime.members]
29.11.7.4
Non-member functions
[time.zone.zonedtime.nonmembers]
29.11.8
Class leap_second
[time.zone.leap]
29.11.8.1
Overview
[time.zone.leap.overview]
29.11.8.2
Member functions
[time.zone.leap.members]
29.11.8.3
Non-member functions
[time.zone.leap.nonmembers]
29.11.9
Class time_zone_link
[time.zone.link]
29.11.9.1
Overview
[time.zone.link.overview]
29.11.9.2
Member functions
[time.zone.link.members]
29.11.9.3
Non-member functions
[time.zone.link.nonmembers]
29.12
Formatting
[time.format]
29.13
Parsing
[time.parse]
29.14
Header synopsis
[ctime.syn]
30
Localization library
[localization]
30.1
General
[localization.general]
30.2
Header synopsis
[locale.syn]
30.3
Locales
[locales]
30.3.1
Class locale
[locale]
30.3.1.1
General
[locale.general]
30.3.1.2
Types
[locale.types]
30.3.1.2.1
Type locale::category
[locale.category]
30.3.1.2.2
Class locale::facet
[locale.facet]
30.3.1.2.3
Class locale::id
[locale.id]
30.3.1.3
Constructors and destructor
[locale.cons]
30.3.1.4
Members
[locale.members]
30.3.1.5
Operators
[locale.operators]
30.3.1.6
Static members
[locale.statics]
30.3.2
locale globals
[locale.global.templates]
30.3.3
Convenience interfaces
[locale.convenience]
30.3.3.1
Character classification
[classification]
30.3.3.2
Character conversions
[conversions.character]
30.4
Standard locale categories
[locale.categories]
30.4.1
General
[locale.categories.general]
30.4.2
The ctype category
[category.ctype]
30.4.2.1
General
[category.ctype.general]
30.4.2.2
Class template ctype
[locale.ctype]
30.4.2.2.1
General
[locale.ctype.general]
30.4.2.2.2
ctype members
[locale.ctype.members]
30.4.2.2.3
ctype virtual functions
[locale.ctype.virtuals]
30.4.2.3
Class template ctype_byname
[locale.ctype.byname]
30.4.2.4
ctype specialization
[facet.ctype.special]
30.4.2.4.1
General
[facet.ctype.special.general]
30.4.2.4.2
Destructor
[facet.ctype.char.dtor]
30.4.2.4.3
Members
[facet.ctype.char.members]
30.4.2.4.4
Static members
[facet.ctype.char.statics]
30.4.2.4.5
Virtual functions
[facet.ctype.char.virtuals]
30.4.2.5
Class template codecvt
[locale.codecvt]
30.4.2.5.1
General
[locale.codecvt.general]
30.4.2.5.2
Members
[locale.codecvt.members]
30.4.2.5.3
Virtual functions
[locale.codecvt.virtuals]
30.4.2.6
Class template codecvt_byname
[locale.codecvt.byname]
30.4.3
The numeric category
[category.numeric]
30.4.3.1
General
[category.numeric.general]
30.4.3.2
Class template num_get
[locale.num.get]
30.4.3.2.1
General
[locale.num.get.general]
30.4.3.2.2
Members
[facet.num.get.members]
30.4.3.2.3
Virtual functions
[facet.num.get.virtuals]
30.4.3.3
Class template num_put
[locale.nm.put]
30.4.3.3.1
General
[locale.nm.put.general]
30.4.3.3.2
Members
[facet.num.put.members]
30.4.3.3.3
Virtual functions
[facet.num.put.virtuals]
30.4.4
The numeric punctuation facet
[facet.numpunct]
30.4.4.1
Class template numpunct
[locale.numpunct]
30.4.4.1.1
General
[locale.numpunct.general]
30.4.4.1.2
Members
[facet.numpunct.members]
30.4.4.1.3
Virtual functions
[facet.numpunct.virtuals]
30.4.4.2
Class template numpunct_byname
[locale.numpunct.byname]
30.4.5
The collate category
[category.collate]
30.4.5.1
Class template collate
[locale.collate]
30.4.5.1.1
General
[locale.collate.general]
30.4.5.1.2
Members
[locale.collate.members]
30.4.5.1.3
Virtual functions
[locale.collate.virtuals]
30.4.5.2
Class template collate_byname
[locale.collate.byname]
30.4.6
The time category
[category.time]
30.4.6.1
General
[category.time.general]
30.4.6.2
Class template time_get
[locale.time.get]
30.4.6.2.1
General
[locale.time.get.general]
30.4.6.2.2
Members
[locale.time.get.members]
30.4.6.2.3
Virtual functions
[locale.time.get.virtuals]
30.4.6.3
Class template time_get_byname
[locale.time.get.byname]
30.4.6.4
Class template time_put
[locale.time.put]
30.4.6.4.1
Members
[locale.time.put.members]
30.4.6.4.2
Virtual functions
[locale.time.put.virtuals]
30.4.6.5
Class template time_put_byname
[locale.time.put.byname]
30.4.7
The monetary category
[category.monetary]
30.4.7.1
General
[category.monetary.general]
30.4.7.2
Class template money_get
[locale.money.get]
30.4.7.2.1
Members
[locale.money.get.members]
30.4.7.2.2
Virtual functions
[locale.money.get.virtuals]
30.4.7.3
Class template money_put
[locale.money.put]
30.4.7.3.1
Members
[locale.money.put.members]
30.4.7.3.2
Virtual functions
[locale.money.put.virtuals]
30.4.7.4
Class template moneypunct
[locale.moneypunct]
30.4.7.4.1
General
[locale.moneypunct.general]
30.4.7.4.2
Members
[locale.moneypunct.members]
30.4.7.4.3
Virtual functions
[locale.moneypunct.virtuals]
30.4.7.5
Class template moneypunct_byname
[locale.moneypunct.byname]
30.4.8
The message retrieval category
[category.messages]
30.4.8.1
General
[category.messages.general]
30.4.8.2
Class template messages
[locale.messages]
30.4.8.2.1
General
[locale.messages.general]
30.4.8.2.2
Members
[locale.messages.members]
30.4.8.2.3
Virtual functions
[locale.messages.virtuals]
30.4.8.3
Class template messages_byname
[locale.messages.byname]
30.5
C library locales
[c.locales]
30.5.1
Header synopsis
[clocale.syn]
30.5.2
Data races
[clocale.data.races]
31
Input/output library
[input.output]
31.1
General
[input.output.general]
31.2
Iostreams requirements
[iostreams.requirements]
31.2.1
Imbue limitations
[iostream.limits.imbue]
31.2.2
Types
[stream.types]
31.2.3
Positioning type limitations
[iostreams.limits.pos]
31.2.4
Thread safety
[iostreams.threadsafety]
31.3
Forward declarations
[iostream.forward]
31.3.1
Header synopsis
[iosfwd.syn]
31.3.2
Overview
[iostream.forward.overview]
31.4
Standard iostream objects
[iostream.objects]
31.4.1
Header synopsis
[iostream.syn]
31.4.2
Overview
[iostream.objects.overview]
31.4.3
Narrow stream objects
[narrow.stream.objects]
31.4.4
Wide stream objects
[wide.stream.objects]
31.5
Iostreams base classes
[iostreams.base]
31.5.1
Header synopsis
[ios.syn]
31.5.2
Class ios_base
[ios.base]
31.5.2.1
General
[ios.base.general]
31.5.2.2
Types
[ios.types]
31.5.2.2.1
Class ios_base::failure
[ios.failure]
31.5.2.2.2
Type ios_base::fmtflags
[ios.fmtflags]
31.5.2.2.3
Type ios_base::iostate
[ios.iostate]
31.5.2.2.4
Type ios_base::openmode
[ios.openmode]
31.5.2.2.5
Type ios_base::seekdir
[ios.seekdir]
31.5.2.2.6
Class ios_base::Init
[ios.init]
31.5.2.3
State functions
[fmtflags.state]
31.5.2.4
Functions
[ios.base.locales]
31.5.2.5
Static members
[ios.members.static]
31.5.2.6
Storage functions
[ios.base.storage]
31.5.2.7
Callbacks
[ios.base.callback]
31.5.2.8
Constructors and destructor
[ios.base.cons]
31.5.3
Class template fpos
[fpos]
31.5.3.1
Members
[fpos.members]
31.5.3.2
Requirements
[fpos.operations]
31.5.4
Class template basic_ios
[ios]
31.5.4.1
Overview
[ios.overview]
31.5.4.2
Constructors
[basic.ios.cons]
31.5.4.3
Member functions
[basic.ios.members]
31.5.4.4
Flags functions
[iostate.flags]
31.5.5
ios_base manipulators
[std.ios.manip]
31.5.5.1
fmtflags manipulators
[fmtflags.manip]
31.5.5.2
adjustfield manipulators
[adjustfield.manip]
31.5.5.3
basefield manipulators
[basefield.manip]
31.5.5.4
floatfield manipulators
[floatfield.manip]
31.5.6
Error reporting
[error.reporting]
31.6
Stream buffers
[stream.buffers]
31.6.1
Header synopsis
[streambuf.syn]
31.6.2
Stream buffer requirements
[streambuf.reqts]
31.6.3
Class template basic_streambuf
[streambuf]
31.6.3.1
General
[streambuf.general]
31.6.3.2
Constructors
[streambuf.cons]
31.6.3.3
Public member functions
[streambuf.members]
31.6.3.3.1
Locales
[streambuf.locales]
31.6.3.3.2
Buffer management and positioning
[streambuf.buffer]
31.6.3.3.3
Get area
[streambuf.pub.get]
31.6.3.3.4
Putback
[streambuf.pub.pback]
31.6.3.3.5
Put area
[streambuf.pub.put]
31.6.3.4
Protected member functions
[streambuf.protected]
31.6.3.4.1
Assignment
[streambuf.assign]
31.6.3.4.2
Get area access
[streambuf.get.area]
31.6.3.4.3
Put area access
[streambuf.put.area]
31.6.3.5
Virtual functions
[streambuf.virtuals]
31.6.3.5.1
Locales
[streambuf.virt.locales]
31.6.3.5.2
Buffer management and positioning
[streambuf.virt.buffer]
31.6.3.5.3
Get area
[streambuf.virt.get]
31.6.3.5.4
Putback
[streambuf.virt.pback]
31.6.3.5.5
Put area
[streambuf.virt.put]
31.7
Formatting and manipulators
[iostream.format]
31.7.1
Header synopsis
[istream.syn]
31.7.2
Header synopsis
[ostream.syn]
31.7.3
Header synopsis
[iomanip.syn]
31.7.4
Header synopsis
[print.syn]
31.7.5
Input streams
[input.streams]
31.7.5.1
General
[input.streams.general]
31.7.5.2
Class template basic_istream
[istream]
31.7.5.2.1
General
[istream.general]
31.7.5.2.2
Constructors
[istream.cons]
31.7.5.2.3
Assignment and swap
[istream.assign]
31.7.5.2.4
Class basic_istream::sentry
[istream.sentry]
31.7.5.3
Formatted input functions
[istream.formatted]
31.7.5.3.1
Common requirements
[istream.formatted.reqmts]
31.7.5.3.2
Arithmetic extractors
[istream.formatted.arithmetic]
31.7.5.3.3
basic_istream::operator>>
[istream.extractors]
31.7.5.4
Unformatted input functions
[istream.unformatted]
31.7.5.5
Standard basic_istream manipulators
[istream.manip]
31.7.5.6
Rvalue stream extraction
[istream.rvalue]
31.7.5.7
Class template basic_iostream
[iostreamclass]
31.7.5.7.1
General
[iostreamclass.general]
31.7.5.7.2
Constructors
[iostream.cons]
31.7.5.7.3
Destructor
[iostream.dest]
31.7.5.7.4
Assignment and swap
[iostream.assign]
31.7.6
Output streams
[output.streams]
31.7.6.1
General
[output.streams.general]
31.7.6.2
Class template basic_ostream
[ostream]
31.7.6.2.1
General
[ostream.general]
31.7.6.2.2
Constructors
[ostream.cons]
31.7.6.2.3
Assignment and swap
[ostream.assign]
31.7.6.2.4
Class basic_ostream::sentry
[ostream.sentry]
31.7.6.2.5
Seek members
[ostream.seeks]
31.7.6.3
Formatted output functions
[ostream.formatted]
31.7.6.3.1
Common requirements
[ostream.formatted.reqmts]
31.7.6.3.2
Arithmetic inserters
[ostream.inserters.arithmetic]
31.7.6.3.3
basic_ostream::operator<<
[ostream.inserters]
31.7.6.3.4
Character inserter function templates
[ostream.inserters.character]
31.7.6.3.5
Print
[ostream.formatted.print]
31.7.6.4
Unformatted output functions
[ostream.unformatted]
31.7.6.5
Standard manipulators
[ostream.manip]
31.7.6.6
Rvalue stream insertion
[ostream.rvalue]
31.7.7
Standard manipulators
[std.manip]
31.7.8
Extended manipulators
[ext.manip]
31.7.9
Quoted manipulators
[quoted.manip]
31.7.10
Print functions
[print.fun]
31.8
String-based streams
[string.streams]
31.8.1
Header synopsis
[sstream.syn]
31.8.2
Class template basic_stringbuf
[stringbuf]
31.8.2.1
General
[stringbuf.general]
31.8.2.2
Constructors
[stringbuf.cons]
31.8.2.3
Assignment and swap
[stringbuf.assign]
31.8.2.4
Member functions
[stringbuf.members]
31.8.2.5
Overridden virtual functions
[stringbuf.virtuals]
31.8.3
Class template basic_istringstream
[istringstream]
31.8.3.1
General
[istringstream.general]
31.8.3.2
Constructors
[istringstream.cons]
31.8.3.3
Swap
[istringstream.swap]
31.8.3.4
Member functions
[istringstream.members]
31.8.4
Class template basic_ostringstream
[ostringstream]
31.8.4.1
General
[ostringstream.general]
31.8.4.2
Constructors
[ostringstream.cons]
31.8.4.3
Swap
[ostringstream.swap]
31.8.4.4
Member functions
[ostringstream.members]
31.8.5
Class template basic_stringstream
[stringstream]
31.8.5.1
General
[stringstream.general]
31.8.5.2
Constructors
[stringstream.cons]
31.8.5.3
Swap
[stringstream.swap]
31.8.5.4
Member functions
[stringstream.members]
31.9
Span-based streams
[span.streams]
31.9.1
Overview
[span.streams.overview]
31.9.2
Header synopsis
[spanstream.syn]
31.9.3
Class template basic_spanbuf
[spanbuf]
31.9.3.1
General
[spanbuf.general]
31.9.3.2
Constructors
[spanbuf.cons]
31.9.3.3
Assignment and swap
[spanbuf.assign]
31.9.3.4
Member functions
[spanbuf.members]
31.9.3.5
Overridden virtual functions
[spanbuf.virtuals]
31.9.4
Class template basic_ispanstream
[ispanstream]
31.9.4.1
General
[ispanstream.general]
31.9.4.2
Constructors
[ispanstream.cons]
31.9.4.3
Swap
[ispanstream.swap]
31.9.4.4
Member functions
[ispanstream.members]
31.9.5
Class template basic_ospanstream
[ospanstream]
31.9.5.1
General
[ospanstream.general]
31.9.5.2
Constructors
[ospanstream.cons]
31.9.5.3
Swap
[ospanstream.swap]
31.9.5.4
Member functions
[ospanstream.members]
31.9.6
Class template basic_spanstream
[spanstream]
31.9.6.1
General
[spanstream.general]
31.9.6.2
Constructors
[spanstream.cons]
31.9.6.3
Swap
[spanstream.swap]
31.9.6.4
Member functions
[spanstream.members]
31.10
File-based streams
[file.streams]
31.10.1
Header synopsis
[fstream.syn]
31.10.2
Class template basic_filebuf
[filebuf]
31.10.2.1
General
[filebuf.general]
31.10.2.2
Constructors
[filebuf.cons]
31.10.2.3
Assignment and swap
[filebuf.assign]
31.10.2.4
Member functions
[filebuf.members]
31.10.2.5
Overridden virtual functions
[filebuf.virtuals]
31.10.3
Class template basic_ifstream
[ifstream]
31.10.3.1
General
[ifstream.general]
31.10.3.2
Constructors
[ifstream.cons]
31.10.3.3
Swap
[ifstream.swap]
31.10.3.4
Member functions
[ifstream.members]
31.10.4
Class template basic_ofstream
[ofstream]
31.10.4.1
General
[ofstream.general]
31.10.4.2
Constructors
[ofstream.cons]
31.10.4.3
Swap
[ofstream.swap]
31.10.4.4
Member functions
[ofstream.members]
31.10.5
Class template basic_fstream
[fstream]
31.10.5.1
General
[fstream.general]
31.10.5.2
Constructors
[fstream.cons]
31.10.5.3
Swap
[fstream.swap]
31.10.5.4
Member functions
[fstream.members]
31.11
Synchronized output streams
[syncstream]
31.11.1
Header synopsis
[syncstream.syn]
31.11.2
Class template basic_syncbuf
[syncstream.syncbuf]
31.11.2.1
Overview
[syncstream.syncbuf.overview]
31.11.2.2
Construction and destruction
[syncstream.syncbuf.cons]
31.11.2.3
Assignment and swap
[syncstream.syncbuf.assign]
31.11.2.4
Member functions
[syncstream.syncbuf.members]
31.11.2.5
Overridden virtual functions
[syncstream.syncbuf.virtuals]
31.11.2.6
Specialized algorithms
[syncstream.syncbuf.special]
31.11.3
Class template basic_osyncstream
[syncstream.osyncstream]
31.11.3.1
Overview
[syncstream.osyncstream.overview]
31.11.3.2
Construction and destruction
[syncstream.osyncstream.cons]
31.11.3.3
Member functions
[syncstream.osyncstream.members]
31.12
File systems
[filesystems]
31.12.1
General
[fs.general]
31.12.2
Conformance
[fs.conformance]
31.12.2.1
General
[fs.conformance.general]
31.12.2.2
POSIX conformance
[fs.conform.9945]
31.12.2.3
Operating system dependent behavior conformance
[fs.conform.os]
31.12.2.4
File system race behavior
[fs.race.behavior]
31.12.3
Requirements
[fs.req]
31.12.4
Header synopsis
[fs.filesystem.syn]
31.12.5
Error reporting
[fs.err.report]
31.12.6
Class path
[fs.class.path]
31.12.6.1
General
[fs.class.path.general]
31.12.6.2
Generic pathname format
[fs.path.generic]
31.12.6.3
Conversions
[fs.path.cvt]
31.12.6.3.1
Argument format conversions
[fs.path.fmt.cvt]
31.12.6.3.2
Type and encoding conversions
[fs.path.type.cvt]
31.12.6.4
Requirements
[fs.path.req]
31.12.6.5
Members
[fs.path.member]
31.12.6.5.1
Constructors
[fs.path.construct]
31.12.6.5.2
Assignments
[fs.path.assign]
31.12.6.5.3
Appends
[fs.path.append]
31.12.6.5.4
Concatenation
[fs.path.concat]
31.12.6.5.5
Modifiers
[fs.path.modifiers]
31.12.6.5.6
Native format observers
[fs.path.native.obs]
31.12.6.5.7
Generic format observers
[fs.path.generic.obs]
31.12.6.5.8
Compare
[fs.path.compare]
31.12.6.5.9
Decomposition
[fs.path.decompose]
31.12.6.5.10
Query
[fs.path.query]
31.12.6.5.11
Generation
[fs.path.gen]
31.12.6.6
Iterators
[fs.path.itr]
31.12.6.7
Inserter and extractor
[fs.path.io]
31.12.6.8
Non-member functions
[fs.path.nonmember]
31.12.6.9
Hash support
[fs.path.hash]
31.12.7
Class filesystem_error
[fs.class.filesystem.error]
31.12.7.1
General
[fs.class.filesystem.error.general]
31.12.7.2
Members
[fs.filesystem.error.members]
31.12.8
Enumerations
[fs.enum]
31.12.8.1
Enum path::format
[fs.enum.path.format]
31.12.8.2
Enum class file_type
[fs.enum.file.type]
31.12.8.3
Enum class copy_options
[fs.enum.copy.opts]
31.12.8.4
Enum class perms
[fs.enum.perms]
31.12.8.5
Enum class perm_options
[fs.enum.perm.opts]
31.12.8.6
Enum class directory_options
[fs.enum.dir.opts]
31.12.9
Class file_status
[fs.class.file.status]
31.12.9.1
General
[fs.class.file.status.general]
31.12.9.2
Constructors
[fs.file.status.cons]
31.12.9.3
Observers
[fs.file.status.obs]
31.12.9.4
Modifiers
[fs.file.status.mods]
31.12.10
Class directory_entry
[fs.class.directory.entry]
31.12.10.1
General
[fs.class.directory.entry.general]
31.12.10.2
Constructors
[fs.dir.entry.cons]
31.12.10.3
Modifiers
[fs.dir.entry.mods]
31.12.10.4
Observers
[fs.dir.entry.obs]
31.12.10.5
Inserter
[fs.dir.entry.io]
31.12.11
Class directory_iterator
[fs.class.directory.iterator]
31.12.11.1
General
[fs.class.directory.iterator.general]
31.12.11.2
Members
[fs.dir.itr.members]
31.12.11.3
Non-member functions
[fs.dir.itr.nonmembers]
31.12.12
Class recursive_directory_iterator
[fs.class.rec.dir.itr]
31.12.12.1
General
[fs.class.rec.dir.itr.general]
31.12.12.2
Members
[fs.rec.dir.itr.members]
31.12.12.3
Non-member functions
[fs.rec.dir.itr.nonmembers]
31.12.13
Filesystem operation functions
[fs.op.funcs]
31.12.13.1
General
[fs.op.funcs.general]
31.12.13.2
Absolute
[fs.op.absolute]
31.12.13.3
Canonical
[fs.op.canonical]
31.12.13.4
Copy
[fs.op.copy]
31.12.13.5
Copy file
[fs.op.copy.file]
31.12.13.6
Copy symlink
[fs.op.copy.symlink]
31.12.13.7
Create directories
[fs.op.create.directories]
31.12.13.8
Create directory
[fs.op.create.directory]
31.12.13.9
Create directory symlink
[fs.op.create.dir.symlk]
31.12.13.10
Create hard link
[fs.op.create.hard.lk]
31.12.13.11
Create symlink
[fs.op.create.symlink]
31.12.13.12
Current path
[fs.op.current.path]
31.12.13.13
Equivalent
[fs.op.equivalent]
31.12.13.14
Exists
[fs.op.exists]
31.12.13.15
File size
[fs.op.file.size]
31.12.13.16
Hard link count
[fs.op.hard.lk.ct]
31.12.13.17
Is block file
[fs.op.is.block.file]
31.12.13.18
Is character file
[fs.op.is.char.file]
31.12.13.19
Is directory
[fs.op.is.directory]
31.12.13.20
Is empty
[fs.op.is.empty]
31.12.13.21
Is fifo
[fs.op.is.fifo]
31.12.13.22
Is other
[fs.op.is.other]
31.12.13.23
Is regular file
[fs.op.is.regular.file]
31.12.13.24
Is socket
[fs.op.is.socket]
31.12.13.25
Is symlink
[fs.op.is.symlink]
31.12.13.26
Last write time
[fs.op.last.write.time]
31.12.13.27
Permissions
[fs.op.permissions]
31.12.13.28
Proximate
[fs.op.proximate]
31.12.13.29
Read symlink
[fs.op.read.symlink]
31.12.13.30
Relative
[fs.op.relative]
31.12.13.31
Remove
[fs.op.remove]
31.12.13.32
Remove all
[fs.op.remove.all]
31.12.13.33
Rename
[fs.op.rename]
31.12.13.34
Resize file
[fs.op.resize.file]
31.12.13.35
Space
[fs.op.space]
31.12.13.36
Status
[fs.op.status]
31.12.13.37
Status known
[fs.op.status.known]
31.12.13.38
Symlink status
[fs.op.symlink.status]
31.12.13.39
Temporary directory path
[fs.op.temp.dir.path]
31.12.13.40
Weakly canonical
[fs.op.weakly.canonical]
31.13
C library files
[c.files]
31.13.1
Header synopsis
[cstdio.syn]
31.13.2
Header synopsis
[cinttypes.syn]
32
Regular expressions library
[re]
32.1
General
[re.general]
32.2
Requirements
[re.req]
32.3
Header synopsis
[re.syn]
32.4
Namespace std::regex_constants
[re.const]
32.4.1
General
[re.const.general]
32.4.2
Bitmask type syntax_option_type
[re.synopt]
32.4.3
Bitmask type match_flag_type
[re.matchflag]
32.4.4
Implementation-defined error_type
[re.err]
32.5
Class regex_error
[re.badexp]
32.6
Class template regex_traits
[re.traits]
32.7
Class template basic_regex
[re.regex]
32.7.1
General
[re.regex.general]
32.7.2
Constructors
[re.regex.construct]
32.7.3
Assignment
[re.regex.assign]
32.7.4
Constant operations
[re.regex.operations]
32.7.5
Locale
[re.regex.locale]
32.7.6
Swap
[re.regex.swap]
32.7.7
Non-member functions
[re.regex.nonmemb]
32.8
Class template sub_match
[re.submatch]
32.8.1
General
[re.submatch.general]
32.8.2
Members
[re.submatch.members]
32.8.3
Non-member operators
[re.submatch.op]
32.9
Class template match_results
[re.results]
32.9.1
General
[re.results.general]
32.9.2
Constructors
[re.results.const]
32.9.3
State
[re.results.state]
32.9.4
Size
[re.results.size]
32.9.5
Element access
[re.results.acc]
32.9.6
Formatting
[re.results.form]
32.9.7
Allocator
[re.results.all]
32.9.8
Swap
[re.results.swap]
32.9.9
Non-member functions
[re.results.nonmember]
32.10
Regular expression algorithms
[re.alg]
32.10.1
Exceptions
[re.except]
32.10.2
regex_match
[re.alg.match]
32.10.3
regex_search
[re.alg.search]
32.10.4
regex_replace
[re.alg.replace]
32.11
Regular expression iterators
[re.iter]
32.11.1
Class template regex_iterator
[re.regiter]
32.11.1.1
General
[re.regiter.general]
32.11.1.2
Constructors
[re.regiter.cnstr]
32.11.1.3
Comparisons
[re.regiter.comp]
32.11.1.4
Indirection
[re.regiter.deref]
32.11.1.5
Increment
[re.regiter.incr]
32.11.2
Class template regex_token_iterator
[re.tokiter]
32.11.2.1
General
[re.tokiter.general]
32.11.2.2
Constructors
[re.tokiter.cnstr]
32.11.2.3
Comparisons
[re.tokiter.comp]
32.11.2.4
Indirection
[re.tokiter.deref]
32.11.2.5
Increment
[re.tokiter.incr]
32.12
Modified ECMAScript regular expression grammar
[re.grammar]
33
Concurrency support library
[thread]
33.1
General
[thread.general]
33.2
Requirements
[thread.req]
33.2.1
Template parameter names
[thread.req.paramname]
33.2.2
Exceptions
[thread.req.exception]
33.2.3
Native handles
[thread.req.native]
33.2.4
Timing specifications
[thread.req.timing]
33.2.5
Requirements for Cpp17Lockable types
[thread.req.lockable]
33.2.5.1
In general
[thread.req.lockable.general]
33.2.5.2
Cpp17BasicLockable requirements
[thread.req.lockable.basic]
33.2.5.3
Cpp17Lockable requirements
[thread.req.lockable.req]
33.2.5.4
Cpp17TimedLockable requirements
[thread.req.lockable.timed]
33.2.5.5
Cpp17SharedLockable requirements
[thread.req.lockable.shared]
33.2.5.6
Cpp17SharedTimedLockable requirements
[thread.req.lockable.shared.timed]
33.3
Stop tokens
[thread.stoptoken]
33.3.1
Introduction
[thread.stoptoken.intro]
33.3.2
Header synopsis
[thread.stoptoken.syn]
33.3.3
Class stop_token
[stoptoken]
33.3.3.1
General
[stoptoken.general]
33.3.3.2
Constructors, copy, and assignment
[stoptoken.cons]
33.3.3.3
Members
[stoptoken.mem]
33.3.3.4
Non-member functions
[stoptoken.nonmembers]
33.3.4
Class stop_source
[stopsource]
33.3.4.1
General
[stopsource.general]
33.3.4.2
Constructors, copy, and assignment
[stopsource.cons]
33.3.4.3
Members
[stopsource.mem]
33.3.4.4
Non-member functions
[stopsource.nonmembers]
33.3.5
Class template stop_callback
[stopcallback]
33.3.5.1
General
[stopcallback.general]
33.3.5.2
Constructors and destructor
[stopcallback.cons]
33.4
Threads
[thread.threads]
33.4.1
General
[thread.threads.general]
33.4.2
Header synopsis
[thread.syn]
33.4.3
Class thread
[thread.thread.class]
33.4.3.1
General
[thread.thread.class.general]
33.4.3.2
Class thread::id
[thread.thread.id]
33.4.3.3
Constructors
[thread.thread.constr]
33.4.3.4
Destructor
[thread.thread.destr]
33.4.3.5
Assignment
[thread.thread.assign]
33.4.3.6
Members
[thread.thread.member]
33.4.3.7
Static members
[thread.thread.static]
33.4.3.8
Specialized algorithms
[thread.thread.algorithm]
33.4.4
Class jthread
[thread.jthread.class]
33.4.4.1
General
[thread.jthread.class.general]
33.4.4.2
Constructors, move, and assignment
[thread.jthread.cons]
33.4.4.3
Members
[thread.jthread.mem]
33.4.4.4
Stop token handling
[thread.jthread.stop]
33.4.4.5
Specialized algorithms
[thread.jthread.special]
33.4.4.6
Static members
[thread.jthread.static]
33.4.5
Namespace this_thread
[thread.thread.this]
33.5
Atomic operations
[atomics]
33.5.1
General
[atomics.general]
33.5.2
Header synopsis
[atomics.syn]
33.5.3
Type aliases
[atomics.alias]
33.5.4
Order and consistency
[atomics.order]
33.5.5
Lock-free property
[atomics.lockfree]
33.5.6
Waiting and notifying
[atomics.wait]
33.5.7
Class template atomic_ref
[atomics.ref.generic]
33.5.7.1
General
[atomics.ref.generic.general]
33.5.7.2
Operations
[atomics.ref.ops]
33.5.7.3
Specializations for integral types
[atomics.ref.int]
33.5.7.4
Specializations for floating-point types
[atomics.ref.float]
33.5.7.5
Partial specialization for pointers
[atomics.ref.pointer]
33.5.7.6
Member operators common to integers and pointers to objects
[atomics.ref.memop]
33.5.8
Class template atomic
[atomics.types.generic]
33.5.8.1
General
[atomics.types.generic.general]
33.5.8.2
Operations on atomic types
[atomics.types.operations]
33.5.8.3
Specializations for integers
[atomics.types.int]
33.5.8.4
Specializations for floating-point types
[atomics.types.float]
33.5.8.5
Partial specialization for pointers
[atomics.types.pointer]
33.5.8.6
Member operators common to integers and pointers to objects
[atomics.types.memop]
33.5.8.7
Partial specializations for smart pointers
[util.smartptr.atomic]
33.5.8.7.1
General
[util.smartptr.atomic.general]
33.5.8.7.2
Partial specialization for shared_ptr
[util.smartptr.atomic.shared]
33.5.8.7.3
Partial specialization for weak_ptr
[util.smartptr.atomic.weak]
33.5.9
Non-member functions
[atomics.nonmembers]
33.5.10
Flag type and operations
[atomics.flag]
33.5.11
Fences
[atomics.fences]
33.5.12
C compatibility
[stdatomic.h.syn]
33.6
Mutual exclusion
[thread.mutex]
33.6.1
General
[thread.mutex.general]
33.6.2
Header synopsis
[mutex.syn]
33.6.3
Header synopsis
[shared.mutex.syn]
33.6.4
Mutex requirements
[thread.mutex.requirements]
33.6.4.1
In general
[thread.mutex.requirements.general]
33.6.4.2
Mutex types
[thread.mutex.requirements.mutex]
33.6.4.2.1
General
[thread.mutex.requirements.mutex.general]
33.6.4.2.2
Class mutex
[thread.mutex.class]
33.6.4.2.3
Class recursive_mutex
[thread.mutex.recursive]
33.6.4.3
Timed mutex types
[thread.timedmutex.requirements]
33.6.4.3.1
General
[thread.timedmutex.requirements.general]
33.6.4.3.2
Class timed_mutex
[thread.timedmutex.class]
33.6.4.3.3
Class recursive_timed_mutex
[thread.timedmutex.recursive]
33.6.4.4
Shared mutex types
[thread.sharedmutex.requirements]
33.6.4.4.1
General
[thread.sharedmutex.requirements.general]
33.6.4.4.2
Class shared_mutex
[thread.sharedmutex.class]
33.6.4.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
33.6.4.5.1
General
[thread.sharedtimedmutex.requirements.general]
33.6.4.5.2
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
33.6.5
Locks
[thread.lock]
33.6.5.1
General
[thread.lock.general]
33.6.5.2
Class template lock_guard
[thread.lock.guard]
33.6.5.3
Class template scoped_lock
[thread.lock.scoped]
33.6.5.4
Class template unique_lock
[thread.lock.unique]
33.6.5.4.1
General
[thread.lock.unique.general]
33.6.5.4.2
Constructors, destructor, and assignment
[thread.lock.unique.cons]
33.6.5.4.3
Locking
[thread.lock.unique.locking]
33.6.5.4.4
Modifiers
[thread.lock.unique.mod]
33.6.5.4.5
Observers
[thread.lock.unique.obs]
33.6.5.5
Class template shared_lock
[thread.lock.shared]
33.6.5.5.1
General
[thread.lock.shared.general]
33.6.5.5.2
Constructors, destructor, and assignment
[thread.lock.shared.cons]
33.6.5.5.3
Locking
[thread.lock.shared.locking]
33.6.5.5.4
Modifiers
[thread.lock.shared.mod]
33.6.5.5.5
Observers
[thread.lock.shared.obs]
33.6.6
Generic locking algorithms
[thread.lock.algorithm]
33.6.7
Call once
[thread.once]
33.6.7.1
Struct once_flag
[thread.once.onceflag]
33.6.7.2
Function call_once
[thread.once.callonce]
33.7
Condition variables
[thread.condition]
33.7.1
General
[thread.condition.general]
33.7.2
Header synopsis
[condition.variable.syn]
33.7.3
Non-member functions
[thread.condition.nonmember]
33.7.4
Class condition_variable
[thread.condition.condvar]
33.7.5
Class condition_variable_any
[thread.condition.condvarany]
33.7.5.1
General
[thread.condition.condvarany.general]
33.7.5.2
Noninterruptible waits
[thread.condvarany.wait]
33.7.5.3
Interruptible waits
[thread.condvarany.intwait]
33.8
Semaphore
[thread.sema]
33.8.1
General
[thread.sema.general]
33.8.2
Header synopsis
[semaphore.syn]
33.8.3
Class template counting_semaphore
[thread.sema.cnt]
33.9
Coordination types
[thread.coord]
33.9.1
General
[thread.coord.general]
33.9.2
Latches
[thread.latch]
33.9.2.1
General
[thread.latch.general]
33.9.2.2
Header synopsis
[latch.syn]
33.9.2.3
Class latch
[thread.latch.class]
33.9.3
Barriers
[thread.barrier]
33.9.3.1
General
[thread.barrier.general]
33.9.3.2
Header synopsis
[barrier.syn]
33.9.3.3
Class template barrier
[thread.barrier.class]
33.10
Futures
[futures]
33.10.1
Overview
[futures.overview]
33.10.2
Header synopsis
[future.syn]
33.10.3
Error handling
[futures.errors]
33.10.4
Class future_error
[futures.future.error]
33.10.5
Shared state
[futures.state]
33.10.6
Class template promise
[futures.promise]
33.10.7
Class template future
[futures.unique.future]
33.10.8
Class template shared_future
[futures.shared.future]
33.10.9
Function template async
[futures.async]
33.10.10
Class template packaged_task
[futures.task]
33.10.10.1
General
[futures.task.general]
33.10.10.2
Member functions
[futures.task.members]
33.10.10.3
Globals
[futures.task.nonmembers]
Annex A (informative)
Grammar summary
[gram]
A.1
General
[gram.general]
A.2
Keywords
[gram.key]
A.3
Lexical conventions
[gram.lex]
A.4
Basics
[gram.basic]
A.5
Expressions
[gram.expr]
A.6
Statements
[gram.stmt]
A.7
Declarations
[gram.dcl]
A.8
Modules
[gram.module]
A.9
Classes
[gram.class]
A.10
Overloading
[gram.over]
A.11
Templates
[gram.temp]
A.12
Exception handling
[gram.except]
A.13
Preprocessing directives
[gram.cpp]
Annex B (normative)
Implementation quantities
[implimits]
Annex C (informative)
Compatibility
[diff]
C.1
C++ and ISO C++ 2020
[diff.cpp20]
C.1.1
General
[diff.cpp20.general]
C.1.2
[lex]: lexical conventions
[diff.cpp20.lex]
C.1.3
[expr]: expressions
[diff.cpp20.expr]
C.1.4
[stmt.stmt]: statements
[diff.cpp20.stmt]
C.1.5
[dcl.dcl]: declarations
[diff.cpp20.dcl]
C.1.6
[temp]: templates
[diff.cpp20.temp]
C.1.7
[library]: library introduction
[diff.cpp20.library]
C.1.8
[concepts]: concepts library
[diff.cpp20.concepts]
C.1.9
[mem]: memory management library
[diff.cpp20.memory]
C.1.10
[utilities]: general utilities library
[diff.cpp20.utilities]
C.1.11
[strings]: strings library
[diff.cpp20.strings]
C.1.12
[containers]: containers library
[diff.cpp20.containers]
C.1.13
[thread]: concurrency support library
[diff.cpp20.thread]
C.2
C++ and ISO C++ 2017
[diff.cpp17]
C.2.1
General
[diff.cpp17.general]
C.2.2
[lex]: lexical conventions
[diff.cpp17.lex]
C.2.3
[basic]: basics
[diff.cpp17.basic]
C.2.4
[expr]: expressions
[diff.cpp17.expr]
C.2.5
[dcl.dcl]: declarations
[diff.cpp17.dcl.dcl]
C.2.6
[class]: classes
[diff.cpp17.class]
C.2.7
[over]: overloading
[diff.cpp17.over]
C.2.8
[temp]: templates
[diff.cpp17.temp]
C.2.9
[except]: exception handling
[diff.cpp17.except]
C.2.10
[library]: library introduction
[diff.cpp17.library]
C.2.11
[containers]: containers library
[diff.cpp17.containers]
C.2.12
[iterators]: iterators library
[diff.cpp17.iterators]
C.2.13
[algorithms]: algorithms library
[diff.cpp17.alg.reqs]
C.2.14
[input.output]: input/output library
[diff.cpp17.input.output]
C.2.15
[depr]: compatibility features
[diff.cpp17.depr]
C.3
C++ and ISO C++ 2014
[diff.cpp14]
C.3.1
General
[diff.cpp14.general]
C.3.2
[lex]: lexical conventions
[diff.cpp14.lex]
C.3.3
[expr]: expressions
[diff.cpp14.expr]
C.3.4
[dcl.dcl]: declarations
[diff.cpp14.dcl.dcl]
C.3.5
[class]: classes
[diff.cpp14.class]
C.3.6
[temp]: templates
[diff.cpp14.temp]
C.3.7
[except]: exception handling
[diff.cpp14.except]
C.3.8
[library]: library introduction
[diff.cpp14.library]
C.3.9
[utilities]: general utilities library
[diff.cpp14.utilities]
C.3.10
[strings]: strings library
[diff.cpp14.string]
C.3.11
[containers]: containers library
[diff.cpp14.containers]
C.3.12
[depr]: compatibility features
[diff.cpp14.depr]
C.4
C++ and ISO C++ 2011
[diff.cpp11]
C.4.1
General
[diff.cpp11.general]
C.4.2
[lex]: lexical conventions
[diff.cpp11.lex]
C.4.3
[basic]: basics
[diff.cpp11.basic]
C.4.4
[expr]: expressions
[diff.cpp11.expr]
C.4.5
[dcl.dcl]: declarations
[diff.cpp11.dcl.dcl]
C.4.6
[library]: library introduction
[diff.cpp11.library]
C.4.7
[input.output]: input/output library
[diff.cpp11.input.output]
C.5
C++ and ISO C++ 2003
[diff.cpp03]
C.5.1
General
[diff.cpp03.general]
C.5.2
[lex]: lexical conventions
[diff.cpp03.lex]
C.5.3
[expr]: expressions
[diff.cpp03.expr]
C.5.4
[dcl.dcl]: declarations
[diff.cpp03.dcl.dcl]
C.5.5
[class]: classes
[diff.cpp03.class]
C.5.6
[temp]: templates
[diff.cpp03.temp]
C.5.7
[library]: library introduction
[diff.cpp03.library]
C.5.8
[support]: language support library
[diff.cpp03.language.support]
C.5.9
[diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.5.10
[utilities]: general utilities library
[diff.cpp03.utilities]
C.5.11
[strings]: strings library
[diff.cpp03.strings]
C.5.12
[containers]: containers library
[diff.cpp03.containers]
C.5.13
[algorithms]: algorithms library
[diff.cpp03.algorithms]
C.5.14
[numerics]: numerics library
[diff.cpp03.numerics]
C.5.15
[localization]: localization library
[diff.cpp03.locale]
C.5.16
[input.output]: input/output library
[diff.cpp03.input.output]
C.6
C++ and ISO C
[diff.iso]
C.6.1
General
[diff.iso.general]
C.6.2
[lex]: lexical conventions
[diff.lex]
C.6.3
[basic]: basics
[diff.basic]
C.6.4
[expr]: expressions
[diff.expr]
C.6.5
[stmt.stmt]: statements
[diff.stat]
C.6.6
[dcl.dcl]: declarations
[diff.dcl]
C.6.7
[class]: classes
[diff.class]
C.6.8
[cpp]: preprocessing directives
[diff.cpp]
C.7
C standard library
[diff.library]
C.7.1
General
[diff.library.general]
C.7.2
Modifications to headers
[diff.mods.to.headers]
C.7.3
Modifications to definitions
[diff.mods.to.definitions]
C.7.3.1
Types char16_t and char32_t
[diff.char16]
C.7.3.2
Type wchar_t
[diff.wchar.t]
C.7.3.3
Header
[diff.header.assert.h]
C.7.3.4
Header
[diff.header.iso646.h]
C.7.3.5
Header
[diff.header.stdalign.h]
C.7.3.6
Header
[diff.header.stdbool.h]
C.7.3.7
Macro NULL
[diff.null]
C.7.4
Modifications to declarations
[diff.mods.to.declarations]
C.7.5
Modifications to behavior
[diff.mods.to.behavior]
C.7.5.1
General
[diff.mods.to.behavior.general]
C.7.5.2
Macro offsetof(type, member-designator)
[diff.offsetof]
C.7.5.3
Memory allocation functions
[diff.malloc]
Annex D (normative)
Compatibility features
[depr]
D.1
General
[depr.general]
D.2
Arithmetic conversion on enumerations
[depr.arith.conv.enum]
D.3
Implicit capture of *this by reference
[depr.capture.this]
D.4
Array comparisons
[depr.array.comp]
D.5
Deprecated volatile types
[depr.volatile.type]
D.6
Redeclaration of static constexpr data members
[depr.static.constexpr]
D.7
Non-local use of TU-local entities
[depr.local]
D.8
Implicit declaration of copy functions
[depr.impldec]
D.9
Literal operator function declarations using an identifier
[depr.lit]
D.10
template keyword before qualified names
[depr.template.template]
D.11
Requires paragraph
[depr.res.on.required]
D.12
has_denorm members in numeric_limits
[depr.numeric.limits.has.denorm]
D.13
Deprecated C macros
[depr.c.macros]
D.14
Relational operators
[depr.relops]
D.15
char* streams
[depr.str.strstreams]
D.15.1
Header synopsis
[depr.strstream.syn]
D.15.2
Class strstreambuf
[depr.strstreambuf]
D.15.2.1
General
[depr.strstreambuf.general]
D.15.2.2
strstreambuf constructors
[depr.strstreambuf.cons]
D.15.2.3
Member functions
[depr.strstreambuf.members]
D.15.2.4
strstreambuf overridden virtual functions
[depr.strstreambuf.virtuals]
D.15.3
Class istrstream
[depr.istrstream]
D.15.3.1
General
[depr.istrstream.general]
D.15.3.2
istrstream constructors
[depr.istrstream.cons]
D.15.3.3
Member functions
[depr.istrstream.members]
D.15.4
Class ostrstream
[depr.ostrstream]
D.15.4.1
General
[depr.ostrstream.general]
D.15.4.2
ostrstream constructors
[depr.ostrstream.cons]
D.15.4.3
Member functions
[depr.ostrstream.members]
D.15.5
Class strstream
[depr.strstream]
D.15.5.1
General
[depr.strstream.general]
D.15.5.2
strstream constructors
[depr.strstream.cons]
D.15.5.3
strstream destructor
[depr.strstream.dest]
D.15.5.4
strstream operations
[depr.strstream.oper]
D.16
Deprecated error numbers
[depr.cerrno]
D.17
The default allocator
[depr.default.allocator]
D.18
Deprecated polymorphic_allocator member function
[depr.mem.poly.allocator.mem]
D.19
Deprecated type traits
[depr.meta.types]
D.20
Tuple
[depr.tuple]
D.21
Variant
[depr.variant]
D.22
Deprecated iterator class template
[depr.iterator]
D.23
Deprecated move_iterator access
[depr.move.iter.elem]
D.24
Deprecated shared_ptr atomic access
[depr.util.smartptr.shared.atomic]
D.25
Deprecated basic_string capacity
[depr.string.capacity]
D.26
Deprecated standard code conversion facets
[depr.locale.stdcvt]
D.26.1
General
[depr.locale.stdcvt.general]
D.26.2
Header synopsis
[depr.codecvt.syn]
D.26.3
Requirements
[depr.locale.stdcvt.req]
D.27
Deprecated convenience conversion interfaces
[depr.conversions]
D.27.1
General
[depr.conversions.general]
D.27.2
Class template wstring_convert
[depr.conversions.string]
D.27.3
Class template wbuffer_convert
[depr.conversions.buffer]
D.28
Deprecated locale category facets
[depr.locale.category]
D.29
Deprecated filesystem path factory functions
[depr.fs.path.factory]
D.30
Deprecated atomic operations
[depr.atomics]
D.30.1
General
[depr.atomics.general]
D.30.2
Volatile access
[depr.atomics.volatile]
D.30.3
Non-member functions
[depr.atomics.nonmembers]
D.30.4
Operations on atomic types
[depr.atomics.types.operations]
Annex E (informative)
Conformance with UAX #31
[uaxid]
E.1
General
[uaxid.general]
E.2
R1 Default identifiers
[uaxid.def]
E.2.1
General
[uaxid.def.general]
E.2.2
R1a Restricted format characters
[uaxid.def.rfmt]
E.2.3
R1b Stable identifiers
[uaxid.def.stable]
E.3
R2 Immutable identifiers
[uaxid.immutable]
E.4
R3 Pattern_White_Space and Pattern_Syntax characters
[uaxid.pattern]
E.5
R4 Equivalent normalized identifiers
[uaxid.eqn]
E.6
R5 Equivalent case-insensitive identifiers
[uaxid.eqci]
E.7
R6 Filtered normalized identifiers
[uaxid.filter]
E.8
R7 Filtered case-insensitive identifiers
[uaxid.filterci]
E.9
R8 Hashtag identifiers
[uaxid.hashtag]
Bibliography
Bibliography
C++ WD (C++ working_draft)
Foreword
Foreword
Foreword
Introduction
Introduction
Introduction
1
Scope
[intro.scope]
2
Normative references
[intro.refs]
3
Terms and definitions
[intro.defs]
3.1
access
[defns.access]
3.2
argument
[defns.argument]
3.3
argument
[defns.argument.macro]
3.4
argument
[defns.argument.throw]
3.5
argument
[defns.argument.templ]
3.6
block
[defns.block]
3.7
block
[defns.block.stmt]
3.8
C standard library
[defns.c.lib]
3.9
character
[defns.character]
3.10
character container type
[defns.character.container]
3.11
collating element
[defns.regex.collating.element]
3.12
component
[defns.component]
3.13
conditionally-supported
[defns.cond.supp]
3.14
constant evaluation
[defns.const.eval]
3.15
constant subexpression
[defns.const.subexpr]
3.16
deadlock
[defns.deadlock]
3.17
default behavior
[defns.default.behavior.impl]
3.18
diagnostic message
[defns.diagnostic]
3.19
dynamic type
[defns.dynamic.type]
3.20
dynamic type
[defns.dynamic.type.prvalue]
3.21
erroneous behavior
[defns.erroneous]
3.22
expression-equivalent
[defns.expression.equivalent]
3.23
finite state machine
[defns.regex.finite.state.machine]
3.24
format specifier
[defns.regex.format.specifier]
3.25
handler function
[defns.handler]
3.26
ill-formed program
[defns.ill.formed]
3.27
implementation-defined behavior
[defns.impl.defined]
3.28
implementation-defined strict total order over pointers
[defns.order.ptr]
3.29
implementation limit
[defns.impl.limits]
3.30
locale-specific behavior
[defns.locale.specific]
3.31
matched
[defns.regex.matched]
3.32
modifier function
[defns.modifier]
3.33
move assignment
[defns.move.assign]
3.34
move construction
[defns.move.constr]
3.35
non-constant library call
[defns.nonconst.libcall]
3.36
NTCTS
[defns.ntcts]
3.37
observer function
[defns.observer]
3.38
parameter
[defns.parameter]
3.39
parameter
[defns.parameter.macro]
3.40
parameter
[defns.parameter.templ]
3.41
primary equivalence class
[defns.regex.primary.equivalence.class]
3.42
program-defined specialization
[defns.prog.def.spec]
3.43
program-defined type
[defns.prog.def.type]
3.44
projection
[defns.projection]
3.45
property of the implementation
[defns.impl.prop]
3.46
referenceable type
[defns.referenceable]
3.47
regular expression
[defns.regex.regular.expression]
3.48
replacement function
[defns.replacement]
3.49
required behavior
[defns.required.behavior]
3.50
reserved function
[defns.reserved.function]
3.51
runtime-undefined behavior
[defns.undefined.runtime]
3.52
signature
[defns.signature]
3.53
signature
[defns.signature.friend]
3.54
signature
[defns.signature.templ]
3.55
signature
[defns.signature.templ.friend]
3.56
signature
[defns.signature.spec]
3.57
signature
[defns.signature.member]
3.58
signature
[defns.signature.member.templ]
3.59
signature
[defns.signature.member.spec]
3.60
signature
[defns.signature.template.head]
3.61
stable algorithm
[defns.stable]
3.62
static type
[defns.static.type]
3.63
sub-expression
[defns.regex.subexpression]
3.64
traits class
[defns.traits]
3.65
unblock
[defns.unblock]
3.66
undefined behavior
[defns.undefined]
3.67
unspecified behavior
[defns.unspecified]
3.68
valid but unspecified state
[defns.valid]
3.69
well-formed program
[defns.well.formed]
4
General principles
[intro]
4.1
Implementation compliance
[intro.compliance]
4.1.1
General
[intro.compliance.general]
4.1.2
Abstract machine
[intro.abstract]
4.2
Structure of this document
[intro.structure]
4.3
Syntax notation
[syntax]
5
Lexical conventions
[lex]
5.1
Separate translation
[lex.separate]
5.2
Phases of translation
[lex.phases]
5.3
Characters
[lex.char]
5.3.1
Character sets
[lex.charset]
5.3.2
Universal character names
[lex.universal.char]
5.4
Comments
[lex.comment]
5.5
Preprocessing tokens
[lex.pptoken]
5.6
Header names
[lex.header]
5.7
Preprocessing numbers
[lex.ppnumber]
5.8
Operators and punctuators
[lex.operators]
5.9
Alternative tokens
[lex.digraph]
5.10
Tokens
[lex.token]
5.11
Identifiers
[lex.name]
5.12
Keywords
[lex.key]
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
Unevaluated strings
[lex.string.uneval]
5.13.7
Boolean literals
[lex.bool]
5.13.8
Pointer literals
[lex.nullptr]
5.13.9
User-defined literals
[lex.ext]
6
Basics
[basic]
6.1
Preamble
[basic.pre]
6.2
Declarations and definitions
[basic.def]
6.3
One-definition rule
[basic.def.odr]
6.4
Scope
[basic.scope]
6.4.1
General
[basic.scope.scope]
6.4.2
Point of declaration
[basic.scope.pdecl]
6.4.3
Block scope
[basic.scope.block]
6.4.4
Function parameter scope
[basic.scope.param]
6.4.5
Lambda scope
[basic.scope.lambda]
6.4.6
Namespace scope
[basic.scope.namespace]
6.4.7
Class scope
[basic.scope.class]
6.4.8
Enumeration scope
[basic.scope.enum]
6.4.9
Template parameter scope
[basic.scope.temp]
6.4.10
Contract-assertion scope
[basic.scope.contract]
6.5
Name lookup
[basic.lookup]
6.5.1
General
[basic.lookup.general]
6.5.2
Member name lookup
[class.member.lookup]
6.5.3
Unqualified name lookup
[basic.lookup.unqual]
6.5.4
Argument-dependent name lookup
[basic.lookup.argdep]
6.5.5
Qualified name lookup
[basic.lookup.qual]
6.5.5.1
General
[basic.lookup.qual.general]
6.5.5.2
Class members
[class.qual]
6.5.5.3
Namespace members
[namespace.qual]
6.5.6
Elaborated type specifiers
[basic.lookup.elab]
6.5.7
Using-directives and namespace aliases
[basic.lookup.udir]
6.6
Splice specifiers
[basic.splice]
6.7
Program and linkage
[basic.link]
6.8
Memory and objects
[basic.memobj]
6.8.1
Memory model
[intro.memory]
6.8.2
Object model
[intro.object]
6.8.3
Alignment
[basic.align]
6.8.4
Lifetime
[basic.life]
6.8.5
Indeterminate and erroneous values
[basic.indet]
6.8.6
Storage duration
[basic.stc]
6.8.6.1
General
[basic.stc.general]
6.8.6.2
Static storage duration
[basic.stc.static]
6.8.6.3
Thread storage duration
[basic.stc.thread]
6.8.6.4
Automatic storage duration
[basic.stc.auto]
6.8.6.5
Dynamic storage duration
[basic.stc.dynamic]
6.8.6.5.1
General
[basic.stc.dynamic.general]
6.8.6.5.2
Allocation functions
[basic.stc.dynamic.allocation]
6.8.6.5.3
Deallocation functions
[basic.stc.dynamic.deallocation]
6.8.7
Temporary objects
[class.temporary]
6.9
Types
[basic.types]
6.9.1
General
[basic.types.general]
6.9.2
Trivially copyable types
[basic.types.trivial]
6.9.3
Fundamental types
[basic.fundamental]
6.9.4
Optional extended floating-point types
[basic.extended.fp]
6.9.5
Compound types
[basic.compound]
6.9.6
CV-qualifiers
[basic.type.qualifier]
6.9.7
Conversion ranks
[conv.rank]
6.10
Program execution
[basic.exec]
6.10.1
Sequential execution
[intro.execution]
6.10.2
Multi-threaded executions and data races
[intro.multithread]
6.10.2.1
General
[intro.multithread.general]
6.10.2.2
Data races
[intro.races]
6.10.2.3
Forward progress
[intro.progress]
6.10.3
Start and termination
[basic.start]
6.10.3.1
main function
[basic.start.main]
6.10.3.2
Static initialization
[basic.start.static]
6.10.3.3
Dynamic initialization of non-block variables
[basic.start.dynamic]
6.10.3.4
Termination
[basic.start.term]
6.11
Contract assertions
[basic.contract]
6.11.1
General
[basic.contract.general]
6.11.2
Evaluation
[basic.contract.eval]
6.11.3
Contract-violation handler
[basic.contract.handler]
7
Expressions
[expr]
7.1
Preamble
[expr.pre]
7.2
Properties of expressions
[expr.prop]
7.2.1
Value category
[basic.lval]
7.2.2
Type
[expr.type]
7.2.3
Context dependence
[expr.context]
7.3
Standard conversions
[conv]
7.3.1
General
[conv.general]
7.3.2
Lvalue-to-rvalue conversion
[conv.lval]
7.3.3
Array-to-pointer conversion
[conv.array]
7.3.4
Function-to-pointer conversion
[conv.func]
7.3.5
Temporary materialization conversion
[conv.rval]
7.3.6
Qualification conversions
[conv.qual]
7.3.7
Integral promotions
[conv.prom]
7.3.8
Floating-point promotion
[conv.fpprom]
7.3.9
Integral conversions
[conv.integral]
7.3.10
Floating-point conversions
[conv.double]
7.3.11
Floating-integral conversions
[conv.fpint]
7.3.12
Pointer conversions
[conv.ptr]
7.3.13
Pointer-to-member conversions
[conv.mem]
7.3.14
Function pointer conversions
[conv.fctptr]
7.3.15
Boolean conversions
[conv.bool]
7.4
Usual arithmetic conversions
[expr.arith.conv]
7.5
Primary expressions
[expr.prim]
7.5.1
Grammar
[expr.prim.grammar]
7.5.2
Literals
[expr.prim.literal]
7.5.3
This
[expr.prim.this]
7.5.4
Parentheses
[expr.prim.paren]
7.5.5
Names
[expr.prim.id]
7.5.5.1
General
[expr.prim.id.general]
7.5.5.2
Unqualified names
[expr.prim.id.unqual]
7.5.5.3
Qualified names
[expr.prim.id.qual]
7.5.5.4
Pack indexing expression
[expr.prim.pack.index]
7.5.5.5
Destruction
[expr.prim.id.dtor]
7.5.6
Lambda expressions
[expr.prim.lambda]
7.5.6.1
General
[expr.prim.lambda.general]
7.5.6.2
Closure types
[expr.prim.lambda.closure]
7.5.6.3
Captures
[expr.prim.lambda.capture]
7.5.7
Fold expressions
[expr.prim.fold]
7.5.8
Requires expressions
[expr.prim.req]
7.5.8.1
General
[expr.prim.req.general]
7.5.8.2
Simple requirements
[expr.prim.req.simple]
7.5.8.3
Type requirements
[expr.prim.req.type]
7.5.8.4
Compound requirements
[expr.prim.req.compound]
7.5.8.5
Nested requirements
[expr.prim.req.nested]
7.5.9
Expression splicing
[expr.prim.splice]
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.2.10
The reflection operator
[expr.reflect]
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.assign]
7.6.20
Comma operator
[expr.comma]
7.7
Constant evaluation
[expr.const]
7.7.1
General
[expr.const.general]
7.7.2
Core constant expressions
[expr.const.core]
7.7.3
Constant expressions
[expr.const.const]
7.7.4
Constant initialization
[expr.const.init]
7.7.5
Immediate functions
[expr.const.imm]
7.7.6
Reflection
[expr.const.reflect]
7.7.7
Further definitions
[expr.const.defns]
8
Statements
[stmt]
8.1
Preamble
[stmt.pre]
8.2
Label
[stmt.label]
8.3
Expression statement
[stmt.expr]
8.4
Compound statement or block
[stmt.block]
8.5
Selection statements
[stmt.select]
8.5.1
General
[stmt.select.general]
8.5.2
The if statement
[stmt.if]
8.5.3
The switch statement
[stmt.switch]
8.6
Iteration statements
[stmt.iter]
8.6.1
General
[stmt.iter.general]
8.6.2
The while statement
[stmt.while]
8.6.3
The do statement
[stmt.do]
8.6.4
The for statement
[stmt.for]
8.6.5
The range-based for statement
[stmt.ranged]
8.7
Expansion statements
[stmt.expand]
8.8
Jump statements
[stmt.jump]
8.8.1
General
[stmt.jump.general]
8.8.2
The break statement
[stmt.break]
8.8.3
The continue statement
[stmt.cont]
8.8.4
The return statement
[stmt.return]
8.8.5
The co_return statement
[stmt.return.coroutine]
8.8.6
The goto statement
[stmt.goto]
8.9
Assertion statement
[stmt.contract.assert]
8.10
Declaration statement
[stmt.dcl]
8.11
Ambiguity resolution
[stmt.ambig]
9
Declarations
[dcl]
9.1
Preamble
[dcl.pre]
9.2
Specifiers
[dcl.spec]
9.2.1
General
[dcl.spec.general]
9.2.2
Storage class specifiers
[dcl.stc]
9.2.3
Function specifiers
[dcl.fct.spec]
9.2.4
The typedef specifier
[dcl.typedef]
9.2.5
The friend specifier
[dcl.friend]
9.2.6
The constexpr and consteval specifiers
[dcl.constexpr]
9.2.7
The constinit specifier
[dcl.constinit]
9.2.8
The inline specifier
[dcl.inline]
9.2.9
Type specifiers
[dcl.type]
9.2.9.1
General
[dcl.type.general]
9.2.9.2
The cv-qualifiers
[dcl.type.cv]
9.2.9.3
Simple type specifiers
[dcl.type.simple]
9.2.9.4
Pack indexing specifier
[dcl.type.pack.index]
9.2.9.5
Elaborated type specifiers
[dcl.type.elab]
9.2.9.6
Decltype specifiers
[dcl.type.decltype]
9.2.9.7
Placeholder type specifiers
[dcl.spec.auto]
9.2.9.7.1
General
[dcl.spec.auto.general]
9.2.9.7.2
Placeholder type deduction
[dcl.type.auto.deduct]
9.2.9.8
Deduced class template specialization types
[dcl.type.class.deduct]
9.2.9.9
Type splicing
[dcl.type.splice]
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
Function contract specifiers
[dcl.contract]
9.4.1
General
[dcl.contract.func]
9.4.2
Referring to the result object
[dcl.contract.res]
9.5
Initializers
[dcl.init]
9.5.1
General
[dcl.init.general]
9.5.2
Aggregates
[dcl.init.aggr]
9.5.3
Character arrays
[dcl.init.string]
9.5.4
References
[dcl.init.ref]
9.5.5
List-initialization
[dcl.init.list]
9.6
Function definitions
[dcl.fct.def]
9.6.1
General
[dcl.fct.def.general]
9.6.2
Explicitly-defaulted functions
[dcl.fct.def.default]
9.6.3
Deleted definitions
[dcl.fct.def.delete]
9.6.4
Coroutine definitions
[dcl.fct.def.coroutine]
9.6.5
Replaceable function definitions
[dcl.fct.def.replace]
9.7
Structured binding declarations
[dcl.struct.bind]
9.8
Enumerations
[enum]
9.8.1
Enumeration declarations
[dcl.enum]
9.8.2
The using enum declaration
[enum.udecl]
9.9
Namespaces
[basic.namespace]
9.9.1
General
[basic.namespace.general]
9.9.2
Namespace definition
[namespace.def]
9.9.2.1
General
[namespace.def.general]
9.9.2.2
Unnamed namespaces
[namespace.unnamed]
9.9.3
Namespace alias
[namespace.alias]
9.9.4
Using namespace directive
[namespace.udir]
9.10
The using declaration
[namespace.udecl]
9.11
The asm declaration
[dcl.asm]
9.12
Linkage specifications
[dcl.link]
9.13
Attributes
[dcl.attr]
9.13.1
Attribute syntax and semantics
[dcl.attr.grammar]
9.13.2
Alignment specifier
[dcl.align]
9.13.3
Assumption attribute
[dcl.attr.assume]
9.13.4
Deprecated attribute
[dcl.attr.deprecated]
9.13.5
Fallthrough attribute
[dcl.attr.fallthrough]
9.13.6
Indeterminate storage
[dcl.attr.indet]
9.13.7
Likelihood attributes
[dcl.attr.likelihood]
9.13.8
Maybe unused attribute
[dcl.attr.unused]
9.13.9
Nodiscard attribute
[dcl.attr.nodiscard]
9.13.10
Noreturn attribute
[dcl.attr.noreturn]
9.13.11
No unique address attribute
[dcl.attr.nouniqueaddr]
9.13.12
Annotations
[dcl.attr.annotation]
10
Modules
[module]
10.1
Module units and purviews
[module.unit]
10.2
Export declaration
[module.interface]
10.3
Import declaration
[module.import]
10.4
Global module fragment
[module.global.frag]
10.5
Private module fragment
[module.private.frag]
10.6
Instantiation context
[module.context]
10.7
Reachability
[module.reach]
11
Classes
[class]
11.1
Preamble
[class.pre]
11.2
Properties of classes
[class.prop]
11.3
Class names
[class.name]
11.4
Class members
[class.mem]
11.4.1
General
[class.mem.general]
11.4.2
Member functions
[class.mfct]
11.4.3
Non-static member functions
[class.mfct.non.static]
11.4.4
Special member functions
[special]
11.4.5
Constructors
[class.ctor]
11.4.5.1
General
[class.ctor.general]
11.4.5.2
Default constructors
[class.default.ctor]
11.4.5.3
Copy/move constructors
[class.copy.ctor]
11.4.6
Copy/move assignment operator
[class.copy.assign]
11.4.7
Destructors
[class.dtor]
11.4.8
Conversions
[class.conv]
11.4.8.1
General
[class.conv.general]
11.4.8.2
Conversion by constructor
[class.conv.ctor]
11.4.8.3
Conversion functions
[class.conv.fct]
11.4.9
Static members
[class.static]
11.4.9.1
General
[class.static.general]
11.4.9.2
Static member functions
[class.static.mfct]
11.4.9.3
Static data members
[class.static.data]
11.4.10
Bit-fields
[class.bit]
11.4.11
Allocation and deallocation functions
[class.free]
11.4.12
Nested class declarations
[class.nest]
11.5
Unions
[class.union]
11.5.1
General
[class.union.general]
11.5.2
Anonymous unions
[class.union.anon]
11.6
Local class declarations
[class.local]
11.7
Derived classes
[class.derived]
11.7.1
General
[class.derived.general]
11.7.2
Multiple base classes
[class.mi]
11.7.3
Virtual functions
[class.virtual]
11.7.4
Abstract classes
[class.abstract]
11.8
Member access control
[class.access]
11.8.1
General
[class.access.general]
11.8.2
Access specifiers
[class.access.spec]
11.8.3
Accessibility of base classes and base class members
[class.access.base]
11.8.4
Friends
[class.friend]
11.8.5
Protected member access
[class.protected]
11.8.6
Access to virtual functions
[class.access.virt]
11.8.7
Multiple access
[class.paths]
11.8.8
Nested classes
[class.access.nest]
11.9
Initialization
[class.init]
11.9.1
General
[class.init.general]
11.9.2
Explicit initialization
[class.expl.init]
11.9.3
Initializing bases and members
[class.base.init]
11.9.4
Initialization by inherited constructor
[class.inhctor.init]
11.9.5
Construction and destruction
[class.cdtor]
11.9.6
Copy/move elision
[class.copy.elision]
11.10
Comparisons
[class.compare]
11.10.1
Defaulted comparison operator functions
[class.compare.default]
11.10.2
Equality operator
[class.eq]
11.10.3
Three-way comparison
[class.spaceship]
11.10.4
Secondary comparison operators
[class.compare.secondary]
12
Overloading
[over]
12.1
Preamble
[over.pre]
12.2
Overload resolution
[over.match]
12.2.1
General
[over.match.general]
12.2.2
Candidate functions and argument lists
[over.match.funcs]
12.2.2.1
General
[over.match.funcs.general]
12.2.2.2
Function call syntax
[over.match.call]
12.2.2.2.1
General
[over.match.call.general]
12.2.2.2.2
Call to designated function
[over.call.func]
12.2.2.2.3
Call to object of class type
[over.call.object]
12.2.2.3
Operators in expressions
[over.match.oper]
12.2.2.4
Initialization by constructor
[over.match.ctor]
12.2.2.5
Copy-initialization of class by user-defined conversion
[over.match.copy]
12.2.2.6
Initialization by conversion function
[over.match.conv]
12.2.2.7
Initialization by conversion function for direct reference binding
[over.match.ref]
12.2.2.8
Initialization by list-initialization
[over.match.list]
12.2.2.9
Class template argument deduction
[over.match.class.deduct]
12.2.3
Viable functions
[over.match.viable]
12.2.4
Best viable function
[over.match.best]
12.2.4.1
General
[over.match.best.general]
12.2.4.2
Implicit conversion sequences
[over.best.ics]
12.2.4.2.1
General
[over.best.ics.general]
12.2.4.2.2
Standard conversion sequences
[over.ics.scs]
12.2.4.2.3
User-defined conversion sequences
[over.ics.user]
12.2.4.2.4
Ellipsis conversion sequences
[over.ics.ellipsis]
12.2.4.2.5
Reference binding
[over.ics.ref]
12.2.4.2.6
List-initialization sequence
[over.ics.list]
12.2.4.3
Ranking implicit conversion sequences
[over.ics.rank]
12.3
Address of an overload set
[over.over]
12.4
Overloaded operators
[over.oper]
12.4.1
General
[over.oper.general]
12.4.2
Unary operators
[over.unary]
12.4.3
Binary operators
[over.binary]
12.4.3.1
General
[over.binary.general]
12.4.3.2
Simple assignment
[over.assign]
12.4.4
Function call
[over.call]
12.4.5
Subscripting
[over.sub]
12.4.6
Class member access
[over.ref]
12.4.7
Increment and decrement
[over.inc]
12.4.7.1
General
[over.inc.general]
12.4.7.2
Defaulted function
[over.inc.default]
12.5
Built-in operators
[over.built]
12.6
User-defined literals
[over.literal]
13
Templates
[temp]
13.1
Preamble
[temp.pre]
13.2
Template parameters
[temp.param]
13.3
Names of template specializations
[temp.names]
13.4
Template arguments
[temp.arg]
13.4.1
General
[temp.arg.general]
13.4.2
Type template arguments
[temp.arg.type]
13.4.3
Constant template 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.2.4
Concept-dependent constraints
[temp.constr.concept]
13.5.2.5
Fold expanded constraint
[temp.constr.fold]
13.5.3
Constrained declarations
[temp.constr.decl]
13.5.4
Constraint normalization
[temp.constr.normal]
13.5.5
Partial ordering by constraints
[temp.constr.order]
13.6
Type equivalence
[temp.type]
13.7
Template declarations
[temp.decls]
13.7.1
General
[temp.decls.general]
13.7.2
Class templates
[temp.class]
13.7.2.1
General
[temp.class.general]
13.7.2.2
Member functions of class templates
[temp.mem.func]
13.7.2.3
Deduction guides
[temp.deduct.guide]
13.7.2.4
Member classes of class templates
[temp.mem.class]
13.7.2.5
Static data members of class templates
[temp.static]
13.7.2.6
Enumeration members of class templates
[temp.mem.enum]
13.7.3
Member templates
[temp.mem]
13.7.4
Variadic templates
[temp.variadic]
13.7.5
Friends
[temp.friend]
13.7.6
Partial specialization
[temp.spec.partial]
13.7.6.1
General
[temp.spec.partial.general]
13.7.6.2
Matching of partial specializations
[temp.spec.partial.match]
13.7.6.3
Partial ordering of partial specializations
[temp.spec.partial.order]
13.7.6.4
Members of class template partial specializations
[temp.spec.partial.member]
13.7.7
Function templates
[temp.fct]
13.7.7.1
General
[temp.fct.general]
13.7.7.2
Function template overloading
[temp.over.link]
13.7.7.3
Partial ordering of function templates
[temp.func.order]
13.7.8
Alias templates
[temp.alias]
13.7.9
Concept definitions
[temp.concept]
13.8
Name resolution
[temp.res]
13.8.1
General
[temp.res.general]
13.8.2
Locally declared names
[temp.local]
13.8.3
Dependent names
[temp.dep]
13.8.3.1
General
[temp.dep.general]
13.8.3.2
Dependent types
[temp.dep.type]
13.8.3.3
Type-dependent expressions
[temp.dep.expr]
13.8.3.4
Value-dependent expressions
[temp.dep.constexpr]
13.8.3.5
Dependent splice specifiers
[temp.dep.splice]
13.8.3.6
Dependent namespaces
[temp.dep.namespace]
13.8.3.7
Dependent template arguments
[temp.dep.temp]
13.8.4
Dependent name resolution
[temp.dep.res]
13.8.4.1
Point of instantiation
[temp.point]
13.8.4.2
Candidate functions
[temp.dep.candidate]
13.9
Template instantiation and specialization
[temp.spec]
13.9.1
General
[temp.spec.general]
13.9.2
Implicit instantiation
[temp.inst]
13.9.3
Explicit instantiation
[temp.explicit]
13.9.4
Explicit specialization
[temp.expl.spec]
13.10
Function template specializations
[temp.fct.spec]
13.10.1
General
[temp.fct.spec.general]
13.10.2
Explicit template argument specification
[temp.arg.explicit]
13.10.3
Template argument deduction
[temp.deduct]
13.10.3.1
General
[temp.deduct.general]
13.10.3.2
Deducing template arguments from a function call
[temp.deduct.call]
13.10.3.3
Deducing template arguments taking the address of a function template
[temp.deduct.funcaddr]
13.10.3.4
Deducing conversion function template arguments
[temp.deduct.conv]
13.10.3.5
Deducing template arguments during partial ordering
[temp.deduct.partial]
13.10.3.6
Deducing template arguments from a type
[temp.deduct.type]
13.10.3.7
Deducing template arguments from a function declaration
[temp.deduct.decl]
13.10.4
Overload resolution
[temp.over]
14
Exception handling
[except]
14.1
Preamble
[except.pre]
14.2
Throwing an exception
[except.throw]
14.3
Stack unwinding
[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]
15
Preprocessing directives
[cpp]
15.1
Preamble
[cpp.pre]
15.2
Conditional inclusion
[cpp.cond]
15.3
Source file inclusion
[cpp.include]
15.4
Resource inclusion
[cpp.embed]
15.4.1
General
[cpp.embed.gen]
15.4.2
Embed parameters
[cpp.embed.param]
15.4.2.1
limit parameter
[cpp.embed.param.limit]
15.4.2.2
offset parameter
[cpp.embed.param.offset]
15.4.2.3
prefix parameter
[cpp.embed.param.prefix]
15.4.2.4
suffix parameter
[cpp.embed.param.suffix]
15.4.2.5
if_empty parameter
[cpp.embed.param.if.empty]
15.5
Module directive
[cpp.module]
15.6
Header unit importation
[cpp.import]
15.7
Macro replacement
[cpp.replace]
15.7.1
General
[cpp.replace.general]
15.7.2
Argument substitution
[cpp.subst]
15.7.3
The # operator
[cpp.stringize]
15.7.4
The ## operator
[cpp.concat]
15.7.5
Rescanning and further replacement
[cpp.rescan]
15.7.6
Scope of macro definitions
[cpp.scope]
15.8
Line control
[cpp.line]
15.9
Diagnostic directives
[cpp.error]
15.10
Pragma directive
[cpp.pragma]
15.11
Null directive
[cpp.null]
15.12
Predefined macro names
[cpp.predefined]
15.13
Pragma operator
[cpp.pragma.op]
16
Library introduction
[library]
16.1
General
[library.general]
16.2
The C standard library
[library.c]
16.3
Method of description
[description]
16.3.1
General
[description.general]
16.3.2
Structure of each clause
[structure]
16.3.2.1
Elements
[structure.elements]
16.3.2.2
Summary
[structure.summary]
16.3.2.3
Requirements
[structure.requirements]
16.3.2.4
Detailed specifications
[structure.specifications]
16.3.2.5
C library
[structure.see.also]
16.3.3
Other conventions
[conventions]
16.3.3.1
General
[conventions.general]
16.3.3.2
Exposition-only entities, etc.
[expos.only.entity]
16.3.3.3
Type descriptions
[type.descriptions]
16.3.3.3.1
General
[type.descriptions.general]
16.3.3.3.2
Enumerated types
[enumerated.types]
16.3.3.3.3
Bitmask types
[bitmask.types]
16.3.3.3.4
Character sequences
[character.seq]
16.3.3.3.4.1
General
[character.seq.general]
16.3.3.3.4.2
Byte strings
[byte.strings]
16.3.3.3.4.3
Multibyte strings
[multibyte.strings]
16.3.3.3.5
Customization Point Object types
[customization.point.object]
16.3.3.4
Algorithm function objects
[alg.func.obj]
16.3.3.5
Functions within classes
[functions.within.classes]
16.3.3.6
Private members
[objects.within.classes]
16.3.3.7
Freestanding items
[freestanding.item]
16.4
Library-wide requirements
[requirements]
16.4.1
General
[requirements.general]
16.4.2
Library contents and organization
[organization]
16.4.2.1
General
[organization.general]
16.4.2.2
Library contents
[contents]
16.4.2.3
Headers
[headers]
16.4.2.4
Modules
[std.modules]
16.4.2.5
Freestanding implementations
[compliance]
16.4.3
Using the library
[using]
16.4.3.1
Overview
[using.overview]
16.4.3.2
Headers
[using.headers]
16.4.3.3
Linkage
[using.linkage]
16.4.4
Requirements on types and expressions
[utility.requirements]
16.4.4.1
General
[utility.requirements.general]
16.4.4.2
Template argument requirements
[utility.arg.requirements]
16.4.4.3
Swappable requirements
[swappable.requirements]
16.4.4.4
Cpp17NullablePointer requirements
[nullablepointer.requirements]
16.4.4.5
Cpp17Hash requirements
[hash.requirements]
16.4.4.6
Cpp17Allocator requirements
[allocator.requirements]
16.4.4.6.1
General
[allocator.requirements.general]
16.4.4.6.2
Allocator completeness requirements
[allocator.requirements.completeness]
16.4.5
Constraints on programs
[constraints]
16.4.5.1
Overview
[constraints.overview]
16.4.5.2
Namespace use
[namespace.constraints]
16.4.5.2.1
Namespace std
[namespace.std]
16.4.5.2.2
Namespace posix
[namespace.posix]
16.4.5.2.3
Namespaces for future standardization
[namespace.future]
16.4.5.3
Reserved names
[reserved.names]
16.4.5.3.1
General
[reserved.names.general]
16.4.5.3.2
Zombie names
[zombie.names]
16.4.5.3.3
Macro names
[macro.names]
16.4.5.3.4
External linkage
[extern.names]
16.4.5.3.5
Types
[extern.types]
16.4.5.3.6
User-defined literal suffixes
[usrlit.suffix]
16.4.5.4
Headers
[alt.headers]
16.4.5.5
Derived classes
[derived.classes]
16.4.5.6
Replacement functions
[replacement.functions]
16.4.5.7
Handler functions
[handler.functions]
16.4.5.8
Other functions
[res.on.functions]
16.4.5.9
Function arguments
[res.on.arguments]
16.4.5.10
Library object access
[res.on.objects]
16.4.5.11
Semantic requirements
[res.on.requirements]
16.4.6
Conforming implementations
[conforming]
16.4.6.1
Overview
[conforming.overview]
16.4.6.2
Headers
[res.on.headers]
16.4.6.3
Restrictions on macro definitions
[res.on.macro.definitions]
16.4.6.4
Non-member functions
[global.functions]
16.4.6.5
Member functions
[member.functions]
16.4.6.6
Friend functions
[hidden.friends]
16.4.6.7
Constexpr functions and constructors
[constexpr.functions]
16.4.6.8
Requirements for stable algorithms
[algorithm.stable]
16.4.6.9
Reentrancy
[reentrancy]
16.4.6.10
Data race avoidance
[res.on.data.races]
16.4.6.11
Properties of library classes
[library.class.props]
16.4.6.12
Protection within classes
[protection.within.classes]
16.4.6.13
Derived classes
[derivation]
16.4.6.14
Restrictions on exception handling
[res.on.exception.handling]
16.4.6.15
Contract assertions
[res.contract.assertions]
16.4.6.16
Value of error codes
[value.error.codes]
16.4.6.17
Moved-from state of library types
[lib.types.movedfrom]
17
Language support library
[support]
17.1
General
[support.general]
17.2
Common definitions
[support.types]
17.2.1
Header synopsis
[cstddef.syn]
17.2.2
Header 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 synopsis
[version.syn]
17.3.3
Header synopsis
[limits.syn]
17.3.4
Enum float_round_style
[round.style]
17.3.5
Class template numeric_limits
[numeric.limits]
17.3.5.1
General
[numeric.limits.general]
17.3.5.2
numeric_limits members
[numeric.limits.members]
17.3.5.3
numeric_limits specializations
[numeric.special]
17.3.6
Header synopsis
[climits.syn]
17.3.7
Header synopsis
[cfloat.syn]
17.4
Arithmetic types
[support.arith.types]
17.4.1
Header synopsis
[cstdint.syn]
17.4.2
Header synopsis
[stdfloat.syn]
17.5
Startup and termination
[support.start.term]
17.6
Dynamic memory management
[support.dynamic]
17.6.1
General
[support.dynamic.general]
17.6.2
Header 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 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.7.6
Header synopsis
[type.index.synopsis]
17.7.7
Class type_index
[type.index]
17.8
Source location
[support.srcloc]
17.8.1
Header 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 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
Contract-violation handling
[support.contract]
17.10.1
Header synopsis
[contracts.syn]
17.10.2
Enumerations
[support.contract.enum]
17.10.3
Class contract_violation
[support.contract.violation]
17.10.4
Invoke default handler
[support.contract.invoke]
17.11
Initializer lists
[support.initlist]
17.11.1
General
[support.initlist.general]
17.11.2
Header synopsis
[initializer.list.syn]
17.11.3
Initializer list constructors
[support.initlist.cons]
17.11.4
Initializer list access
[support.initlist.access]
17.12
Comparisons
[cmp]
17.12.1
Header synopsis
[compare.syn]
17.12.2
Comparison category types
[cmp.categories]
17.12.2.1
Preamble
[cmp.categories.pre]
17.12.2.2
Class partial_ordering
[cmp.partialord]
17.12.2.3
Class weak_ordering
[cmp.weakord]
17.12.2.4
Class strong_ordering
[cmp.strongord]
17.12.3
Class template common_comparison_category
[cmp.common]
17.12.4
Concept three_way_comparable
[cmp.concept]
17.12.5
Result of three-way comparison
[cmp.result]
17.12.6
Comparison algorithms
[cmp.alg]
17.12.7
Type Ordering
[compare.type]
17.13
Coroutines
[support.coroutine]
17.13.1
General
[support.coroutine.general]
17.13.2
Header synopsis
[coroutine.syn]
17.13.3
Coroutine traits
[coroutine.traits]
17.13.3.1
General
[coroutine.traits.general]
17.13.3.2
Class template coroutine_traits
[coroutine.traits.primary]
17.13.4
Class template coroutine_handle
[coroutine.handle]
17.13.4.1
General
[coroutine.handle.general]
17.13.4.2
Construct/reset
[coroutine.handle.con]
17.13.4.3
Conversion
[coroutine.handle.conv]
17.13.4.4
Export/import
[coroutine.handle.export.import]
17.13.4.5
Observers
[coroutine.handle.observers]
17.13.4.6
Resumption
[coroutine.handle.resumption]
17.13.4.7
Promise access
[coroutine.handle.promise]
17.13.4.8
Comparison operators
[coroutine.handle.compare]
17.13.4.9
Hash support
[coroutine.handle.hash]
17.13.5
No-op coroutines
[coroutine.noop]
17.13.5.1
Class noop_coroutine_promise
[coroutine.promise.noop]
17.13.5.2
Class coroutine_handle
[coroutine.handle.noop]
17.13.5.2.1
General
[coroutine.handle.noop.general]
17.13.5.2.2
Conversion
[coroutine.handle.noop.conv]
17.13.5.2.3
Observers
[coroutine.handle.noop.observers]
17.13.5.2.4
Resumption
[coroutine.handle.noop.resumption]
17.13.5.2.5
Promise access
[coroutine.handle.noop.promise]
17.13.5.2.6
Address
[coroutine.handle.noop.address]
17.13.5.3
Function noop_coroutine
[coroutine.noop.coroutine]
17.13.6
Trivial awaitables
[coroutine.trivial.awaitables]
17.14
Other runtime support
[support.runtime]
17.14.1
General
[support.runtime.general]
17.14.2
Header synopsis
[cstdarg.syn]
17.14.3
Header synopsis
[csetjmp.syn]
17.14.4
Header synopsis
[csignal.syn]
17.14.5
Signal handlers
[support.signal]
17.15
C headers
[support.c.headers]
17.15.1
General
[support.c.headers.general]
17.15.2
Header synopsis
[complex.h.syn]
17.15.3
Header synopsis
[iso646.h.syn]
17.15.4
Header synopsis
[stdalign.h.syn]
17.15.5
Header synopsis
[stdbool.h.syn]
17.15.6
Header synopsis
[tgmath.h.syn]
17.15.7
Other C headers
[support.c.headers.other]
18
Concepts library
[concepts]
18.1
General
[concepts.general]
18.2
Equality preservation
[concepts.equality]
18.3
Header synopsis
[concepts.syn]
18.4
Language-related concepts
[concepts.lang]
18.4.1
General
[concepts.lang.general]
18.4.2
Concept same_as
[concept.same]
18.4.3
Concept derived_from
[concept.derived]
18.4.4
Concept convertible_to
[concept.convertible]
18.4.5
Concept common_reference_with
[concept.commonref]
18.4.6
Concept common_with
[concept.common]
18.4.7
Arithmetic concepts
[concepts.arithmetic]
18.4.8
Concept assignable_from
[concept.assignable]
18.4.9
Concept swappable
[concept.swappable]
18.4.10
Concept destructible
[concept.destructible]
18.4.11
Concept constructible_from
[concept.constructible]
18.4.12
Concept default_initializable
[concept.default.init]
18.4.13
Concept move_constructible
[concept.moveconstructible]
18.4.14
Concept copy_constructible
[concept.copyconstructible]
18.5
Comparison concepts
[concepts.compare]
18.5.1
General
[concepts.compare.general]
18.5.2
Boolean testability
[concept.booleantestable]
18.5.3
Comparison common types
[concept.comparisoncommontype]
18.5.4
Concept equality_comparable
[concept.equalitycomparable]
18.5.5
Concept totally_ordered
[concept.totallyordered]
18.6
Object concepts
[concepts.object]
18.7
Callable concepts
[concepts.callable]
18.7.1
General
[concepts.callable.general]
18.7.2
Concept invocable
[concept.invocable]
18.7.3
Concept regular_invocable
[concept.regularinvocable]
18.7.4
Concept predicate
[concept.predicate]
18.7.5
Concept relation
[concept.relation]
18.7.6
Concept equivalence_relation
[concept.equiv]
18.7.7
Concept strict_weak_order
[concept.strictweakorder]
19
Diagnostics library
[diagnostics]
19.1
General
[diagnostics.general]
19.2
Exception classes
[std.exceptions]
19.2.1
General
[std.exceptions.general]
19.2.2
Header 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 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 synopsis
[cerrno.syn]
19.5
System error support
[syserr]
19.5.1
General
[syserr.general]
19.5.2
Header 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.4.6
Formatting
[syserr.fmt]
19.5.5
Class error_condition
[syserr.errcondition]
19.5.5.1
Overview
[syserr.errcondition.overview]
19.5.5.2
Constructors
[syserr.errcondition.constructors]
19.5.5.3
Modifiers
[syserr.errcondition.modifiers]
19.5.5.4
Observers
[syserr.errcondition.observers]
19.5.5.5
Non-member functions
[syserr.errcondition.nonmembers]
19.5.6
Comparison operator functions
[syserr.compare]
19.5.7
System error hash support
[syserr.hash]
19.5.8
Class system_error
[syserr.syserr]
19.5.8.1
Overview
[syserr.syserr.overview]
19.5.8.2
Members
[syserr.syserr.members]
19.6
Stacktrace
[stacktrace]
19.6.1
General
[stacktrace.general]
19.6.2
Header synopsis
[stacktrace.syn]
19.6.3
Class stacktrace_entry
[stacktrace.entry]
19.6.3.1
Overview
[stacktrace.entry.overview]
19.6.3.2
Constructors
[stacktrace.entry.cons]
19.6.3.3
Observers
[stacktrace.entry.obs]
19.6.3.4
Query
[stacktrace.entry.query]
19.6.3.5
Comparison
[stacktrace.entry.cmp]
19.6.4
Class template basic_stacktrace
[stacktrace.basic]
19.6.4.1
Overview
[stacktrace.basic.overview]
19.6.4.2
Creation and assignment
[stacktrace.basic.cons]
19.6.4.3
Observers
[stacktrace.basic.obs]
19.6.4.4
Comparisons
[stacktrace.basic.cmp]
19.6.4.5
Modifiers
[stacktrace.basic.mod]
19.6.4.6
Non-member functions
[stacktrace.basic.nonmem]
19.6.5
Formatting support
[stacktrace.format]
19.6.6
Hash support
[stacktrace.basic.hash]
19.7
Debugging
[debugging]
19.7.1
General
[debugging.general]
19.7.2
Header synopsis
[debugging.syn]
19.7.3
Utility
[debugging.utility]
20
Memory management library
[mem]
20.1
General
[mem.general]
20.2
Memory
[memory]
20.2.1
General
[memory.general]
20.2.2
Header synopsis
[memory.syn]
20.2.3
Pointer traits
[pointer.traits]
20.2.3.1
General
[pointer.traits.general]
20.2.3.2
Member types
[pointer.traits.types]
20.2.3.3
Member functions
[pointer.traits.functions]
20.2.3.4
Optional members
[pointer.traits.optmem]
20.2.4
Pointer conversion
[pointer.conversion]
20.2.5
Pointer alignment
[ptr.align]
20.2.6
Explicit lifetime management
[obj.lifetime]
20.2.7
Allocator argument tag
[allocator.tag]
20.2.8
uses_allocator
[allocator.uses]
20.2.8.1
uses_allocator trait
[allocator.uses.trait]
20.2.8.2
Uses-allocator construction
[allocator.uses.construction]
20.2.9
Allocator traits
[allocator.traits]
20.2.9.1
General
[allocator.traits.general]
20.2.9.2
Member types
[allocator.traits.types]
20.2.9.3
Static member functions
[allocator.traits.members]
20.2.9.4
Other
[allocator.traits.other]
20.2.10
The default allocator
[default.allocator]
20.2.10.1
General
[default.allocator.general]
20.2.10.2
Members
[allocator.members]
20.2.10.3
Operators
[allocator.globals]
20.2.11
addressof
[specialized.addressof]
20.2.12
C library memory allocation
[c.malloc]
20.3
Pointer tagging
[ptrtag]
20.3.1
Pointer tagging limits
[ptrtag.bits]
20.3.2
Class template pointer_tag_pair
[ptrtag.pair]
20.3.2.1
General
[ptrtag.pair.general]
20.3.2.2
Constructors
[ptrtag.pair.cons]
20.3.2.3
Support for overaligned pointers
[ptrtag.pair.overalign]
20.3.2.4
Tagged pointer operations
[ptrtag.pair.tagops]
20.3.2.5
Accessors
[ptrtag.pair.accessors]
20.3.2.6
Swap
[ptrtag.pair.swap]
20.3.2.7
Comparisons
[ptrtag.pair.comp]
20.3.2.8
Tuple interface
[ptrtag.pair.get]
20.4
Smart pointers
[smartptr]
20.4.1
Unique-ownership pointers
[unique.ptr]
20.4.1.1
General
[unique.ptr.general]
20.4.1.2
Default deleters
[unique.ptr.dltr]
20.4.1.2.1
General
[unique.ptr.dltr.general]
20.4.1.2.2
default_delete
[unique.ptr.dltr.dflt]
20.4.1.2.3
default_delete
[unique.ptr.dltr.dflt1]
20.4.1.3
unique_ptr for single objects
[unique.ptr.single]
20.4.1.3.1
General
[unique.ptr.single.general]
20.4.1.3.2
Constructors
[unique.ptr.single.ctor]
20.4.1.3.3
Destructor
[unique.ptr.single.dtor]
20.4.1.3.4
Assignment
[unique.ptr.single.asgn]
20.4.1.3.5
Observers
[unique.ptr.single.observers]
20.4.1.3.6
Modifiers
[unique.ptr.single.modifiers]
20.4.1.4
unique_ptr for array objects with a runtime length
[unique.ptr.runtime]
20.4.1.4.1
General
[unique.ptr.runtime.general]
20.4.1.4.2
Constructors
[unique.ptr.runtime.ctor]
20.4.1.4.3
Assignment
[unique.ptr.runtime.asgn]
20.4.1.4.4
Observers
[unique.ptr.runtime.observers]
20.4.1.4.5
Modifiers
[unique.ptr.runtime.modifiers]
20.4.1.5
Creation
[unique.ptr.create]
20.4.1.6
Specialized algorithms
[unique.ptr.special]
20.4.1.7
I/O
[unique.ptr.io]
20.4.2
Shared-ownership pointers
[util.sharedptr]
20.4.2.1
Class bad_weak_ptr
[util.smartptr.weak.bad]
20.4.2.2
Class template shared_ptr
[util.smartptr.shared]
20.4.2.2.1
General
[util.smartptr.shared.general]
20.4.2.2.2
Constructors
[util.smartptr.shared.const]
20.4.2.2.3
Destructor
[util.smartptr.shared.dest]
20.4.2.2.4
Assignment
[util.smartptr.shared.assign]
20.4.2.2.5
Modifiers
[util.smartptr.shared.mod]
20.4.2.2.6
Observers
[util.smartptr.shared.obs]
20.4.2.2.7
Creation
[util.smartptr.shared.create]
20.4.2.2.8
Comparison
[util.smartptr.shared.cmp]
20.4.2.2.9
Specialized algorithms
[util.smartptr.shared.spec]
20.4.2.2.10
Casts
[util.smartptr.shared.cast]
20.4.2.2.11
get_deleter
[util.smartptr.getdeleter]
20.4.2.2.12
I/O
[util.smartptr.shared.io]
20.4.2.3
Class template weak_ptr
[util.smartptr.weak]
20.4.2.3.1
General
[util.smartptr.weak.general]
20.4.2.3.2
Constructors
[util.smartptr.weak.const]
20.4.2.3.3
Destructor
[util.smartptr.weak.dest]
20.4.2.3.4
Assignment
[util.smartptr.weak.assign]
20.4.2.3.5
Modifiers
[util.smartptr.weak.mod]
20.4.2.3.6
Observers
[util.smartptr.weak.obs]
20.4.2.3.7
Specialized algorithms
[util.smartptr.weak.spec]
20.4.2.4
Class template owner_less
[util.smartptr.ownerless]
20.4.2.5
Struct owner_hash
[util.smartptr.owner.hash]
20.4.2.6
Struct owner_equal
[util.smartptr.owner.equal]
20.4.2.7
Class template enable_shared_from_this
[util.smartptr.enab]
20.4.3
Smart pointer hash support
[util.smartptr.hash]
20.4.4
Smart pointer adaptors
[smartptr.adapt]
20.4.4.1
Class template out_ptr_t
[out.ptr.t]
20.4.4.2
Function template out_ptr
[out.ptr]
20.4.4.3
Class template inout_ptr_t
[inout.ptr.t]
20.4.4.4
Function template inout_ptr
[inout.ptr]
20.5
Types for composite class design
[mem.composite.types]
20.5.1
Class template indirect
[indirect]
20.5.1.1
General
[indirect.general]
20.5.1.2
Synopsis
[indirect.syn]
20.5.1.3
Constructors
[indirect.ctor]
20.5.1.4
Destructor
[indirect.dtor]
20.5.1.5
Assignment
[indirect.assign]
20.5.1.6
Observers
[indirect.obs]
20.5.1.7
Swap
[indirect.swap]
20.5.1.8
Relational operators
[indirect.relops]
20.5.1.9
Comparison with T
[indirect.comp.with.t]
20.5.1.10
Hash support
[indirect.hash]
20.5.2
Class template polymorphic
[polymorphic]
20.5.2.1
General
[polymorphic.general]
20.5.2.2
Synopsis
[polymorphic.syn]
20.5.2.3
Constructors
[polymorphic.ctor]
20.5.2.4
Destructor
[polymorphic.dtor]
20.5.2.5
Assignment
[polymorphic.assign]
20.5.2.6
Observers
[polymorphic.obs]
20.5.2.7
Swap
[polymorphic.swap]
20.6
Memory resources
[mem.res]
20.6.1
Header synopsis
[mem.res.syn]
20.6.2
Class memory_resource
[mem.res.class]
20.6.2.1
General
[mem.res.class.general]
20.6.2.2
Public member functions
[mem.res.public]
20.6.2.3
Private virtual member functions
[mem.res.private]
20.6.2.4
Equality
[mem.res.eq]
20.6.3
Class template polymorphic_allocator
[mem.poly.allocator.class]
20.6.3.1
General
[mem.poly.allocator.class.general]
20.6.3.2
Constructors
[mem.poly.allocator.ctor]
20.6.3.3
Member functions
[mem.poly.allocator.mem]
20.6.3.4
Equality
[mem.poly.allocator.eq]
20.6.4
Access to program-wide memory_resource objects
[mem.res.global]
20.6.5
Pool resource classes
[mem.res.pool]
20.6.5.1
Classes synchronized_pool_resource and unsynchronized_pool_resource
[mem.res.pool.overview]
20.6.5.2
pool_options data members
[mem.res.pool.options]
20.6.5.3
Constructors and destructors
[mem.res.pool.ctor]
20.6.5.4
Members
[mem.res.pool.mem]
20.6.6
Class monotonic_buffer_resource
[mem.res.monotonic.buffer]
20.6.6.1
General
[mem.res.monotonic.buffer.general]
20.6.6.2
Constructors and destructor
[mem.res.monotonic.buffer.ctor]
20.6.6.3
Members
[mem.res.monotonic.buffer.mem]
20.7
Class template scoped_allocator_adaptor
[allocator.adaptor]
20.7.1
Header synopsis
[allocator.adaptor.syn]
20.7.2
Member types
[allocator.adaptor.types]
20.7.3
Constructors
[allocator.adaptor.cnstr]
20.7.4
Members
[allocator.adaptor.members]
20.7.5
Operators
[scoped.adaptor.operators]
21
Metaprogramming library
[meta]
21.1
General
[meta.general]
21.2
Compile-time integer sequences
[intseq]
21.2.1
General
[intseq.general]
21.2.2
Class template integer_sequence
[intseq.intseq]
21.2.3
Alias template make_integer_sequence
[intseq.make]
21.2.4
Structured binding support
[intseq.binding]
21.3
Metaprogramming and type traits
[type.traits]
21.3.1
General
[type.traits.general]
21.3.2
Requirements
[meta.rqmts]
21.3.3
Header synopsis
[meta.type.synop]
21.3.4
Helper classes
[meta.help]
21.3.5
Unary type traits
[meta.unary]
21.3.5.1
General
[meta.unary.general]
21.3.5.2
Primary type categories
[meta.unary.cat]
21.3.5.3
Composite type traits
[meta.unary.comp]
21.3.5.4
Type properties
[meta.unary.prop]
21.3.6
Type property queries
[meta.unary.prop.query]
21.3.7
Relationships between types
[meta.rel]
21.3.8
Transformations between types
[meta.trans]
21.3.8.1
General
[meta.trans.general]
21.3.8.2
Const-volatile modifications
[meta.trans.cv]
21.3.8.3
Reference modifications
[meta.trans.ref]
21.3.8.4
Sign modifications
[meta.trans.sign]
21.3.8.5
Array modifications
[meta.trans.arr]
21.3.8.6
Pointer modifications
[meta.trans.ptr]
21.3.8.7
Other transformations
[meta.trans.other]
21.3.9
Logical operator traits
[meta.logical]
21.3.10
Member relationships
[meta.member]
21.3.11
Constant evaluation context
[meta.const.eval]
21.4
Reflection
[meta.reflection]
21.4.1
Header synopsis
[meta.syn]
21.4.2
Checking string literals
[meta.string.literal]
21.4.3
Promoting to static storage
[meta.define.static]
21.4.4
Class exception
[meta.reflection.exception]
21.4.5
Operator representations
[meta.reflection.operators]
21.4.6
Reflection names and locations
[meta.reflection.names]
21.4.7
Reflection queries
[meta.reflection.queries]
21.4.8
Scope identification
[meta.reflection.scope]
21.4.9
Access control context
[meta.reflection.access.context]
21.4.10
Member accessibility queries
[meta.reflection.access.queries]
21.4.11
Reflection member queries
[meta.reflection.member.queries]
21.4.12
Reflection layout queries
[meta.reflection.layout]
21.4.13
Annotation reflection
[meta.reflection.annotation]
21.4.14
Value extraction
[meta.reflection.extract]
21.4.15
Reflection substitution
[meta.reflection.substitute]
21.4.16
Expression result reflection
[meta.reflection.result]
21.4.17
Reflection class definition generation
[meta.reflection.define.aggregate]
21.4.18
Reflection type traits
[meta.reflection.traits]
21.5
Compile-time rational arithmetic
[ratio]
21.5.1
General
[ratio.general]
21.5.2
Header synopsis
[ratio.syn]
21.5.3
Class template ratio
[ratio.ratio]
21.5.4
Arithmetic on ratios
[ratio.arithmetic]
21.5.5
Comparison of ratios
[ratio.comparison]
21.5.6
SI types for ratio
[ratio.si]
22
General utilities library
[utilities]
22.1
General
[utilities.general]
22.2
Utility components
[utility]
22.2.1
Header synopsis
[utility.syn]
22.2.2
swap
[utility.swap]
22.2.3
exchange
[utility.exchange]
22.2.4
Forward/move helpers
[forward]
22.2.5
Function template as_const
[utility.as.const]
22.2.6
Function template declval
[declval]
22.2.7
Integer comparison functions
[utility.intcmp]
22.2.8
Function template to_underlying
[utility.underlying]
22.2.9
Undefined behavior
[utility.undefined]
22.2.10
Class template constant_wrapper
[const.wrap.class]
22.3
Pairs
[pairs]
22.3.1
General
[pairs.general]
22.3.2
Class template pair
[pairs.pair]
22.3.3
Specialized algorithms
[pairs.spec]
22.3.4
Tuple-like access to pair
[pair.astuple]
22.3.5
Piecewise construction
[pair.piecewise]
22.4
Tuples
[tuple]
22.4.1
General
[tuple.general]
22.4.2
Header synopsis
[tuple.syn]
22.4.3
Concept tuple-like
[tuple.like]
22.4.4
Class template tuple
[tuple.tuple]
22.4.4.1
General
[tuple.tuple.general]
22.4.4.2
Construction
[tuple.cnstr]
22.4.4.3
Assignment
[tuple.assign]
22.4.4.4
swap
[tuple.swap]
22.4.5
Tuple creation functions
[tuple.creation]
22.4.6
Calling a function with a tuple of arguments
[tuple.apply]
22.4.7
Tuple helper classes
[tuple.helper]
22.4.8
Element access
[tuple.elem]
22.4.9
Relational operators
[tuple.rel]
22.4.10
common_reference related specializations
[tuple.common.ref]
22.4.11
Tuple traits
[tuple.traits]
22.4.12
Tuple specialized algorithms
[tuple.special]
22.5
Optional objects
[optional]
22.5.1
General
[optional.general]
22.5.2
Header synopsis
[optional.syn]
22.5.3
Class template optional
[optional.optional]
22.5.3.1
General
[optional.optional.general]
22.5.3.2
Constructors
[optional.ctor]
22.5.3.3
Destructor
[optional.dtor]
22.5.3.4
Assignment
[optional.assign]
22.5.3.5
Swap
[optional.swap]
22.5.3.6
Iterator support
[optional.iterators]
22.5.3.7
Observers
[optional.observe]
22.5.3.8
Monadic operations
[optional.monadic]
22.5.3.9
Modifiers
[optional.mod]
22.5.4
Partial specialization of optional for reference types
[optional.optional.ref]
22.5.4.1
General
[optional.optional.ref.general]
22.5.4.2
Constructors
[optional.ref.ctor]
22.5.4.3
Assignment
[optional.ref.assign]
22.5.4.4
Swap
[optional.ref.swap]
22.5.4.5
Iterator support
[optional.ref.iterators]
22.5.4.6
Observers
[optional.ref.observe]
22.5.4.7
Monadic operations
[optional.ref.monadic]
22.5.4.8
Modifiers
[optional.ref.mod]
22.5.4.9
Exposition only helper functions
[optional.ref.expos]
22.5.5
No-value state indicator
[optional.nullopt]
22.5.6
Class bad_optional_access
[optional.bad.access]
22.5.7
Relational operators
[optional.relops]
22.5.8
Comparison with nullopt
[optional.nullops]
22.5.9
Comparison with T
[optional.comp.with.t]
22.5.10
Specialized algorithms
[optional.specalg]
22.5.11
Hash support
[optional.hash]
22.6
Variants
[variant]
22.6.1
General
[variant.general]
22.6.2
Header synopsis
[variant.syn]
22.6.3
Class template variant
[variant.variant]
22.6.3.1
General
[variant.variant.general]
22.6.3.2
Constructors
[variant.ctor]
22.6.3.3
Destructor
[variant.dtor]
22.6.3.4
Assignment
[variant.assign]
22.6.3.5
Modifiers
[variant.mod]
22.6.3.6
Value status
[variant.status]
22.6.3.7
Swap
[variant.swap]
22.6.4
variant helper classes
[variant.helper]
22.6.5
Value access
[variant.get]
22.6.6
Relational operators
[variant.relops]
22.6.7
Visitation
[variant.visit]
22.6.8
Class monostate
[variant.monostate]
22.6.9
monostate relational operators
[variant.monostate.relops]
22.6.10
Specialized algorithms
[variant.specalg]
22.6.11
Class bad_variant_access
[variant.bad.access]
22.6.12
Hash support
[variant.hash]
22.7
Storage for any type
[any]
22.7.1
General
[any.general]
22.7.2
Header synopsis
[any.synop]
22.7.3
Class bad_any_cast
[any.bad.any.cast]
22.7.4
Class any
[any.class]
22.7.4.1
General
[any.class.general]
22.7.4.2
Construction and destruction
[any.cons]
22.7.4.3
Assignment
[any.assign]
22.7.4.4
Modifiers
[any.modifiers]
22.7.4.5
Observers
[any.observers]
22.7.5
Non-member functions
[any.nonmembers]
22.8
Expected objects
[expected]
22.8.1
General
[expected.general]
22.8.2
Header synopsis
[expected.syn]
22.8.3
Class template unexpected
[expected.unexpected]
22.8.3.1
General
[expected.un.general]
22.8.3.2
Constructors
[expected.un.cons]
22.8.3.3
Observers
[expected.un.obs]
22.8.3.4
Swap
[expected.un.swap]
22.8.3.5
Equality operator
[expected.un.eq]
22.8.4
Class template bad_expected_access
[expected.bad]
22.8.5
Class template specialization bad_expected_access
[expected.bad.void]
22.8.6
Class template expected
[expected.expected]
22.8.6.1
General
[expected.object.general]
22.8.6.2
Constructors
[expected.object.cons]
22.8.6.3
Destructor
[expected.object.dtor]
22.8.6.4
Assignment
[expected.object.assign]
22.8.6.5
Swap
[expected.object.swap]
22.8.6.6
Observers
[expected.object.obs]
22.8.6.7
Monadic operations
[expected.object.monadic]
22.8.6.8
Equality operators
[expected.object.eq]
22.8.7
Partial specialization of expected for void types
[expected.void]
22.8.7.1
General
[expected.void.general]
22.8.7.2
Constructors
[expected.void.cons]
22.8.7.3
Destructor
[expected.void.dtor]
22.8.7.4
Assignment
[expected.void.assign]
22.8.7.5
Swap
[expected.void.swap]
22.8.7.6
Observers
[expected.void.obs]
22.8.7.7
Monadic operations
[expected.void.monadic]
22.8.7.8
Equality operators
[expected.void.eq]
22.9
Bitsets
[bitset]
22.9.1
Header synopsis
[bitset.syn]
22.9.2
Class template bitset
[template.bitset]
22.9.2.1
General
[template.bitset.general]
22.9.2.2
Constructors
[bitset.cons]
22.9.2.3
Members
[bitset.members]
22.9.3
bitset hash support
[bitset.hash]
22.9.4
bitset operators
[bitset.operators]
22.10
Function objects
[function.objects]
22.10.1
General
[function.objects.general]
22.10.2
Header synopsis
[functional.syn]
22.10.3
Definitions
[func.def]
22.10.4
Requirements
[func.require]
22.10.5
invoke functions
[func.invoke]
22.10.6
Class template reference_wrapper
[refwrap]
22.10.6.1
General
[refwrap.general]
22.10.6.2
Constructors
[refwrap.const]
22.10.6.3
Assignment
[refwrap.assign]
22.10.6.4
Access
[refwrap.access]
22.10.6.5
Invocation
[refwrap.invoke]
22.10.6.6
Comparisons
[refwrap.comparisons]
22.10.6.7
Helper functions
[refwrap.helpers]
22.10.6.8
common_reference related specializations
[refwrap.common.ref]
22.10.7
Arithmetic operations
[arithmetic.operations]
22.10.7.1
General
[arithmetic.operations.general]
22.10.7.2
Class template plus
[arithmetic.operations.plus]
22.10.7.3
Class template minus
[arithmetic.operations.minus]
22.10.7.4
Class template multiplies
[arithmetic.operations.multiplies]
22.10.7.5
Class template divides
[arithmetic.operations.divides]
22.10.7.6
Class template modulus
[arithmetic.operations.modulus]
22.10.7.7
Class template negate
[arithmetic.operations.negate]
22.10.8
Comparisons
[comparisons]
22.10.8.1
General
[comparisons.general]
22.10.8.2
Class template equal_to
[comparisons.equal.to]
22.10.8.3
Class template not_equal_to
[comparisons.not.equal.to]
22.10.8.4
Class template greater
[comparisons.greater]
22.10.8.5
Class template less
[comparisons.less]
22.10.8.6
Class template greater_equal
[comparisons.greater.equal]
22.10.8.7
Class template less_equal
[comparisons.less.equal]
22.10.8.8
Class compare_three_way
[comparisons.three.way]
22.10.9
Concept-constrained comparisons
[range.cmp]
22.10.10
Logical operations
[logical.operations]
22.10.10.1
General
[logical.operations.general]
22.10.10.2
Class template logical_and
[logical.operations.and]
22.10.10.3
Class template logical_or
[logical.operations.or]
22.10.10.4
Class template logical_not
[logical.operations.not]
22.10.11
Bitwise operations
[bitwise.operations]
22.10.11.1
General
[bitwise.operations.general]
22.10.11.2
Class template bit_and
[bitwise.operations.and]
22.10.11.3
Class template bit_or
[bitwise.operations.or]
22.10.11.4
Class template bit_xor
[bitwise.operations.xor]
22.10.11.5
Class template bit_not
[bitwise.operations.not]
22.10.12
Class identity
[func.identity]
22.10.13
Function template not_fn
[func.not.fn]
22.10.14
Function templates bind_front and bind_back
[func.bind.partial]
22.10.15
Function object binders
[func.bind]
22.10.15.1
General
[func.bind.general]
22.10.15.2
Class template is_bind_expression
[func.bind.isbind]
22.10.15.3
Class template is_placeholder
[func.bind.isplace]
22.10.15.4
Function template bind
[func.bind.bind]
22.10.15.5
Placeholders
[func.bind.place]
22.10.16
Function template mem_fn
[func.memfn]
22.10.17
Polymorphic function wrappers
[func.wrap]
22.10.17.1
General
[func.wrap.general]
22.10.17.2
Class bad_function_call
[func.wrap.badcall]
22.10.17.3
Class template function
[func.wrap.func]
22.10.17.3.1
General
[func.wrap.func.general]
22.10.17.3.2
Constructors and destructor
[func.wrap.func.con]
22.10.17.3.3
Modifiers
[func.wrap.func.mod]
22.10.17.3.4
Capacity
[func.wrap.func.cap]
22.10.17.3.5
Invocation
[func.wrap.func.inv]
22.10.17.3.6
Target access
[func.wrap.func.targ]
22.10.17.3.7
Null pointer comparison operator functions
[func.wrap.func.nullptr]
22.10.17.3.8
Specialized algorithms
[func.wrap.func.alg]
22.10.17.4
Move-only wrapper
[func.wrap.move]
22.10.17.4.1
General
[func.wrap.move.general]
22.10.17.4.2
Class template move_only_function
[func.wrap.move.class]
22.10.17.4.3
Constructors, assignments, and destructor
[func.wrap.move.ctor]
22.10.17.4.4
Invocation
[func.wrap.move.inv]
22.10.17.4.5
Utility
[func.wrap.move.util]
22.10.17.5
Copyable wrapper
[func.wrap.copy]
22.10.17.5.1
General
[func.wrap.copy.general]
22.10.17.5.2
Class template copyable_function
[func.wrap.copy.class]
22.10.17.5.3
Constructors, assignments, and destructor
[func.wrap.copy.ctor]
22.10.17.5.4
Invocation
[func.wrap.copy.inv]
22.10.17.5.5
Utility
[func.wrap.copy.util]
22.10.17.6
Non-owning wrapper
[func.wrap.ref]
22.10.17.6.1
General
[func.wrap.ref.general]
22.10.17.6.2
Class template function_ref
[func.wrap.ref.class]
22.10.17.6.3
Constructors and assignment operators
[func.wrap.ref.ctor]
22.10.17.6.4
Invocation
[func.wrap.ref.inv]
22.10.17.6.5
Deduction guides
[func.wrap.ref.deduct]
22.10.18
Searchers
[func.search]
22.10.18.1
General
[func.search.general]
22.10.18.2
Class template default_searcher
[func.search.default]
22.10.18.3
Class template boyer_moore_searcher
[func.search.bm]
22.10.18.4
Class template boyer_moore_horspool_searcher
[func.search.bmh]
22.10.19
Class template hash
[unord.hash]
22.11
Bit manipulation
[bit]
22.11.1
General
[bit.general]
22.11.2
Header synopsis
[bit.syn]
22.11.3
Function template bit_cast
[bit.cast]
22.11.4
byteswap
[bit.byteswap]
22.11.5
Integral powers of 2
[bit.pow.two]
22.11.6
Shifting
[bit.shift]
22.11.7
Rotating
[bit.rotate]
22.11.8
Counting
[bit.count]
22.11.9
Permutation
[bit.permute]
22.11.10
Endian
[bit.endian]
22.12
Header synopsis
[stdbit.h.syn]
23
Containers library
[containers]
23.1
General
[containers.general]
23.2
Requirements
[container.requirements]
23.2.1
Preamble
[container.requirements.pre]
23.2.2
General containers
[container.requirements.general]
23.2.2.1
Introduction
[container.intro.reqmts]
23.2.2.2
Container requirements
[container.reqmts]
23.2.2.3
Reversible container requirements
[container.rev.reqmts]
23.2.2.4
Optional container requirements
[container.opt.reqmts]
23.2.2.5
Allocator-aware containers
[container.alloc.reqmts]
23.2.3
Container data races
[container.requirements.dataraces]
23.2.4
Sequence containers
[sequence.reqmts]
23.2.5
Node handles
[container.node]
23.2.5.1
Overview
[container.node.overview]
23.2.5.2
Constructors, copy, and assignment
[container.node.cons]
23.2.5.3
Destructor
[container.node.dtor]
23.2.5.4
Observers
[container.node.observers]
23.2.5.5
Modifiers
[container.node.modifiers]
23.2.6
Insert return type
[container.insert.return]
23.2.7
Associative containers
[associative.reqmts]
23.2.7.1
General
[associative.reqmts.general]
23.2.7.2
Exception safety guarantees
[associative.reqmts.except]
23.2.8
Unordered associative containers
[unord.req]
23.2.8.1
General
[unord.req.general]
23.2.8.2
Exception safety guarantees
[unord.req.except]
23.3
Sequence containers
[sequences]
23.3.1
General
[sequences.general]
23.3.2
Header synopsis
[array.syn]
23.3.3
Class template array
[array]
23.3.3.1
Overview
[array.overview]
23.3.3.2
Constructors, copy, and assignment
[array.cons]
23.3.3.3
Member functions
[array.members]
23.3.3.4
Specialized algorithms
[array.special]
23.3.3.5
Zero-sized arrays
[array.zero]
23.3.3.6
Array creation functions
[array.creation]
23.3.3.7
Tuple interface
[array.tuple]
23.3.4
Header synopsis
[deque.syn]
23.3.5
Class template deque
[deque]
23.3.5.1
Overview
[deque.overview]
23.3.5.2
Constructors, copy, and assignment
[deque.cons]
23.3.5.3
Capacity
[deque.capacity]
23.3.5.4
Modifiers
[deque.modifiers]
23.3.5.5
Erasure
[deque.erasure]
23.3.6
Header synopsis
[forward.list.syn]
23.3.7
Class template forward_list
[forward.list]
23.3.7.1
Overview
[forward.list.overview]
23.3.7.2
Constructors, copy, and assignment
[forward.list.cons]
23.3.7.3
Iterators
[forward.list.iter]
23.3.7.4
Element access
[forward.list.access]
23.3.7.5
Modifiers
[forward.list.modifiers]
23.3.7.6
Operations
[forward.list.ops]
23.3.7.7
Erasure
[forward.list.erasure]
23.3.8
Header synopsis
[hive.syn]
23.3.9
Class template hive
[hive]
23.3.9.1
Overview
[hive.overview]
23.3.9.2
Constructors, copy, and assignment
[hive.cons]
23.3.9.3
Capacity
[hive.capacity]
23.3.9.4
Modifiers
[hive.modifiers]
23.3.9.5
Operations
[hive.operations]
23.3.9.6
Erasure
[hive.erasure]
23.3.10
Header synopsis
[list.syn]
23.3.11
Class template list
[list]
23.3.11.1
Overview
[list.overview]
23.3.11.2
Constructors, copy, and assignment
[list.cons]
23.3.11.3
Capacity
[list.capacity]
23.3.11.4
Modifiers
[list.modifiers]
23.3.11.5
Operations
[list.ops]
23.3.11.6
Erasure
[list.erasure]
23.3.12
Header synopsis
[vector.syn]
23.3.13
Class template vector
[vector]
23.3.13.1
Overview
[vector.overview]
23.3.13.2
Constructors
[vector.cons]
23.3.13.3
Capacity
[vector.capacity]
23.3.13.4
Data
[vector.data]
23.3.13.5
Modifiers
[vector.modifiers]
23.3.13.6
Erasure
[vector.erasure]
23.3.14
Specialization of vector for bool
[vector.bool]
23.3.14.1
Partial class template specialization vector
[vector.bool.pspc]
23.3.14.2
Formatter specialization for vector
[vector.bool.fmt]
23.3.15
Header synopsis
[inplace.vector.syn]
23.3.16
Class template inplace_vector
[inplace.vector]
23.3.16.1
Overview
[inplace.vector.overview]
23.3.16.2
Constructors
[inplace.vector.cons]
23.3.16.3
Capacity
[inplace.vector.capacity]
23.3.16.4
Data
[inplace.vector.data]
23.3.16.5
Modifiers
[inplace.vector.modifiers]
23.3.16.6
Erasure
[inplace.vector.erasure]
23.4
Associative containers
[associative]
23.4.1
General
[associative.general]
23.4.2
Header synopsis
[associative.map.syn]
23.4.3
Class template map
[map]
23.4.3.1
Overview
[map.overview]
23.4.3.2
Constructors, copy, and assignment
[map.cons]
23.4.3.3
Element access
[map.access]
23.4.3.4
Modifiers
[map.modifiers]
23.4.3.5
Erasure
[map.erasure]
23.4.4
Class template multimap
[multimap]
23.4.4.1
Overview
[multimap.overview]
23.4.4.2
Constructors
[multimap.cons]
23.4.4.3
Modifiers
[multimap.modifiers]
23.4.4.4
Erasure
[multimap.erasure]
23.4.5
Header synopsis
[associative.set.syn]
23.4.6
Class template set
[set]
23.4.6.1
Overview
[set.overview]
23.4.6.2
Constructors, copy, and assignment
[set.cons]
23.4.6.3
Erasure
[set.erasure]
23.4.6.4
Modifiers
[set.modifiers]
23.4.7
Class template multiset
[multiset]
23.4.7.1
Overview
[multiset.overview]
23.4.7.2
Constructors
[multiset.cons]
23.4.7.3
Erasure
[multiset.erasure]
23.5
Unordered associative containers
[unord]
23.5.1
General
[unord.general]
23.5.2
Header synopsis
[unord.map.syn]
23.5.3
Class template unordered_map
[unord.map]
23.5.3.1
Overview
[unord.map.overview]
23.5.3.2
Constructors
[unord.map.cnstr]
23.5.3.3
Element access
[unord.map.elem]
23.5.3.4
Modifiers
[unord.map.modifiers]
23.5.3.5
Erasure
[unord.map.erasure]
23.5.4
Class template unordered_multimap
[unord.multimap]
23.5.4.1
Overview
[unord.multimap.overview]
23.5.4.2
Constructors
[unord.multimap.cnstr]
23.5.4.3
Modifiers
[unord.multimap.modifiers]
23.5.4.4
Erasure
[unord.multimap.erasure]
23.5.5
Header synopsis
[unord.set.syn]
23.5.6
Class template unordered_set
[unord.set]
23.5.6.1
Overview
[unord.set.overview]
23.5.6.2
Constructors
[unord.set.cnstr]
23.5.6.3
Erasure
[unord.set.erasure]
23.5.6.4
Modifiers
[unord.set.modifiers]
23.5.7
Class template unordered_multiset
[unord.multiset]
23.5.7.1
Overview
[unord.multiset.overview]
23.5.7.2
Constructors
[unord.multiset.cnstr]
23.5.7.3
Erasure
[unord.multiset.erasure]
23.6
Container adaptors
[container.adaptors]
23.6.1
General
[container.adaptors.general]
23.6.2
Header synopsis
[queue.syn]
23.6.3
Class template queue
[queue]
23.6.3.1
Definition
[queue.defn]
23.6.3.2
Constructors
[queue.cons]
23.6.3.3
Constructors with allocators
[queue.cons.alloc]
23.6.3.4
Modifiers
[queue.mod]
23.6.3.5
Operators
[queue.ops]
23.6.3.6
Specialized algorithms
[queue.special]
23.6.4
Class template priority_queue
[priority.queue]
23.6.4.1
Overview
[priqueue.overview]
23.6.4.2
Constructors
[priqueue.cons]
23.6.4.3
Constructors with allocators
[priqueue.cons.alloc]
23.6.4.4
Members
[priqueue.members]
23.6.4.5
Specialized algorithms
[priqueue.special]
23.6.5
Header synopsis
[stack.syn]
23.6.6
Class template stack
[stack]
23.6.6.1
General
[stack.general]
23.6.6.2
Definition
[stack.defn]
23.6.6.3
Constructors
[stack.cons]
23.6.6.4
Constructors with allocators
[stack.cons.alloc]
23.6.6.5
Modifiers
[stack.mod]
23.6.6.6
Operators
[stack.ops]
23.6.6.7
Specialized algorithms
[stack.special]
23.6.7
Header synopsis
[flat.map.syn]
23.6.8
Class template flat_map
[flat.map]
23.6.8.1
Overview
[flat.map.overview]
23.6.8.2
Definition
[flat.map.defn]
23.6.8.3
Constructors
[flat.map.cons]
23.6.8.4
Constructors with allocators
[flat.map.cons.alloc]
23.6.8.5
Capacity
[flat.map.capacity]
23.6.8.6
Access
[flat.map.access]
23.6.8.7
Modifiers
[flat.map.modifiers]
23.6.8.8
Erasure
[flat.map.erasure]
23.6.9
Class template flat_multimap
[flat.multimap]
23.6.9.1
Overview
[flat.multimap.overview]
23.6.9.2
Definition
[flat.multimap.defn]
23.6.9.3
Constructors
[flat.multimap.cons]
23.6.9.4
Constructors with allocators
[flat.multimap.cons.alloc]
23.6.9.5
Erasure
[flat.multimap.erasure]
23.6.10
Header synopsis
[flat.set.syn]
23.6.11
Class template flat_set
[flat.set]
23.6.11.1
Overview
[flat.set.overview]
23.6.11.2
Definition
[flat.set.defn]
23.6.11.3
Constructors
[flat.set.cons]
23.6.11.4
Constructors with allocators
[flat.set.cons.alloc]
23.6.11.5
Modifiers
[flat.set.modifiers]
23.6.11.6
Erasure
[flat.set.erasure]
23.6.12
Class template flat_multiset
[flat.multiset]
23.6.12.1
Overview
[flat.multiset.overview]
23.6.12.2
Definition
[flat.multiset.defn]
23.6.12.3
Constructors
[flat.multiset.cons]
23.6.12.4
Constructors with allocators
[flat.multiset.cons.alloc]
23.6.12.5
Modifiers
[flat.multiset.modifiers]
23.6.12.6
Erasure
[flat.multiset.erasure]
23.6.13
Container adaptors formatting
[container.adaptors.format]
23.7
Views
[views]
23.7.1
General
[views.general]
23.7.2
Contiguous access
[views.contiguous]
23.7.2.1
Header synopsis
[span.syn]
23.7.2.2
Class template span
[views.span]
23.7.2.2.1
Overview
[span.overview]
23.7.2.2.2
Constructors, copy, and assignment
[span.cons]
23.7.2.2.3
Deduction guides
[span.deduct]
23.7.2.2.4
Subviews
[span.sub]
23.7.2.2.5
Observers
[span.obs]
23.7.2.2.6
Element access
[span.elem]
23.7.2.2.7
Iterator support
[span.iterators]
23.7.2.3
Views of object representation
[span.objectrep]
23.7.3
Multidimensional access
[views.multidim]
23.7.3.1
Overview
[mdspan.overview]
23.7.3.2
Header synopsis
[mdspan.syn]
23.7.3.3
Class template extents
[mdspan.extents]
23.7.3.3.1
Overview
[mdspan.extents.overview]
23.7.3.3.2
Exposition-only helpers
[mdspan.extents.expo]
23.7.3.3.3
Constructors
[mdspan.extents.cons]
23.7.3.3.4
Observers of the multidimensional index space
[mdspan.extents.obs]
23.7.3.3.5
Comparison operators
[mdspan.extents.cmp]
23.7.3.3.6
Alias template dextents
[mdspan.extents.dextents]
23.7.3.3.7
Alias template dims
[mdspan.extents.dims]
23.7.3.4
Layout mapping
[mdspan.layout]
23.7.3.4.1
General
[mdspan.layout.general]
23.7.3.4.2
Requirements
[mdspan.layout.reqmts]
23.7.3.4.3
Layout mapping policy requirements
[mdspan.layout.policy.reqmts]
23.7.3.4.4
Layout mapping policies
[mdspan.layout.policy.overview]
23.7.3.4.5
Class template layout_left::mapping
[mdspan.layout.left]
23.7.3.4.5.1
Overview
[mdspan.layout.left.overview]
23.7.3.4.5.2
Constructors
[mdspan.layout.left.cons]
23.7.3.4.5.3
Observers
[mdspan.layout.left.obs]
23.7.3.4.6
Class template layout_right::mapping
[mdspan.layout.right]
23.7.3.4.6.1
Overview
[mdspan.layout.right.overview]
23.7.3.4.6.2
Constructors
[mdspan.layout.right.cons]
23.7.3.4.6.3
Observers
[mdspan.layout.right.obs]
23.7.3.4.7
Class template layout_stride::mapping
[mdspan.layout.stride]
23.7.3.4.7.1
Overview
[mdspan.layout.stride.overview]
23.7.3.4.7.2
Exposition-only helpers
[mdspan.layout.stride.expo]
23.7.3.4.7.3
Constructors
[mdspan.layout.stride.cons]
23.7.3.4.7.4
Observers
[mdspan.layout.stride.obs]
23.7.3.4.8
Class template layout_left_padded::mapping
[mdspan.layout.leftpad]
23.7.3.4.8.1
Overview
[mdspan.layout.leftpad.overview]
23.7.3.4.8.2
Exposition-only members
[mdspan.layout.leftpad.expo]
23.7.3.4.8.3
Constructors
[mdspan.layout.leftpad.cons]
23.7.3.4.8.4
Observers
[mdspan.layout.leftpad.obs]
23.7.3.4.9
Class template layout_right_padded::mapping
[mdspan.layout.rightpad]
23.7.3.4.9.1
Overview
[mdspan.layout.rightpad.overview]
23.7.3.4.9.2
Exposition-only members
[mdspan.layout.rightpad.expo]
23.7.3.4.9.3
Constructors
[mdspan.layout.rightpad.cons]
23.7.3.4.9.4
Observers
[mdspan.layout.rightpad.obs]
23.7.3.5
Accessor policy
[mdspan.accessor]
23.7.3.5.1
General
[mdspan.accessor.general]
23.7.3.5.2
Requirements
[mdspan.accessor.reqmts]
23.7.3.5.3
Class template default_accessor
[mdspan.accessor.default]
23.7.3.5.3.1
Overview
[mdspan.accessor.default.overview]
23.7.3.5.3.2
Members
[mdspan.accessor.default.members]
23.7.3.5.4
Class template aligned_accessor
[mdspan.accessor.aligned]
23.7.3.5.4.1
Overview
[mdspan.accessor.aligned.overview]
23.7.3.5.4.2
Members
[mdspan.accessor.aligned.members]
23.7.3.6
Class template mdspan
[mdspan.mdspan]
23.7.3.6.1
Overview
[mdspan.mdspan.overview]
23.7.3.6.2
Constructors
[mdspan.mdspan.cons]
23.7.3.6.3
Members
[mdspan.mdspan.members]
23.7.3.7
submdspan
[mdspan.sub]
23.7.3.7.1
Overview
[mdspan.sub.overview]
23.7.3.7.2
Range slices
[mdspan.sub.range.slices]
23.7.3.7.3
submdspan_mapping_result
[mdspan.sub.map.result]
23.7.3.7.4
Exposition-only helpers
[mdspan.sub.helpers]
23.7.3.7.5
submdspan slice canonicalization
[mdspan.sub.canonical]
23.7.3.7.6
subextents function
[mdspan.sub.extents]
23.7.3.7.7
Specializations of submdspan_mapping
[mdspan.sub.map]
23.7.3.7.7.1
Sliceable layout mapping requirements
[mdspan.sub.map.sliceable]
23.7.3.7.7.2
Common
[mdspan.sub.map.common]
23.7.3.7.7.3
layout_left specialization of submdspan_mapping
[mdspan.sub.map.left]
23.7.3.7.7.4
layout_right specialization of submdspan_mapping
[mdspan.sub.map.right]
23.7.3.7.7.5
layout_stride specialization of submdspan_mapping
[mdspan.sub.map.stride]
23.7.3.7.7.6
layout_left_padded specialization of submdspan_mapping
[mdspan.sub.map.leftpad]
23.7.3.7.7.7
layout_right_padded specialization of submdspan_mapping
[mdspan.sub.map.rightpad]
23.7.3.7.8
submdspan function template
[mdspan.sub.sub]
23.7.3.8
Multidimensional copy algorithms
[mdspan.copy]
24
Iterators library
[iterators]
24.1
General
[iterators.general]
24.2
Header synopsis
[iterator.synopsis]
24.3
Iterator requirements
[iterator.requirements]
24.3.1
General
[iterator.requirements.general]
24.3.2
Associated types
[iterator.assoc.types]
24.3.2.1
Incrementable traits
[incrementable.traits]
24.3.2.2
Indirectly readable traits
[readable.traits]
24.3.2.3
Iterator traits
[iterator.traits]
24.3.3
Customization point objects
[iterator.cust]
24.3.3.1
ranges::iter_move
[iterator.cust.move]
24.3.3.2
ranges::iter_swap
[iterator.cust.swap]
24.3.4
Iterator concepts
[iterator.concepts]
24.3.4.1
General
[iterator.concepts.general]
24.3.4.2
Concept indirectly_readable
[iterator.concept.readable]
24.3.4.3
Concept indirectly_writable
[iterator.concept.writable]
24.3.4.4
Concept weakly_incrementable
[iterator.concept.winc]
24.3.4.5
Concept incrementable
[iterator.concept.inc]
24.3.4.6
Concept input_or_output_iterator
[iterator.concept.iterator]
24.3.4.7
Concept sentinel_for
[iterator.concept.sentinel]
24.3.4.8
Concept sized_sentinel_for
[iterator.concept.sizedsentinel]
24.3.4.9
Concept input_iterator
[iterator.concept.input]
24.3.4.10
Concept output_iterator
[iterator.concept.output]
24.3.4.11
Concept forward_iterator
[iterator.concept.forward]
24.3.4.12
Concept bidirectional_iterator
[iterator.concept.bidir]
24.3.4.13
Concept random_access_iterator
[iterator.concept.random.access]
24.3.4.14
Concept contiguous_iterator
[iterator.concept.contiguous]
24.3.5
C++17 iterator requirements
[iterator.cpp17]
24.3.5.1
General
[iterator.cpp17.general]
24.3.5.2
Cpp17Iterator
[iterator.iterators]
24.3.5.3
Input iterators
[input.iterators]
24.3.5.4
Output iterators
[output.iterators]
24.3.5.5
Forward iterators
[forward.iterators]
24.3.5.6
Bidirectional iterators
[bidirectional.iterators]
24.3.5.7
Random access iterators
[random.access.iterators]
24.3.6
Indirect callable requirements
[indirectcallable]
24.3.6.1
General
[indirectcallable.general]
24.3.6.2
Indirect callable traits
[indirectcallable.traits]
24.3.6.3
Indirect callables
[indirectcallable.indirectinvocable]
24.3.6.4
Alias template projected
[projected]
24.3.7
Common algorithm requirements
[alg.req]
24.3.7.1
General
[alg.req.general]
24.3.7.2
Concept indirectly_movable
[alg.req.ind.move]
24.3.7.3
Concept indirectly_copyable
[alg.req.ind.copy]
24.3.7.4
Concept indirectly_swappable
[alg.req.ind.swap]
24.3.7.5
Concept indirectly_comparable
[alg.req.ind.cmp]
24.3.7.6
Concept permutable
[alg.req.permutable]
24.3.7.7
Concept mergeable
[alg.req.mergeable]
24.3.7.8
Concept sortable
[alg.req.sortable]
24.4
Iterator primitives
[iterator.primitives]
24.4.1
General
[iterator.primitives.general]
24.4.2
Standard iterator tags
[std.iterator.tags]
24.4.3
Iterator operations
[iterator.operations]
24.4.4
Range iterator operations
[range.iter.ops]
24.4.4.1
General
[range.iter.ops.general]
24.4.4.2
ranges::advance
[range.iter.op.advance]
24.4.4.3
ranges::distance
[range.iter.op.distance]
24.4.4.4
ranges::next
[range.iter.op.next]
24.4.4.5
ranges::prev
[range.iter.op.prev]
24.5
Iterator adaptors
[predef.iterators]
24.5.1
Reverse iterators
[reverse.iterators]
24.5.1.1
General
[reverse.iterators.general]
24.5.1.2
Class template reverse_iterator
[reverse.iterator]
24.5.1.3
Requirements
[reverse.iter.requirements]
24.5.1.4
Construction and assignment
[reverse.iter.cons]
24.5.1.5
Conversion
[reverse.iter.conv]
24.5.1.6
Element access
[reverse.iter.elem]
24.5.1.7
Navigation
[reverse.iter.nav]
24.5.1.8
Comparisons
[reverse.iter.cmp]
24.5.1.9
Non-member functions
[reverse.iter.nonmember]
24.5.2
Insert iterators
[insert.iterators]
24.5.2.1
General
[insert.iterators.general]
24.5.2.2
Class template back_insert_iterator
[back.insert.iterator]
24.5.2.2.1
General
[back.insert.iter.general]
24.5.2.2.2
Operations
[back.insert.iter.ops]
24.5.2.2.3
back_inserter
[back.inserter]
24.5.2.3
Class template front_insert_iterator
[front.insert.iterator]
24.5.2.3.1
General
[front.insert.iter.general]
24.5.2.3.2
Operations
[front.insert.iter.ops]
24.5.2.3.3
front_inserter
[front.inserter]
24.5.2.4
Class template insert_iterator
[insert.iterator]
24.5.2.4.1
General
[insert.iter.general]
24.5.2.4.2
Operations
[insert.iter.ops]
24.5.2.4.3
inserter
[inserter]
24.5.3
Constant iterators and sentinels
[const.iterators]
24.5.3.1
General
[const.iterators.general]
24.5.3.2
Alias templates
[const.iterators.alias]
24.5.3.3
Class template basic_const_iterator
[const.iterators.iterator]
24.5.3.4
Member types
[const.iterators.types]
24.5.3.5
Operations
[const.iterators.ops]
24.5.4
Move iterators and sentinels
[move.iterators]
24.5.4.1
General
[move.iterators.general]
24.5.4.2
Class template move_iterator
[move.iterator]
24.5.4.3
Requirements
[move.iter.requirements]
24.5.4.4
Construction and assignment
[move.iter.cons]
24.5.4.5
Conversion
[move.iter.op.conv]
24.5.4.6
Element access
[move.iter.elem]
24.5.4.7
Navigation
[move.iter.nav]
24.5.4.8
Comparisons
[move.iter.op.comp]
24.5.4.9
Non-member functions
[move.iter.nonmember]
24.5.4.10
Class template move_sentinel
[move.sentinel]
24.5.4.11
Operations
[move.sent.ops]
24.5.5
Common iterators
[iterators.common]
24.5.5.1
Class template common_iterator
[common.iterator]
24.5.5.2
Associated types
[common.iter.types]
24.5.5.3
Constructors and conversions
[common.iter.const]
24.5.5.4
Accessors
[common.iter.access]
24.5.5.5
Navigation
[common.iter.nav]
24.5.5.6
Comparisons
[common.iter.cmp]
24.5.5.7
Customizations
[common.iter.cust]
24.5.6
Default sentinel
[default.sentinel]
24.5.7
Counted iterators
[iterators.counted]
24.5.7.1
Class template counted_iterator
[counted.iterator]
24.5.7.2
Constructors and conversions
[counted.iter.const]
24.5.7.3
Accessors
[counted.iter.access]
24.5.7.4
Element access
[counted.iter.elem]
24.5.7.5
Navigation
[counted.iter.nav]
24.5.7.6
Comparisons
[counted.iter.cmp]
24.5.7.7
Customizations
[counted.iter.cust]
24.5.8
Unreachable sentinel
[unreachable.sentinel]
24.6
Stream iterators
[stream.iterators]
24.6.1
General
[stream.iterators.general]
24.6.2
Class template istream_iterator
[istream.iterator]
24.6.2.1
General
[istream.iterator.general]
24.6.2.2
Constructors and destructor
[istream.iterator.cons]
24.6.2.3
Operations
[istream.iterator.ops]
24.6.3
Class template ostream_iterator
[ostream.iterator]
24.6.3.1
General
[ostream.iterator.general]
24.6.3.2
Constructors and destructor
[ostream.iterator.cons.des]
24.6.3.3
Operations
[ostream.iterator.ops]
24.6.4
Class template istreambuf_iterator
[istreambuf.iterator]
24.6.4.1
General
[istreambuf.iterator.general]
24.6.4.2
Class istreambuf_iterator::proxy
[istreambuf.iterator.proxy]
24.6.4.3
Constructors
[istreambuf.iterator.cons]
24.6.4.4
Operations
[istreambuf.iterator.ops]
24.6.5
Class template ostreambuf_iterator
[ostreambuf.iterator]
24.6.5.1
General
[ostreambuf.iterator.general]
24.6.5.2
Constructors
[ostreambuf.iter.cons]
24.6.5.3
Operations
[ostreambuf.iter.ops]
24.7
Range access
[iterator.range]
25
Ranges library
[ranges]
25.1
General
[ranges.general]
25.2
Header synopsis
[ranges.syn]
25.3
Range access
[range.access]
25.3.1
General
[range.access.general]
25.3.2
ranges::begin
[range.access.begin]
25.3.3
ranges::end
[range.access.end]
25.3.4
ranges::cbegin
[range.access.cbegin]
25.3.5
ranges::cend
[range.access.cend]
25.3.6
ranges::rbegin
[range.access.rbegin]
25.3.7
ranges::rend
[range.access.rend]
25.3.8
ranges::crbegin
[range.access.crbegin]
25.3.9
ranges::crend
[range.access.crend]
25.3.10
ranges::size
[range.prim.size]
25.3.11
ranges::ssize
[range.prim.ssize]
25.3.12
ranges::reserve_hint
[range.prim.size.hint]
25.3.13
ranges::empty
[range.prim.empty]
25.3.14
ranges::data
[range.prim.data]
25.3.15
ranges::cdata
[range.prim.cdata]
25.4
Range requirements
[range.req]
25.4.1
General
[range.req.general]
25.4.2
Ranges
[range.range]
25.4.3
Approximately sized ranges
[range.approximately.sized]
25.4.4
Sized ranges
[range.sized]
25.4.5
Views
[range.view]
25.4.6
Other range refinements
[range.refinements]
25.5
Range utilities
[range.utility]
25.5.1
General
[range.utility.general]
25.5.2
Helper concepts
[range.utility.helpers]
25.5.3
View interface
[view.interface]
25.5.3.1
General
[view.interface.general]
25.5.3.2
Members
[view.interface.members]
25.5.4
Sub-ranges
[range.subrange]
25.5.4.1
General
[range.subrange.general]
25.5.4.2
Constructors and conversions
[range.subrange.ctor]
25.5.4.3
Accessors
[range.subrange.access]
25.5.5
Dangling iterator handling
[range.dangling]
25.5.6
Class template elements_of
[range.elementsof]
25.5.7
Range conversions
[range.utility.conv]
25.5.7.1
General
[range.utility.conv.general]
25.5.7.2
ranges::to
[range.utility.conv.to]
25.5.7.3
ranges::to adaptors
[range.utility.conv.adaptors]
25.6
Range factories
[range.factories]
25.6.1
General
[range.factories.general]
25.6.2
Empty view
[range.empty]
25.6.2.1
Overview
[range.empty.overview]
25.6.2.2
Class template empty_view
[range.empty.view]
25.6.3
Single view
[range.single]
25.6.3.1
Overview
[range.single.overview]
25.6.3.2
Class template single_view
[range.single.view]
25.6.4
Iota view
[range.iota]
25.6.4.1
Overview
[range.iota.overview]
25.6.4.2
Class template iota_view
[range.iota.view]
25.6.4.3
Class iota_view::iterator
[range.iota.iterator]
25.6.4.4
Class iota_view::sentinel
[range.iota.sentinel]
25.6.5
Repeat view
[range.repeat]
25.6.5.1
Overview
[range.repeat.overview]
25.6.5.2
Class template repeat_view
[range.repeat.view]
25.6.5.3
Class repeat_view::iterator
[range.repeat.iterator]
25.6.6
Istream view
[range.istream]
25.6.6.1
Overview
[range.istream.overview]
25.6.6.2
Class template basic_istream_view
[range.istream.view]
25.6.6.3
Class basic_istream_view::iterator
[range.istream.iterator]
25.7
Range adaptors
[range.adaptors]
25.7.1
General
[range.adaptors.general]
25.7.2
Range adaptor objects
[range.adaptor.object]
25.7.3
Movable wrapper
[range.move.wrap]
25.7.4
Non-propagating cache
[range.nonprop.cache]
25.7.5
Range adaptor helpers
[range.adaptor.helpers]
25.7.6
All view
[range.all]
25.7.6.1
General
[range.all.general]
25.7.6.2
Class template ref_view
[range.ref.view]
25.7.6.3
Class template owning_view
[range.owning.view]
25.7.7
As rvalue view
[range.as.rvalue]
25.7.7.1
Overview
[range.as.rvalue.overview]
25.7.7.2
Class template as_rvalue_view
[range.as.rvalue.view]
25.7.8
Filter view
[range.filter]
25.7.8.1
Overview
[range.filter.overview]
25.7.8.2
Class template filter_view
[range.filter.view]
25.7.8.3
Class template filter_view::iterator
[range.filter.iterator]
25.7.8.4
Class template filter_view::sentinel
[range.filter.sentinel]
25.7.9
Transform view
[range.transform]
25.7.9.1
Overview
[range.transform.overview]
25.7.9.2
Class template transform_view
[range.transform.view]
25.7.9.3
Class template transform_view::iterator
[range.transform.iterator]
25.7.9.4
Class template transform_view::sentinel
[range.transform.sentinel]
25.7.10
Take view
[range.take]
25.7.10.1
Overview
[range.take.overview]
25.7.10.2
Class template take_view
[range.take.view]
25.7.10.3
Class template take_view::sentinel
[range.take.sentinel]
25.7.11
Take while view
[range.take.while]
25.7.11.1
Overview
[range.take.while.overview]
25.7.11.2
Class template take_while_view
[range.take.while.view]
25.7.11.3
Class template take_while_view::sentinel
[range.take.while.sentinel]
25.7.12
Drop view
[range.drop]
25.7.12.1
Overview
[range.drop.overview]
25.7.12.2
Class template drop_view
[range.drop.view]
25.7.13
Drop while view
[range.drop.while]
25.7.13.1
Overview
[range.drop.while.overview]
25.7.13.2
Class template drop_while_view
[range.drop.while.view]
25.7.14
Join view
[range.join]
25.7.14.1
Overview
[range.join.overview]
25.7.14.2
Class template join_view
[range.join.view]
25.7.14.3
Class template join_view::iterator
[range.join.iterator]
25.7.14.4
Class template join_view::sentinel
[range.join.sentinel]
25.7.15
Join with view
[range.join.with]
25.7.15.1
Overview
[range.join.with.overview]
25.7.15.2
Class template join_with_view
[range.join.with.view]
25.7.15.3
Class template join_with_view::iterator
[range.join.with.iterator]
25.7.15.4
Class template join_with_view::sentinel
[range.join.with.sentinel]
25.7.16
Lazy split view
[range.lazy.split]
25.7.16.1
Overview
[range.lazy.split.overview]
25.7.16.2
Class template lazy_split_view
[range.lazy.split.view]
25.7.16.3
Class template lazy_split_view::outer-iterator
[range.lazy.split.outer]
25.7.16.4
Class lazy_split_view::outer-iterator::value_type
[range.lazy.split.outer.value]
25.7.16.5
Class template lazy_split_view::inner-iterator
[range.lazy.split.inner]
25.7.17
Split view
[range.split]
25.7.17.1
Overview
[range.split.overview]
25.7.17.2
Class template split_view
[range.split.view]
25.7.17.3
Class split_view::iterator
[range.split.iterator]
25.7.17.4
Class split_view::sentinel
[range.split.sentinel]
25.7.18
Concat view
[range.concat]
25.7.18.1
Overview
[range.concat.overview]
25.7.18.2
Class template concat_view
[range.concat.view]
25.7.18.3
Class concat_view::iterator
[range.concat.iterator]
25.7.19
Counted view
[range.counted]
25.7.20
Common view
[range.common]
25.7.20.1
Overview
[range.common.overview]
25.7.20.2
Class template common_view
[range.common.view]
25.7.21
Reverse view
[range.reverse]
25.7.21.1
Overview
[range.reverse.overview]
25.7.21.2
Class template reverse_view
[range.reverse.view]
25.7.22
As const view
[range.as.const]
25.7.22.1
Overview
[range.as.const.overview]
25.7.22.2
Class template as_const_view
[range.as.const.view]
25.7.23
Elements view
[range.elements]
25.7.23.1
Overview
[range.elements.overview]
25.7.23.2
Class template elements_view
[range.elements.view]
25.7.23.3
Class template elements_view::iterator
[range.elements.iterator]
25.7.23.4
Class template elements_view::sentinel
[range.elements.sentinel]
25.7.24
Enumerate view
[range.enumerate]
25.7.24.1
Overview
[range.enumerate.overview]
25.7.24.2
Class template enumerate_view
[range.enumerate.view]
25.7.24.3
Class template enumerate_view::iterator
[range.enumerate.iterator]
25.7.24.4
Class template enumerate_view::sentinel
[range.enumerate.sentinel]
25.7.25
Zip view
[range.zip]
25.7.25.1
Overview
[range.zip.overview]
25.7.25.2
Class template zip_view
[range.zip.view]
25.7.25.3
Class template zip_view::iterator
[range.zip.iterator]
25.7.25.4
Class template zip_view::sentinel
[range.zip.sentinel]
25.7.26
Zip transform view
[range.zip.transform]
25.7.26.1
Overview
[range.zip.transform.overview]
25.7.26.2
Class template zip_transform_view
[range.zip.transform.view]
25.7.26.3
Class template zip_transform_view::iterator
[range.zip.transform.iterator]
25.7.26.4
Class template zip_transform_view::sentinel
[range.zip.transform.sentinel]
25.7.27
Adjacent view
[range.adjacent]
25.7.27.1
Overview
[range.adjacent.overview]
25.7.27.2
Class template adjacent_view
[range.adjacent.view]
25.7.27.3
Class template adjacent_view::iterator
[range.adjacent.iterator]
25.7.27.4
Class template adjacent_view::sentinel
[range.adjacent.sentinel]
25.7.28
Adjacent transform view
[range.adjacent.transform]
25.7.28.1
Overview
[range.adjacent.transform.overview]
25.7.28.2
Class template adjacent_transform_view
[range.adjacent.transform.view]
25.7.28.3
Class template adjacent_transform_view::iterator
[range.adjacent.transform.iterator]
25.7.28.4
Class template adjacent_transform_view::sentinel
[range.adjacent.transform.sentinel]
25.7.29
Chunk view
[range.chunk]
25.7.29.1
Overview
[range.chunk.overview]
25.7.29.2
Class template chunk_view for input ranges
[range.chunk.view.input]
25.7.29.3
Class chunk_view::outer-iterator
[range.chunk.outer.iter]
25.7.29.4
Class chunk_view::outer-iterator::value_type
[range.chunk.outer.value]
25.7.29.5
Class chunk_view::inner-iterator
[range.chunk.inner.iter]
25.7.29.6
Class template chunk_view for forward ranges
[range.chunk.view.fwd]
25.7.29.7
Class template chunk_view::iterator for forward ranges
[range.chunk.fwd.iter]
25.7.30
Slide view
[range.slide]
25.7.30.1
Overview
[range.slide.overview]
25.7.30.2
Class template slide_view
[range.slide.view]
25.7.30.3
Class template slide_view::iterator
[range.slide.iterator]
25.7.30.4
Class slide_view::sentinel
[range.slide.sentinel]
25.7.31
Chunk by view
[range.chunk.by]
25.7.31.1
Overview
[range.chunk.by.overview]
25.7.31.2
Class template chunk_by_view
[range.chunk.by.view]
25.7.31.3
Class chunk_by_view::iterator
[range.chunk.by.iter]
25.7.32
Stride view
[range.stride]
25.7.32.1
Overview
[range.stride.overview]
25.7.32.2
Class template stride_view
[range.stride.view]
25.7.32.3
Class template stride_view::iterator
[range.stride.iterator]
25.7.33
Cartesian product view
[range.cartesian]
25.7.33.1
Overview
[range.cartesian.overview]
25.7.33.2
Class template cartesian_product_view
[range.cartesian.view]
25.7.33.3
Class template cartesian_product_view::iterator
[range.cartesian.iterator]
25.7.34
Cache latest view
[range.cache.latest]
25.7.34.1
Overview
[range.cache.latest.overview]
25.7.34.2
Class template cache_latest_view
[range.cache.latest.view]
25.7.34.3
Class cache_latest_view::iterator
[range.cache.latest.iterator]
25.7.34.4
Class cache_latest_view::sentinel
[range.cache.latest.sentinel]
25.7.35
As input view
[range.as.input]
25.7.35.1
Overview
[range.as.input.overview]
25.7.35.2
Class template as_input_view
[range.as.input.view]
25.7.35.3
Class template as_input_view::iterator
[range.as.input.iterator]
25.8
Range generators
[coro.generator]
25.8.1
Overview
[coroutine.generator.overview]
25.8.2
Header synopsis
[generator.syn]
25.8.3
Class template generator
[coro.generator.class]
25.8.4
Members
[coro.generator.members]
25.8.5
Class generator::promise_type
[coro.generator.promise]
25.8.6
Class generator::iterator
[coro.generator.iterator]
26
Algorithms library
[algorithms]
26.1
General
[algorithms.general]
26.2
Algorithms requirements
[algorithms.requirements]
26.3
Parallel algorithms
[algorithms.parallel]
26.3.1
Preamble
[algorithms.parallel.defns]
26.3.2
Requirements on user-provided function objects
[algorithms.parallel.user]
26.3.3
Effect of execution policies on algorithm execution
[algorithms.parallel.exec]
26.3.4
Parallel algorithm exceptions
[algorithms.parallel.exceptions]
26.3.5
Parallel algorithm overloads
[algorithms.parallel.overloads]
26.3.6
Execution policies
[execpol]
26.3.6.1
General
[execpol.general]
26.3.6.2
Execution policy type trait
[execpol.type]
26.3.6.3
Sequenced execution policy
[execpol.seq]
26.3.6.4
Parallel execution policy
[execpol.par]
26.3.6.5
Parallel and unsequenced execution policy
[execpol.parunseq]
26.3.6.6
Unsequenced execution policy
[execpol.unseq]
26.3.6.7
Execution policy objects
[execpol.objects]
26.4
Header synopsis
[algorithm.syn]
26.5
Algorithm result types
[algorithms.results]
26.6
Non-modifying sequence operations
[alg.nonmodifying]
26.6.1
All of
[alg.all.of]
26.6.2
Any of
[alg.any.of]
26.6.3
None of
[alg.none.of]
26.6.4
Contains
[alg.contains]
26.6.5
For each
[alg.foreach]
26.6.6
Find
[alg.find]
26.6.7
Find last
[alg.find.last]
26.6.8
Find end
[alg.find.end]
26.6.9
Find first of
[alg.find.first.of]
26.6.10
Adjacent find
[alg.adjacent.find]
26.6.11
Count
[alg.count]
26.6.12
Mismatch
[alg.mismatch]
26.6.13
Equal
[alg.equal]
26.6.14
Is permutation
[alg.is.permutation]
26.6.15
Search
[alg.search]
26.6.16
Starts with
[alg.starts.with]
26.6.17
Ends with
[alg.ends.with]
26.6.18
Fold
[alg.fold]
26.7
Mutating sequence operations
[alg.modifying.operations]
26.7.1
Copy
[alg.copy]
26.7.2
Move
[alg.move]
26.7.3
Swap
[alg.swap]
26.7.4
Transform
[alg.transform]
26.7.5
Replace
[alg.replace]
26.7.6
Fill
[alg.fill]
26.7.7
Generate
[alg.generate]
26.7.8
Remove
[alg.remove]
26.7.9
Unique
[alg.unique]
26.7.10
Reverse
[alg.reverse]
26.7.11
Rotate
[alg.rotate]
26.7.12
Sample
[alg.random.sample]
26.7.13
Shuffle
[alg.random.shuffle]
26.7.14
Shift
[alg.shift]
26.8
Sorting and related operations
[alg.sorting]
26.8.1
General
[alg.sorting.general]
26.8.2
Sorting
[alg.sort]
26.8.2.1
sort
[sort]
26.8.2.2
stable_sort
[stable.sort]
26.8.2.3
partial_sort
[partial.sort]
26.8.2.4
partial_sort_copy
[partial.sort.copy]
26.8.2.5
is_sorted
[is.sorted]
26.8.3
Nth element
[alg.nth.element]
26.8.4
Binary search
[alg.binary.search]
26.8.4.1
General
[alg.binary.search.general]
26.8.4.2
lower_bound
[lower.bound]
26.8.4.3
upper_bound
[upper.bound]
26.8.4.4
equal_range
[equal.range]
26.8.4.5
binary_search
[binary.search]
26.8.5
Partitions
[alg.partitions]
26.8.6
Merge
[alg.merge]
26.8.7
Set operations on sorted structures
[alg.set.operations]
26.8.7.1
General
[alg.set.operations.general]
26.8.7.2
includes
[includes]
26.8.7.3
set_union
[set.union]
26.8.7.4
set_intersection
[set.intersection]
26.8.7.5
set_difference
[set.difference]
26.8.7.6
set_symmetric_difference
[set.symmetric.difference]
26.8.8
Heap operations
[alg.heap.operations]
26.8.8.1
General
[alg.heap.operations.general]
26.8.8.2
push_heap
[push.heap]
26.8.8.3
pop_heap
[pop.heap]
26.8.8.4
make_heap
[make.heap]
26.8.8.5
sort_heap
[sort.heap]
26.8.8.6
is_heap
[is.heap]
26.8.9
Minimum and maximum
[alg.min.max]
26.8.10
Bounded value
[alg.clamp]
26.8.11
Lexicographical comparison
[alg.lex.comparison]
26.8.12
Three-way comparison algorithms
[alg.three.way]
26.8.13
Permutation generators
[alg.permutation.generators]
26.9
Header synopsis
[numeric.ops.overview]
26.10
Generalized numeric operations
[numeric.ops]
26.10.1
General
[numeric.ops.general]
26.10.2
Definitions
[numerics.defns]
26.10.3
Accumulate
[accumulate]
26.10.4
Reduce
[reduce]
26.10.5
Inner product
[inner.product]
26.10.6
Transform reduce
[transform.reduce]
26.10.7
Partial sum
[partial.sum]
26.10.8
Exclusive scan
[exclusive.scan]
26.10.9
Inclusive scan
[inclusive.scan]
26.10.10
Transform exclusive scan
[transform.exclusive.scan]
26.10.11
Transform inclusive scan
[transform.inclusive.scan]
26.10.12
Adjacent difference
[adjacent.difference]
26.10.13
Iota
[numeric.iota]
26.10.14
Greatest common divisor
[numeric.ops.gcd]
26.10.15
Least common multiple
[numeric.ops.lcm]
26.10.16
Midpoint
[numeric.ops.midpoint]
26.10.17
Saturation arithmetic
[numeric.sat]
26.10.17.1
Arithmetic functions
[numeric.sat.func]
26.10.17.2
Casting
[numeric.sat.cast]
26.11
Specialized algorithms
[specialized.algorithms]
26.11.1
General
[specialized.algorithms.general]
26.11.2
Special memory concepts
[special.mem.concepts]
26.11.3
uninitialized_default_construct
[uninitialized.construct.default]
26.11.4
uninitialized_value_construct
[uninitialized.construct.value]
26.11.5
uninitialized_copy
[uninitialized.copy]
26.11.6
uninitialized_move
[uninitialized.move]
26.11.7
uninitialized_fill
[uninitialized.fill]
26.11.8
construct_at
[specialized.construct]
26.11.9
destroy
[specialized.destroy]
26.12
Specialized algorithms
[alg.rand]
26.12.1
General
[alg.rand.general]
26.12.2
generate_random
[alg.rand.generate]
26.13
C library algorithms
[alg.c.library]
27
Strings library
[strings]
27.1
General
[strings.general]
27.2
Character traits
[char.traits]
27.2.1
General
[char.traits.general]
27.2.2
Character traits requirements
[char.traits.require]
27.2.3
Traits typedefs
[char.traits.typedefs]
27.2.4
char_traits specializations
[char.traits.specializations]
27.2.4.1
General
[char.traits.specializations.general]
27.2.4.2
struct char_traits
[char.traits.specializations.char]
27.2.4.3
struct char_traits
[char.traits.specializations.char8.t]
27.2.4.4
struct char_traits
[char.traits.specializations.char16.t]
27.2.4.5
struct char_traits
[char.traits.specializations.char32.t]
27.2.4.6
struct char_traits
[char.traits.specializations.wchar.t]
27.3
String view classes
[string.view]
27.3.1
General
[string.view.general]
27.3.2
Header synopsis
[string.view.synop]
27.3.3
Class template basic_string_view
[string.view.template]
27.3.3.1
General
[string.view.template.general]
27.3.3.2
Construction and assignment
[string.view.cons]
27.3.3.3
Deduction guides
[string.view.deduct]
27.3.3.4
Iterator support
[string.view.iterators]
27.3.3.5
Capacity
[string.view.capacity]
27.3.3.6
Element access
[string.view.access]
27.3.3.7
Modifiers
[string.view.modifiers]
27.3.3.8
String operations
[string.view.ops]
27.3.3.9
Searching
[string.view.find]
27.3.4
Non-member comparison functions
[string.view.comparison]
27.3.5
Inserters and extractors
[string.view.io]
27.3.6
Hash support
[string.view.hash]
27.3.7
Suffix for basic_string_view literals
[string.view.literals]
27.4
String classes
[string.classes]
27.4.1
General
[string.classes.general]
27.4.2
Header synopsis
[string.syn]
27.4.3
Class template basic_string
[basic.string]
27.4.3.1
General
[basic.string.general]
27.4.3.2
General requirements
[string.require]
27.4.3.3
Constructors and assignment operators
[string.cons]
27.4.3.4
Iterator support
[string.iterators]
27.4.3.5
Capacity
[string.capacity]
27.4.3.6
Element access
[string.access]
27.4.3.7
Modifiers
[string.modifiers]
27.4.3.7.1
basic_string::operator+=
[string.op.append]
27.4.3.7.2
basic_string::append
[string.append]
27.4.3.7.3
basic_string::assign
[string.assign]
27.4.3.7.4
basic_string::insert
[string.insert]
27.4.3.7.5
basic_string::erase
[string.erase]
27.4.3.7.6
basic_string::replace
[string.replace]
27.4.3.7.7
basic_string::copy
[string.copy]
27.4.3.7.8
basic_string::swap
[string.swap]
27.4.3.8
String operations
[string.ops]
27.4.3.8.1
Accessors
[string.accessors]
27.4.3.8.2
Searching
[string.find]
27.4.3.8.3
basic_string::substr
[string.substr]
27.4.3.8.4
basic_string::compare
[string.compare]
27.4.3.8.5
basic_string::starts_with
[string.starts.with]
27.4.3.8.6
basic_string::ends_with
[string.ends.with]
27.4.3.8.7
basic_string::contains
[string.contains]
27.4.4
Non-member functions
[string.nonmembers]
27.4.4.1
operator+
[string.op.plus]
27.4.4.2
Non-member comparison operator functions
[string.cmp]
27.4.4.3
swap
[string.special]
27.4.4.4
Inserters and extractors
[string.io]
27.4.4.5
Erasure
[string.erasure]
27.4.5
Numeric conversions
[string.conversions]
27.4.6
Hash support
[basic.string.hash]
27.4.7
Suffix for basic_string literals
[basic.string.literals]
27.5
Null-terminated sequence utilities
[c.strings]
27.5.1
Header synopsis
[cstring.syn]
28
Text processing library
[text]
28.1
General
[text.general]
28.2
Primitive numeric conversions
[charconv]
28.2.1
Header synopsis
[charconv.syn]
28.2.2
Primitive numeric output conversion
[charconv.to.chars]
28.2.3
Primitive numeric input conversion
[charconv.from.chars]
28.3
Localization library
[localization]
28.3.1
General
[localization.general]
28.3.2
Header synopsis
[locale.syn]
28.3.3
Locales
[locales]
28.3.3.1
Class locale
[locale]
28.3.3.1.1
General
[locale.general]
28.3.3.1.2
Types
[locale.types]
28.3.3.1.2.1
Type locale::category
[locale.category]
28.3.3.1.2.2
Class locale::facet
[locale.facet]
28.3.3.1.2.3
Class locale::id
[locale.id]
28.3.3.1.3
Constructors and destructor
[locale.cons]
28.3.3.1.4
Members
[locale.members]
28.3.3.1.5
Operators
[locale.operators]
28.3.3.1.6
Static members
[locale.statics]
28.3.3.2
locale globals
[locale.global.templates]
28.3.3.3
Convenience interfaces
[locale.convenience]
28.3.3.3.1
Character classification
[classification]
28.3.3.3.2
Character conversions
[conversions.character]
28.3.4
Standard locale categories
[locale.categories]
28.3.4.1
General
[locale.categories.general]
28.3.4.2
The ctype category
[category.ctype]
28.3.4.2.1
General
[category.ctype.general]
28.3.4.2.2
Class template ctype
[locale.ctype]
28.3.4.2.2.1
General
[locale.ctype.general]
28.3.4.2.2.2
ctype members
[locale.ctype.members]
28.3.4.2.2.3
ctype virtual functions
[locale.ctype.virtuals]
28.3.4.2.3
Class template ctype_byname
[locale.ctype.byname]
28.3.4.2.4
ctype specialization
[facet.ctype.special]
28.3.4.2.4.1
General
[facet.ctype.special.general]
28.3.4.2.4.2
Destructor
[facet.ctype.char.dtor]
28.3.4.2.4.3
Members
[facet.ctype.char.members]
28.3.4.2.4.4
Static members
[facet.ctype.char.statics]
28.3.4.2.4.5
Virtual functions
[facet.ctype.char.virtuals]
28.3.4.2.5
Class template codecvt
[locale.codecvt]
28.3.4.2.5.1
General
[locale.codecvt.general]
28.3.4.2.5.2
Members
[locale.codecvt.members]
28.3.4.2.5.3
Virtual functions
[locale.codecvt.virtuals]
28.3.4.2.6
Class template codecvt_byname
[locale.codecvt.byname]
28.3.4.3
The numeric category
[category.numeric]
28.3.4.3.1
General
[category.numeric.general]
28.3.4.3.2
Class template num_get
[locale.num.get]
28.3.4.3.2.1
General
[locale.num.get.general]
28.3.4.3.2.2
Members
[facet.num.get.members]
28.3.4.3.2.3
Virtual functions
[facet.num.get.virtuals]
28.3.4.3.3
Class template num_put
[locale.nm.put]
28.3.4.3.3.1
General
[locale.nm.put.general]
28.3.4.3.3.2
Members
[facet.num.put.members]
28.3.4.3.3.3
Virtual functions
[facet.num.put.virtuals]
28.3.4.4
The numeric punctuation facet
[facet.numpunct]
28.3.4.4.1
Class template numpunct
[locale.numpunct]
28.3.4.4.1.1
General
[locale.numpunct.general]
28.3.4.4.1.2
Members
[facet.numpunct.members]
28.3.4.4.1.3
Virtual functions
[facet.numpunct.virtuals]
28.3.4.4.2
Class template numpunct_byname
[locale.numpunct.byname]
28.3.4.5
The collate category
[category.collate]
28.3.4.5.1
Class template collate
[locale.collate]
28.3.4.5.1.1
General
[locale.collate.general]
28.3.4.5.1.2
Members
[locale.collate.members]
28.3.4.5.1.3
Virtual functions
[locale.collate.virtuals]
28.3.4.5.2
Class template collate_byname
[locale.collate.byname]
28.3.4.6
The time category
[category.time]
28.3.4.6.1
General
[category.time.general]
28.3.4.6.2
Class template time_get
[locale.time.get]
28.3.4.6.2.1
General
[locale.time.get.general]
28.3.4.6.2.2
Members
[locale.time.get.members]
28.3.4.6.2.3
Virtual functions
[locale.time.get.virtuals]
28.3.4.6.3
Class template time_get_byname
[locale.time.get.byname]
28.3.4.6.4
Class template time_put
[locale.time.put]
28.3.4.6.4.1
General
[locale.time.put.general]
28.3.4.6.4.2
Members
[locale.time.put.members]
28.3.4.6.4.3
Virtual functions
[locale.time.put.virtuals]
28.3.4.6.5
Class template time_put_byname
[locale.time.put.byname]
28.3.4.7
The monetary category
[category.monetary]
28.3.4.7.1
General
[category.monetary.general]
28.3.4.7.2
Class template money_get
[locale.money.get]
28.3.4.7.2.1
General
[locale.money.get.general]
28.3.4.7.2.2
Members
[locale.money.get.members]
28.3.4.7.2.3
Virtual functions
[locale.money.get.virtuals]
28.3.4.7.3
Class template money_put
[locale.money.put]
28.3.4.7.3.1
General
[locale.money.put.general]
28.3.4.7.3.2
Members
[locale.money.put.members]
28.3.4.7.3.3
Virtual functions
[locale.money.put.virtuals]
28.3.4.7.4
Class template moneypunct
[locale.moneypunct]
28.3.4.7.4.1
General
[locale.moneypunct.general]
28.3.4.7.4.2
Members
[locale.moneypunct.members]
28.3.4.7.4.3
Virtual functions
[locale.moneypunct.virtuals]
28.3.4.7.5
Class template moneypunct_byname
[locale.moneypunct.byname]
28.3.4.8
The message retrieval category
[category.messages]
28.3.4.8.1
General
[category.messages.general]
28.3.4.8.2
Class template messages
[locale.messages]
28.3.4.8.2.1
General
[locale.messages.general]
28.3.4.8.2.2
Members
[locale.messages.members]
28.3.4.8.2.3
Virtual functions
[locale.messages.virtuals]
28.3.4.8.3
Class template messages_byname
[locale.messages.byname]
28.3.5
C library locales
[c.locales]
28.3.5.1
Header synopsis
[clocale.syn]
28.3.5.2
Data races
[clocale.data.races]
28.4
Text encodings identification
[text.encoding]
28.4.1
Header synopsis
[text.encoding.syn]
28.4.2
Class text_encoding
[text.encoding.class]
28.4.2.1
Overview
[text.encoding.overview]
28.4.2.2
General
[text.encoding.general]
28.4.2.3
Members
[text.encoding.members]
28.4.2.4
Comparison functions
[text.encoding.cmp]
28.4.2.5
Class text_encoding::aliases_view
[text.encoding.aliases]
28.4.2.6
Enumeration text_encoding::id
[text.encoding.id]
28.4.2.7
Hash support
[text.encoding.hash]
28.5
Formatting
[format]
28.5.1
Header synopsis
[format.syn]
28.5.2
Format string
[format.string]
28.5.2.1
General
[format.string.general]
28.5.2.2
Standard format specifiers
[format.string.std]
28.5.3
Error reporting
[format.err.report]
28.5.4
Class template basic_format_string
[format.fmt.string]
28.5.5
Formatting functions
[format.functions]
28.5.6
Formatter
[format.formatter]
28.5.6.1
Formatter requirements
[formatter.requirements]
28.5.6.2
Formatter locking
[format.formatter.locking]
28.5.6.3
Concept formattable
[format.formattable]
28.5.6.4
Formatter specializations
[format.formatter.spec]
28.5.6.5
Formatting escaped characters and strings
[format.string.escaped]
28.5.6.6
Class template basic_format_parse_context
[format.parse.ctx]
28.5.6.7
Class template basic_format_context
[format.context]
28.5.7
Formatting of ranges
[format.range]
28.5.7.1
Variable template format_kind
[format.range.fmtkind]
28.5.7.2
Class template range_formatter
[format.range.formatter]
28.5.7.3
Class template range-default-formatter
[format.range.fmtdef]
28.5.7.4
Specialization of range-default-formatter for maps
[format.range.fmtmap]
28.5.7.5
Specialization of range-default-formatter for sets
[format.range.fmtset]
28.5.7.6
Specialization of range-default-formatter for strings
[format.range.fmtstr]
28.5.8
Arguments
[format.arguments]
28.5.8.1
Class template basic_format_arg
[format.arg]
28.5.8.2
Class template format-arg-store
[format.arg.store]
28.5.8.3
Class template basic_format_args
[format.args]
28.5.9
Tuple formatter
[format.tuple]
28.5.10
Class format_error
[format.error]
28.6
Regular expressions library
[re]
28.6.1
General
[re.general]
28.6.2
Requirements
[re.req]
28.6.3
Header synopsis
[re.syn]
28.6.4
Namespace std::regex_constants
[re.const]
28.6.4.1
General
[re.const.general]
28.6.4.2
Bitmask type syntax_option_type
[re.synopt]
28.6.4.3
Bitmask type match_flag_type
[re.matchflag]
28.6.4.4
Implementation-defined error_type
[re.err]
28.6.5
Class regex_error
[re.badexp]
28.6.6
Class template regex_traits
[re.traits]
28.6.7
Class template basic_regex
[re.regex]
28.6.7.1
General
[re.regex.general]
28.6.7.2
Constructors
[re.regex.construct]
28.6.7.3
Assignment
[re.regex.assign]
28.6.7.4
Constant operations
[re.regex.operations]
28.6.7.5
Locale
[re.regex.locale]
28.6.7.6
Swap
[re.regex.swap]
28.6.7.7
Non-member functions
[re.regex.nonmemb]
28.6.8
Class template sub_match
[re.submatch]
28.6.8.1
General
[re.submatch.general]
28.6.8.2
Members
[re.submatch.members]
28.6.8.3
Non-member operators
[re.submatch.op]
28.6.9
Class template match_results
[re.results]
28.6.9.1
General
[re.results.general]
28.6.9.2
Constructors
[re.results.const]
28.6.9.3
State
[re.results.state]
28.6.9.4
Size
[re.results.size]
28.6.9.5
Element access
[re.results.acc]
28.6.9.6
Formatting
[re.results.form]
28.6.9.7
Allocator
[re.results.all]
28.6.9.8
Swap
[re.results.swap]
28.6.9.9
Non-member functions
[re.results.nonmember]
28.6.10
Regular expression algorithms
[re.alg]
28.6.10.1
Exceptions
[re.except]
28.6.10.2
regex_match
[re.alg.match]
28.6.10.3
regex_search
[re.alg.search]
28.6.10.4
regex_replace
[re.alg.replace]
28.6.11
Regular expression iterators
[re.iter]
28.6.11.1
Class template regex_iterator
[re.regiter]
28.6.11.1.1
General
[re.regiter.general]
28.6.11.1.2
Constructors
[re.regiter.cnstr]
28.6.11.1.3
Comparisons
[re.regiter.comp]
28.6.11.1.4
Indirection
[re.regiter.deref]
28.6.11.1.5
Increment
[re.regiter.incr]
28.6.11.2
Class template regex_token_iterator
[re.tokiter]
28.6.11.2.1
General
[re.tokiter.general]
28.6.11.2.2
Constructors
[re.tokiter.cnstr]
28.6.11.2.3
Comparisons
[re.tokiter.comp]
28.6.11.2.4
Indirection
[re.tokiter.deref]
28.6.11.2.5
Increment
[re.tokiter.incr]
28.6.12
Modified ECMAScript regular expression grammar
[re.grammar]
28.7
Null-terminated sequence utilities
[text.c.strings]
28.7.1
Header synopsis
[cctype.syn]
28.7.2
Header synopsis
[cwctype.syn]
28.7.3
Header synopsis
[cwchar.syn]
28.7.4
Header synopsis
[cuchar.syn]
28.7.5
Multibyte / wide string and character conversion functions
[c.mb.wcs]
29
Numerics library
[numerics]
29.1
General
[numerics.general]
29.2
Numeric type requirements
[numeric.requirements]
29.3
The floating-point environment
[cfenv]
29.3.1
Header synopsis
[cfenv.syn]
29.3.2
Threads
[cfenv.thread]
29.4
Complex numbers
[complex.numbers]
29.4.1
General
[complex.numbers.general]
29.4.2
Header synopsis
[complex.syn]
29.4.3
Class template complex
[complex]
29.4.4
Member functions
[complex.members]
29.4.5
Member operators
[complex.member.ops]
29.4.6
Non-member operations
[complex.ops]
29.4.7
Value operations
[complex.value.ops]
29.4.8
Transcendentals
[complex.transcendentals]
29.4.9
Tuple interface
[complex.tuple]
29.4.10
Additional overloads
[cmplx.over]
29.4.11
Suffixes for complex number literals
[complex.literals]
29.5
Random number generation
[rand]
29.5.1
General
[rand.general]
29.5.2
Header synopsis
[rand.synopsis]
29.5.3
Requirements
[rand.req]
29.5.3.1
General requirements
[rand.req.genl]
29.5.3.2
Seed sequence requirements
[rand.req.seedseq]
29.5.3.3
Uniform random bit generator requirements
[rand.req.urng]
29.5.3.4
Random number engine requirements
[rand.req.eng]
29.5.3.5
Random number engine adaptor requirements
[rand.req.adapt]
29.5.3.6
Random number distribution requirements
[rand.req.dist]
29.5.4
Random number engine class templates
[rand.eng]
29.5.4.1
General
[rand.eng.general]
29.5.4.2
Class template linear_congruential_engine
[rand.eng.lcong]
29.5.4.3
Class template mersenne_twister_engine
[rand.eng.mers]
29.5.4.4
Class template subtract_with_carry_engine
[rand.eng.sub]
29.5.4.5
Class template philox_engine
[rand.eng.philox]
29.5.5
Random number engine adaptor class templates
[rand.adapt]
29.5.5.1
General
[rand.adapt.general]
29.5.5.2
Class template discard_block_engine
[rand.adapt.disc]
29.5.5.3
Class template independent_bits_engine
[rand.adapt.ibits]
29.5.5.4
Class template shuffle_order_engine
[rand.adapt.shuf]
29.5.6
Engines and engine adaptors with predefined parameters
[rand.predef]
29.5.7
Class random_device
[rand.device]
29.5.8
Utilities
[rand.util]
29.5.8.1
Class seed_seq
[rand.util.seedseq]
29.5.8.2
Function template generate_canonical
[rand.util.canonical]
29.5.9
Random number distribution class templates
[rand.dist]
29.5.9.1
General
[rand.dist.general]
29.5.9.2
Uniform distributions
[rand.dist.uni]
29.5.9.2.1
Class template uniform_int_distribution
[rand.dist.uni.int]
29.5.9.2.2
Class template uniform_real_distribution
[rand.dist.uni.real]
29.5.9.3
Bernoulli distributions
[rand.dist.bern]
29.5.9.3.1
Class bernoulli_distribution
[rand.dist.bern.bernoulli]
29.5.9.3.2
Class template binomial_distribution
[rand.dist.bern.bin]
29.5.9.3.3
Class template geometric_distribution
[rand.dist.bern.geo]
29.5.9.3.4
Class template negative_binomial_distribution
[rand.dist.bern.negbin]
29.5.9.4
Poisson distributions
[rand.dist.pois]
29.5.9.4.1
Class template poisson_distribution
[rand.dist.pois.poisson]
29.5.9.4.2
Class template exponential_distribution
[rand.dist.pois.exp]
29.5.9.4.3
Class template gamma_distribution
[rand.dist.pois.gamma]
29.5.9.4.4
Class template weibull_distribution
[rand.dist.pois.weibull]
29.5.9.4.5
Class template extreme_value_distribution
[rand.dist.pois.extreme]
29.5.9.5
Normal distributions
[rand.dist.norm]
29.5.9.5.1
Class template normal_distribution
[rand.dist.norm.normal]
29.5.9.5.2
Class template lognormal_distribution
[rand.dist.norm.lognormal]
29.5.9.5.3
Class template chi_squared_distribution
[rand.dist.norm.chisq]
29.5.9.5.4
Class template cauchy_distribution
[rand.dist.norm.cauchy]
29.5.9.5.5
Class template fisher_f_distribution
[rand.dist.norm.f]
29.5.9.5.6
Class template student_t_distribution
[rand.dist.norm.t]
29.5.9.6
Sampling distributions
[rand.dist.samp]
29.5.9.6.1
Class template discrete_distribution
[rand.dist.samp.discrete]
29.5.9.6.2
Class template piecewise_constant_distribution
[rand.dist.samp.pconst]
29.5.9.6.3
Class template piecewise_linear_distribution
[rand.dist.samp.plinear]
29.5.10
Low-quality random number generation
[c.math.rand]
29.6
Numeric arrays
[numarray]
29.6.1
Header synopsis
[valarray.syn]
29.6.2
Class template valarray
[template.valarray]
29.6.2.1
Overview
[template.valarray.overview]
29.6.2.2
Constructors
[valarray.cons]
29.6.2.3
Assignment
[valarray.assign]
29.6.2.4
Element access
[valarray.access]
29.6.2.5
Subset operations
[valarray.sub]
29.6.2.6
Unary operators
[valarray.unary]
29.6.2.7
Compound assignment
[valarray.cassign]
29.6.2.8
Range access
[valarray.range]
29.6.2.9
Member functions
[valarray.members]
29.6.3
valarray non-member operations
[valarray.nonmembers]
29.6.3.1
Binary operators
[valarray.binary]
29.6.3.2
Logical operators
[valarray.comparison]
29.6.3.3
Transcendentals
[valarray.transcend]
29.6.3.4
Specialized algorithms
[valarray.special]
29.6.4
Class slice
[class.slice]
29.6.4.1
Overview
[class.slice.overview]
29.6.4.2
Constructors
[cons.slice]
29.6.4.3
Access functions
[slice.access]
29.6.4.4
Operators
[slice.ops]
29.6.5
Class template slice_array
[template.slice.array]
29.6.5.1
Overview
[template.slice.array.overview]
29.6.5.2
Assignment
[slice.arr.assign]
29.6.5.3
Compound assignment
[slice.arr.comp.assign]
29.6.5.4
Fill function
[slice.arr.fill]
29.6.6
The gslice class
[class.gslice]
29.6.6.1
Overview
[class.gslice.overview]
29.6.6.2
Constructors
[gslice.cons]
29.6.6.3
Access functions
[gslice.access]
29.6.7
Class template gslice_array
[template.gslice.array]
29.6.7.1
Overview
[template.gslice.array.overview]
29.6.7.2
Assignment
[gslice.array.assign]
29.6.7.3
Compound assignment
[gslice.array.comp.assign]
29.6.7.4
Fill function
[gslice.array.fill]
29.6.8
Class template mask_array
[template.mask.array]
29.6.8.1
Overview
[template.mask.array.overview]
29.6.8.2
Assignment
[mask.array.assign]
29.6.8.3
Compound assignment
[mask.array.comp.assign]
29.6.8.4
Fill function
[mask.array.fill]
29.6.9
Class template indirect_array
[template.indirect.array]
29.6.9.1
Overview
[template.indirect.array.overview]
29.6.9.2
Assignment
[indirect.array.assign]
29.6.9.3
Compound assignment
[indirect.array.comp.assign]
29.6.9.4
Fill function
[indirect.array.fill]
29.7
Mathematical functions for floating-point types
[c.math]
29.7.1
Header synopsis
[cmath.syn]
29.7.2
Absolute values
[c.math.abs]
29.7.3
Three-dimensional hypotenuse
[c.math.hypot3]
29.7.4
Linear interpolation
[c.math.lerp]
29.7.5
Classification / comparison functions
[c.math.fpclass]
29.7.6
Mathematical special functions
[sf.cmath]
29.7.6.1
General
[sf.cmath.general]
29.7.6.2
Associated Laguerre polynomials
[sf.cmath.assoc.laguerre]
29.7.6.3
Associated Legendre functions
[sf.cmath.assoc.legendre]
29.7.6.4
Beta function
[sf.cmath.beta]
29.7.6.5
Complete elliptic integral of the first kind
[sf.cmath.comp.ellint.1]
29.7.6.6
Complete elliptic integral of the second kind
[sf.cmath.comp.ellint.2]
29.7.6.7
Complete elliptic integral of the third kind
[sf.cmath.comp.ellint.3]
29.7.6.8
Regular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.i]
29.7.6.9
Cylindrical Bessel functions of the first kind
[sf.cmath.cyl.bessel.j]
29.7.6.10
Irregular modified cylindrical Bessel functions
[sf.cmath.cyl.bessel.k]
29.7.6.11
Cylindrical Neumann functions
[sf.cmath.cyl.neumann]
29.7.6.12
Incomplete elliptic integral of the first kind
[sf.cmath.ellint.1]
29.7.6.13
Incomplete elliptic integral of the second kind
[sf.cmath.ellint.2]
29.7.6.14
Incomplete elliptic integral of the third kind
[sf.cmath.ellint.3]
29.7.6.15
Exponential integral
[sf.cmath.expint]
29.7.6.16
Hermite polynomials
[sf.cmath.hermite]
29.7.6.17
Laguerre polynomials
[sf.cmath.laguerre]
29.7.6.18
Legendre polynomials
[sf.cmath.legendre]
29.7.6.19
Riemann zeta function
[sf.cmath.riemann.zeta]
29.7.6.20
Spherical Bessel functions of the first kind
[sf.cmath.sph.bessel]
29.7.6.21
Spherical associated Legendre functions
[sf.cmath.sph.legendre]
29.7.6.22
Spherical Neumann functions
[sf.cmath.sph.neumann]
29.8
Numbers
[numbers]
29.8.1
Header synopsis
[numbers.syn]
29.8.2
Mathematical constants
[math.constants]
29.9
Basic linear algebra algorithms
[linalg]
29.9.1
Overview
[linalg.overview]
29.9.2
Header synopsis
[linalg.syn]
29.9.3
General
[linalg.general]
29.9.4
Requirements
[linalg.reqs]
29.9.4.1
Linear algebra value types
[linalg.reqs.val]
29.9.4.2
Algorithm and class requirements
[linalg.reqs.alg]
29.9.5
Tag classes
[linalg.tags]
29.9.5.1
Storage order tags
[linalg.tags.order]
29.9.5.2
Triangle tags
[linalg.tags.triangle]
29.9.5.3
Diagonal tags
[linalg.tags.diagonal]
29.9.6
Layouts for packed matrix types
[linalg.layout.packed]
29.9.6.1
Overview
[linalg.layout.packed.overview]
29.9.6.2
Constructors
[linalg.layout.packed.cons]
29.9.6.3
Observers
[linalg.layout.packed.obs]
29.9.7
Exposition-only helpers
[linalg.helpers]
29.9.7.1
abs-if-needed
[linalg.helpers.abs]
29.9.7.2
conj-if-needed
[linalg.helpers.conj]
29.9.7.3
real-if-needed
[linalg.helpers.real]
29.9.7.4
imag-if-needed
[linalg.helpers.imag]
29.9.7.5
Argument concepts
[linalg.helpers.concepts]
29.9.7.6
Mandates
[linalg.helpers.mandates]
29.9.7.7
Preconditions
[linalg.helpers.precond]
29.9.8
Scaled in-place transformation
[linalg.scaled]
29.9.8.1
Introduction
[linalg.scaled.intro]
29.9.8.2
Class template scaled_accessor
[linalg.scaled.scaledaccessor]
29.9.8.3
Function template scaled
[linalg.scaled.scaled]
29.9.9
Conjugated in-place transformation
[linalg.conj]
29.9.9.1
Introduction
[linalg.conj.intro]
29.9.9.2
Class template conjugated_accessor
[linalg.conj.conjugatedaccessor]
29.9.9.3
Function template conjugated
[linalg.conj.conjugated]
29.9.10
Transpose in-place transformation
[linalg.transp]
29.9.10.1
Introduction
[linalg.transp.intro]
29.9.10.2
Exposition-only helpers for layout_transpose and transposed
[linalg.transp.helpers]
29.9.10.3
Class template layout_transpose
[linalg.transp.layout.transpose]
29.9.10.4
Function template transposed
[linalg.transp.transposed]
29.9.11
Conjugate transpose in-place transform
[linalg.conjtransposed]
29.9.12
Algorithm requirements based on template parameter name
[linalg.algs.reqs]
29.9.13
BLAS 1 algorithms
[linalg.algs.blas1]
29.9.13.1
Complexity
[linalg.algs.blas1.complexity]
29.9.13.2
Givens rotations
[linalg.algs.blas1.givens]
29.9.13.2.1
Compute Givens rotation
[linalg.algs.blas1.givens.lartg]
29.9.13.2.2
Apply a computed Givens rotation to vectors
[linalg.algs.blas1.givens.rot]
29.9.13.3
Swap matrix or vector elements
[linalg.algs.blas1.swap]
29.9.13.4
Multiply the elements of an object in place by a scalar
[linalg.algs.blas1.scal]
29.9.13.5
Copy elements of one matrix or vector into another
[linalg.algs.blas1.copy]
29.9.13.6
Add vectors or matrices elementwise
[linalg.algs.blas1.add]
29.9.13.7
Dot product of two vectors
[linalg.algs.blas1.dot]
29.9.13.8
Euclidean norm of a vector
[linalg.algs.blas1.nrm2]
29.9.13.9
Sum of absolute values of vector elements
[linalg.algs.blas1.asum]
29.9.13.10
Index of maximum absolute value of vector elements
[linalg.algs.blas1.iamax]
29.9.13.11
Frobenius norm of a matrix
[linalg.algs.blas1.matfrobnorm]
29.9.13.12
One norm of a matrix
[linalg.algs.blas1.matonenorm]
29.9.13.13
Infinity norm of a matrix
[linalg.algs.blas1.matinfnorm]
29.9.14
BLAS 2 algorithms
[linalg.algs.blas2]
29.9.14.1
General matrix-vector product
[linalg.algs.blas2.gemv]
29.9.14.2
Symmetric matrix-vector product
[linalg.algs.blas2.symv]
29.9.14.3
Hermitian matrix-vector product
[linalg.algs.blas2.hemv]
29.9.14.4
Triangular matrix-vector product
[linalg.algs.blas2.trmv]
29.9.14.5
Solve a triangular linear system
[linalg.algs.blas2.trsv]
29.9.14.6
Rank-1 (outer product) update of a matrix
[linalg.algs.blas2.rank1]
29.9.14.7
Symmetric or Hermitian Rank-1 (outer product) update of a matrix
[linalg.algs.blas2.symherrank1]
29.9.14.8
Symmetric and Hermitian rank-2 matrix updates
[linalg.algs.blas2.rank2]
29.9.15
BLAS 3 algorithms
[linalg.algs.blas3]
29.9.15.1
General matrix-matrix product
[linalg.algs.blas3.gemm]
29.9.15.2
Symmetric, Hermitian, and triangular matrix-matrix product
[linalg.algs.blas3.xxmm]
29.9.15.3
In-place triangular matrix-matrix product
[linalg.algs.blas3.trmm]
29.9.15.4
Rank-k update of a symmetric or Hermitian matrix
[linalg.algs.blas3.rankk]
29.9.15.5
Rank-2k update of a symmetric or Hermitian matrix
[linalg.algs.blas3.rank2k]
29.9.15.6
Solve multiple triangular linear systems
[linalg.algs.blas3.trsm]
29.9.15.7
Solve multiple triangular linear systems in-place
[linalg.algs.blas3.inplacetrsm]
29.10
Data-parallel types
[simd]
29.10.1
General
[simd.general]
29.10.2
Exposition-only types, variables, and concepts
[simd.expos]
29.10.2.1
Exposition-only helpers
[simd.expos.defn]
29.10.2.2
simd ABI tags
[simd.expos.abi]
29.10.3
Header synopsis
[simd.syn]
29.10.4
Type traits
[simd.traits]
29.10.5
Load and store flags
[simd.flags]
29.10.5.1
Class template flags overview
[simd.flags.overview]
29.10.5.2
flags operators
[simd.flags.oper]
29.10.6
Class template simd-iterator
[simd.iterator]
29.10.7
Class template basic_vec
[simd.class]
29.10.7.1
Overview
[simd.overview]
29.10.7.2
Constructors
[simd.ctor]
29.10.7.3
Subscript operator
[simd.subscr]
29.10.7.4
Complex accessors
[simd.complex.access]
29.10.7.5
Unary operators
[simd.unary]
29.10.8
basic_vec non-member operations
[simd.nonmembers]
29.10.8.1
Binary operators
[simd.binary]
29.10.8.2
Compound assignment
[simd.cassign]
29.10.8.3
Comparison operators
[simd.comparison]
29.10.8.4
Exposition-only conditional operators
[simd.cond]
29.10.8.5
Reductions
[simd.reductions]
29.10.8.6
Load and store functions
[simd.loadstore]
29.10.8.7
Static permute
[simd.permute.static]
29.10.8.8
Dynamic permute
[simd.permute.dynamic]
29.10.8.9
Mask permute
[simd.permute.mask]
29.10.8.10
Memory permute
[simd.permute.memory]
29.10.8.11
Creation
[simd.creation]
29.10.8.12
Algorithms
[simd.alg]
29.10.8.13
Mathematical functions
[simd.math]
29.10.8.14
Bit manipulation
[simd.bit]
29.10.8.15
Complex math
[simd.complex.math]
29.10.9
Class template basic_mask
[simd.mask.class]
29.10.9.1
Overview
[simd.mask.overview]
29.10.9.2
Constructors
[simd.mask.ctor]
29.10.9.3
Subscript operator
[simd.mask.subscr]
29.10.9.4
Unary operators
[simd.mask.unary]
29.10.9.5
Conversions
[simd.mask.conv]
29.10.10
basic_mask non-member operations
[simd.mask.nonmembers]
29.10.10.1
Binary operators
[simd.mask.binary]
29.10.10.2
Compound assignment
[simd.mask.cassign]
29.10.10.3
Comparisons
[simd.mask.comparison]
29.10.10.4
Exposition-only conditional operators
[simd.mask.cond]
29.10.10.5
Reductions
[simd.mask.reductions]
29.11
C compatibility
[numerics.c]
29.11.1
Header synopsis
[stdckdint.h.syn]
29.11.2
Checked integer operations
[numerics.c.ckdint]
30
Time library
[time]
30.1
General
[time.general]
30.2
Header synopsis
[time.syn]
30.3
Cpp17Clock requirements
[time.clock.req]
30.4
Time-related traits
[time.traits]
30.4.1
treat_as_floating_point
[time.traits.is.fp]
30.4.2
duration_values
[time.traits.duration.values]
30.4.3
Specializations of common_type
[time.traits.specializations]
30.4.4
Class template is_clock
[time.traits.is.clock]
30.5
Class template duration
[time.duration]
30.5.1
General
[time.duration.general]
30.5.2
Constructors
[time.duration.cons]
30.5.3
Observer
[time.duration.observer]
30.5.4
Arithmetic
[time.duration.arithmetic]
30.5.5
Special values
[time.duration.special]
30.5.6
Non-member arithmetic
[time.duration.nonmember]
30.5.7
Comparisons
[time.duration.comparisons]
30.5.8
Conversions
[time.duration.cast]
30.5.9
Suffixes for duration literals
[time.duration.literals]
30.5.10
Algorithms
[time.duration.alg]
30.5.11
I/O
[time.duration.io]
30.6
Class template time_point
[time.point]
30.6.1
General
[time.point.general]
30.6.2
Constructors
[time.point.cons]
30.6.3
Observer
[time.point.observer]
30.6.4
Arithmetic
[time.point.arithmetic]
30.6.5
Special values
[time.point.special]
30.6.6
Non-member arithmetic
[time.point.nonmember]
30.6.7
Comparisons
[time.point.comparisons]
30.6.8
Conversions
[time.point.cast]
30.7
Clocks
[time.clock]
30.7.1
General
[time.clock.general]
30.7.2
Class system_clock
[time.clock.system]
30.7.2.1
Overview
[time.clock.system.overview]
30.7.2.2
Members
[time.clock.system.members]
30.7.2.3
Non-member functions
[time.clock.system.nonmembers]
30.7.3
Class utc_clock
[time.clock.utc]
30.7.3.1
Overview
[time.clock.utc.overview]
30.7.3.2
Member functions
[time.clock.utc.members]
30.7.3.3
Non-member functions
[time.clock.utc.nonmembers]
30.7.4
Class tai_clock
[time.clock.tai]
30.7.4.1
Overview
[time.clock.tai.overview]
30.7.4.2
Member functions
[time.clock.tai.members]
30.7.4.3
Non-member functions
[time.clock.tai.nonmembers]
30.7.5
Class gps_clock
[time.clock.gps]
30.7.5.1
Overview
[time.clock.gps.overview]
30.7.5.2
Member functions
[time.clock.gps.members]
30.7.5.3
Non-member functions
[time.clock.gps.nonmembers]
30.7.6
Type file_clock
[time.clock.file]
30.7.6.1
Overview
[time.clock.file.overview]
30.7.6.2
Member functions
[time.clock.file.members]
30.7.6.3
Non-member functions
[time.clock.file.nonmembers]
30.7.7
Class steady_clock
[time.clock.steady]
30.7.8
Class high_resolution_clock
[time.clock.hires]
30.7.9
Local time
[time.clock.local]
30.7.10
time_point conversions
[time.clock.cast]
30.7.10.1
Class template clock_time_conversion
[time.clock.conv]
30.7.10.2
Identity conversions
[time.clock.cast.id]
30.7.10.3
Conversions between system_clock and utc_clock
[time.clock.cast.sys.utc]
30.7.10.4
Conversions between system_clock and other clocks
[time.clock.cast.sys]
30.7.10.5
Conversions between utc_clock and other clocks
[time.clock.cast.utc]
30.7.10.6
Function template clock_cast
[time.clock.cast.fn]
30.8
The civil calendar
[time.cal]
30.8.1
General
[time.cal.general]
30.8.2
Class last_spec
[time.cal.last]
30.8.3
Class day
[time.cal.day]
30.8.3.1
Overview
[time.cal.day.overview]
30.8.3.2
Member functions
[time.cal.day.members]
30.8.3.3
Non-member functions
[time.cal.day.nonmembers]
30.8.4
Class month
[time.cal.month]
30.8.4.1
Overview
[time.cal.month.overview]
30.8.4.2
Member functions
[time.cal.month.members]
30.8.4.3
Non-member functions
[time.cal.month.nonmembers]
30.8.5
Class year
[time.cal.year]
30.8.5.1
Overview
[time.cal.year.overview]
30.8.5.2
Member functions
[time.cal.year.members]
30.8.5.3
Non-member functions
[time.cal.year.nonmembers]
30.8.6
Class weekday
[time.cal.wd]
30.8.6.1
Overview
[time.cal.wd.overview]
30.8.6.2
Member functions
[time.cal.wd.members]
30.8.6.3
Non-member functions
[time.cal.wd.nonmembers]
30.8.7
Class weekday_indexed
[time.cal.wdidx]
30.8.7.1
Overview
[time.cal.wdidx.overview]
30.8.7.2
Member functions
[time.cal.wdidx.members]
30.8.7.3
Non-member functions
[time.cal.wdidx.nonmembers]
30.8.8
Class weekday_last
[time.cal.wdlast]
30.8.8.1
Overview
[time.cal.wdlast.overview]
30.8.8.2
Member functions
[time.cal.wdlast.members]
30.8.8.3
Non-member functions
[time.cal.wdlast.nonmembers]
30.8.9
Class month_day
[time.cal.md]
30.8.9.1
Overview
[time.cal.md.overview]
30.8.9.2
Member functions
[time.cal.md.members]
30.8.9.3
Non-member functions
[time.cal.md.nonmembers]
30.8.10
Class month_day_last
[time.cal.mdlast]
30.8.11
Class month_weekday
[time.cal.mwd]
30.8.11.1
Overview
[time.cal.mwd.overview]
30.8.11.2
Member functions
[time.cal.mwd.members]
30.8.11.3
Non-member functions
[time.cal.mwd.nonmembers]
30.8.12
Class month_weekday_last
[time.cal.mwdlast]
30.8.12.1
Overview
[time.cal.mwdlast.overview]
30.8.12.2
Member functions
[time.cal.mwdlast.members]
30.8.12.3
Non-member functions
[time.cal.mwdlast.nonmembers]
30.8.13
Class year_month
[time.cal.ym]
30.8.13.1
Overview
[time.cal.ym.overview]
30.8.13.2
Member functions
[time.cal.ym.members]
30.8.13.3
Non-member functions
[time.cal.ym.nonmembers]
30.8.14
Class year_month_day
[time.cal.ymd]
30.8.14.1
Overview
[time.cal.ymd.overview]
30.8.14.2
Member functions
[time.cal.ymd.members]
30.8.14.3
Non-member functions
[time.cal.ymd.nonmembers]
30.8.15
Class year_month_day_last
[time.cal.ymdlast]
30.8.15.1
Overview
[time.cal.ymdlast.overview]
30.8.15.2
Member functions
[time.cal.ymdlast.members]
30.8.15.3
Non-member functions
[time.cal.ymdlast.nonmembers]
30.8.16
Class year_month_weekday
[time.cal.ymwd]
30.8.16.1
Overview
[time.cal.ymwd.overview]
30.8.16.2
Member functions
[time.cal.ymwd.members]
30.8.16.3
Non-member functions
[time.cal.ymwd.nonmembers]
30.8.17
Class year_month_weekday_last
[time.cal.ymwdlast]
30.8.17.1
Overview
[time.cal.ymwdlast.overview]
30.8.17.2
Member functions
[time.cal.ymwdlast.members]
30.8.17.3
Non-member functions
[time.cal.ymwdlast.nonmembers]
30.8.18
Conventional syntax operators
[time.cal.operators]
30.9
Class template hh_mm_ss
[time.hms]
30.9.1
Overview
[time.hms.overview]
30.9.2
Members
[time.hms.members]
30.9.3
Non-members
[time.hms.nonmembers]
30.10
12/24 hours functions
[time.12]
30.11
Time zones
[time.zone]
30.11.1
General
[time.zone.general]
30.11.2
Time zone database
[time.zone.db]
30.11.2.1
Class tzdb
[time.zone.db.tzdb]
30.11.2.2
Class tzdb_list
[time.zone.db.list]
30.11.2.3
Time zone database access
[time.zone.db.access]
30.11.2.4
Remote time zone database support
[time.zone.db.remote]
30.11.3
Exception classes
[time.zone.exception]
30.11.3.1
Class nonexistent_local_time
[time.zone.exception.nonexist]
30.11.3.2
Class ambiguous_local_time
[time.zone.exception.ambig]
30.11.4
Information classes
[time.zone.info]
30.11.4.1
Class sys_info
[time.zone.info.sys]
30.11.4.2
Class local_info
[time.zone.info.local]
30.11.5
Class time_zone
[time.zone.timezone]
30.11.5.1
Overview
[time.zone.overview]
30.11.5.2
Member functions
[time.zone.members]
30.11.5.3
Non-member functions
[time.zone.nonmembers]
30.11.6
Class template zoned_traits
[time.zone.zonedtraits]
30.11.7
Class template zoned_time
[time.zone.zonedtime]
30.11.7.1
Overview
[time.zone.zonedtime.overview]
30.11.7.2
Constructors
[time.zone.zonedtime.ctor]
30.11.7.3
Member functions
[time.zone.zonedtime.members]
30.11.7.4
Non-member functions
[time.zone.zonedtime.nonmembers]
30.11.8
Class leap_second
[time.zone.leap]
30.11.8.1
Overview
[time.zone.leap.overview]
30.11.8.2
Member functions
[time.zone.leap.members]
30.11.8.3
Non-member functions
[time.zone.leap.nonmembers]
30.11.9
Class time_zone_link
[time.zone.link]
30.11.9.1
Overview
[time.zone.link.overview]
30.11.9.2
Member functions
[time.zone.link.members]
30.11.9.3
Non-member functions
[time.zone.link.nonmembers]
30.12
Formatting
[time.format]
30.13
Parsing
[time.parse]
30.14
Hash support
[time.hash]
30.15
Header synopsis
[ctime.syn]
31
Input/output library
[input.output]
31.1
General
[input.output.general]
31.2
Iostreams requirements
[iostreams.requirements]
31.2.1
Imbue limitations
[iostream.limits.imbue]
31.2.2
Types
[stream.types]
31.2.3
Positioning type limitations
[iostreams.limits.pos]
31.2.4
Thread safety
[iostreams.threadsafety]
31.3
Forward declarations
[iostream.forward]
31.3.1
Header synopsis
[iosfwd.syn]
31.3.2
Overview
[iostream.forward.overview]
31.4
Standard iostream objects
[iostream.objects]
31.4.1
Header synopsis
[iostream.syn]
31.4.2
Overview
[iostream.objects.overview]
31.4.3
Narrow stream objects
[narrow.stream.objects]
31.4.4
Wide stream objects
[wide.stream.objects]
31.5
Iostreams base classes
[iostreams.base]
31.5.1
Header synopsis
[ios.syn]
31.5.2
Class ios_base
[ios.base]
31.5.2.1
General
[ios.base.general]
31.5.2.2
Types
[ios.types]
31.5.2.2.1
Class ios_base::failure
[ios.failure]
31.5.2.2.2
Type ios_base::fmtflags
[ios.fmtflags]
31.5.2.2.3
Type ios_base::iostate
[ios.iostate]
31.5.2.2.4
Type ios_base::openmode
[ios.openmode]
31.5.2.2.5
Type ios_base::seekdir
[ios.seekdir]
31.5.2.2.6
Class ios_base::Init
[ios.init]
31.5.2.3
State functions
[fmtflags.state]
31.5.2.4
Functions
[ios.base.locales]
31.5.2.5
Static members
[ios.members.static]
31.5.2.6
Storage functions
[ios.base.storage]
31.5.2.7
Callbacks
[ios.base.callback]
31.5.2.8
Constructors and destructor
[ios.base.cons]
31.5.3
Class template fpos
[fpos]
31.5.3.1
General
[fpos.general]
31.5.3.2
Members
[fpos.members]
31.5.3.3
Requirements
[fpos.operations]
31.5.4
Class template basic_ios
[ios]
31.5.4.1
Overview
[ios.overview]
31.5.4.2
Constructors
[basic.ios.cons]
31.5.4.3
Member functions
[basic.ios.members]
31.5.4.4
Flags functions
[iostate.flags]
31.5.5
ios_base manipulators
[std.ios.manip]
31.5.5.1
fmtflags manipulators
[fmtflags.manip]
31.5.5.2
adjustfield manipulators
[adjustfield.manip]
31.5.5.3
basefield manipulators
[basefield.manip]
31.5.5.4
floatfield manipulators
[floatfield.manip]
31.5.6
Error reporting
[error.reporting]
31.6
Stream buffers
[stream.buffers]
31.6.1
Header synopsis
[streambuf.syn]
31.6.2
Stream buffer requirements
[streambuf.reqts]
31.6.3
Class template basic_streambuf
[streambuf]
31.6.3.1
General
[streambuf.general]
31.6.3.2
Constructors
[streambuf.cons]
31.6.3.3
Public member functions
[streambuf.members]
31.6.3.3.1
Locales
[streambuf.locales]
31.6.3.3.2
Buffer management and positioning
[streambuf.buffer]
31.6.3.3.3
Get area
[streambuf.pub.get]
31.6.3.3.4
Putback
[streambuf.pub.pback]
31.6.3.3.5
Put area
[streambuf.pub.put]
31.6.3.4
Protected member functions
[streambuf.protected]
31.6.3.4.1
Assignment
[streambuf.assign]
31.6.3.4.2
Get area access
[streambuf.get.area]
31.6.3.4.3
Put area access
[streambuf.put.area]
31.6.3.5
Virtual functions
[streambuf.virtuals]
31.6.3.5.1
Locales
[streambuf.virt.locales]
31.6.3.5.2
Buffer management and positioning
[streambuf.virt.buffer]
31.6.3.5.3
Get area
[streambuf.virt.get]
31.6.3.5.4
Putback
[streambuf.virt.pback]
31.6.3.5.5
Put area
[streambuf.virt.put]
31.7
Formatting and manipulators
[iostream.format]
31.7.1
Header synopsis
[istream.syn]
31.7.2
Header synopsis
[ostream.syn]
31.7.3
Header synopsis
[iomanip.syn]
31.7.4
Header synopsis
[print.syn]
31.7.5
Input streams
[input.streams]
31.7.5.1
General
[input.streams.general]
31.7.5.2
Class template basic_istream
[istream]
31.7.5.2.1
General
[istream.general]
31.7.5.2.2
Constructors
[istream.cons]
31.7.5.2.3
Assignment and swap
[istream.assign]
31.7.5.2.4
Class basic_istream::sentry
[istream.sentry]
31.7.5.3
Formatted input functions
[istream.formatted]
31.7.5.3.1
Common requirements
[istream.formatted.reqmts]
31.7.5.3.2
Arithmetic extractors
[istream.formatted.arithmetic]
31.7.5.3.3
basic_istream::operator>>
[istream.extractors]
31.7.5.4
Unformatted input functions
[istream.unformatted]
31.7.5.5
Standard basic_istream manipulators
[istream.manip]
31.7.5.6
Rvalue stream extraction
[istream.rvalue]
31.7.5.7
Class template basic_iostream
[iostreamclass]
31.7.5.7.1
General
[iostreamclass.general]
31.7.5.7.2
Constructors
[iostream.cons]
31.7.5.7.3
Destructor
[iostream.dest]
31.7.5.7.4
Assignment and swap
[iostream.assign]
31.7.6
Output streams
[output.streams]
31.7.6.1
General
[output.streams.general]
31.7.6.2
Class template basic_ostream
[ostream]
31.7.6.2.1
General
[ostream.general]
31.7.6.2.2
Constructors
[ostream.cons]
31.7.6.2.3
Assignment and swap
[ostream.assign]
31.7.6.2.4
Class basic_ostream::sentry
[ostream.sentry]
31.7.6.2.5
Seek members
[ostream.seeks]
31.7.6.3
Formatted output functions
[ostream.formatted]
31.7.6.3.1
Common requirements
[ostream.formatted.reqmts]
31.7.6.3.2
Arithmetic inserters
[ostream.inserters.arithmetic]
31.7.6.3.3
basic_ostream::operator<<
[ostream.inserters]
31.7.6.3.4
Character inserter function templates
[ostream.inserters.character]
31.7.6.3.5
Print
[ostream.formatted.print]
31.7.6.4
Unformatted output functions
[ostream.unformatted]
31.7.6.5
Standard basic_ostream manipulators
[ostream.manip]
31.7.6.6
Rvalue stream insertion
[ostream.rvalue]
31.7.7
Standard manipulators
[std.manip]
31.7.8
Extended manipulators
[ext.manip]
31.7.9
Quoted manipulators
[quoted.manip]
31.7.10
Print functions
[print.fun]
31.8
String-based streams
[string.streams]
31.8.1
Header synopsis
[sstream.syn]
31.8.2
Class template basic_stringbuf
[stringbuf]
31.8.2.1
General
[stringbuf.general]
31.8.2.2
Constructors
[stringbuf.cons]
31.8.2.3
Assignment and swap
[stringbuf.assign]
31.8.2.4
Member functions
[stringbuf.members]
31.8.2.5
Overridden virtual functions
[stringbuf.virtuals]
31.8.3
Class template basic_istringstream
[istringstream]
31.8.3.1
General
[istringstream.general]
31.8.3.2
Constructors
[istringstream.cons]
31.8.3.3
Swap
[istringstream.swap]
31.8.3.4
Member functions
[istringstream.members]
31.8.4
Class template basic_ostringstream
[ostringstream]
31.8.4.1
General
[ostringstream.general]
31.8.4.2
Constructors
[ostringstream.cons]
31.8.4.3
Swap
[ostringstream.swap]
31.8.4.4
Member functions
[ostringstream.members]
31.8.5
Class template basic_stringstream
[stringstream]
31.8.5.1
General
[stringstream.general]
31.8.5.2
Constructors
[stringstream.cons]
31.8.5.3
Swap
[stringstream.swap]
31.8.5.4
Member functions
[stringstream.members]
31.9
Span-based streams
[span.streams]
31.9.1
Overview
[span.streams.overview]
31.9.2
Header synopsis
[spanstream.syn]
31.9.3
Class template basic_spanbuf
[spanbuf]
31.9.3.1
General
[spanbuf.general]
31.9.3.2
Constructors
[spanbuf.cons]
31.9.3.3
Assignment and swap
[spanbuf.assign]
31.9.3.4
Member functions
[spanbuf.members]
31.9.3.5
Overridden virtual functions
[spanbuf.virtuals]
31.9.4
Class template basic_ispanstream
[ispanstream]
31.9.4.1
General
[ispanstream.general]
31.9.4.2
Constructors
[ispanstream.cons]
31.9.4.3
Swap
[ispanstream.swap]
31.9.4.4
Member functions
[ispanstream.members]
31.9.5
Class template basic_ospanstream
[ospanstream]
31.9.5.1
General
[ospanstream.general]
31.9.5.2
Constructors
[ospanstream.cons]
31.9.5.3
Swap
[ospanstream.swap]
31.9.5.4
Member functions
[ospanstream.members]
31.9.6
Class template basic_spanstream
[spanstream]
31.9.6.1
General
[spanstream.general]
31.9.6.2
Constructors
[spanstream.cons]
31.9.6.3
Swap
[spanstream.swap]
31.9.6.4
Member functions
[spanstream.members]
31.10
File-based streams
[file.streams]
31.10.1
Header synopsis
[fstream.syn]
31.10.2
Native handles
[file.native]
31.10.3
Class template basic_filebuf
[filebuf]
31.10.3.1
General
[filebuf.general]
31.10.3.2
Constructors
[filebuf.cons]
31.10.3.3
Assignment and swap
[filebuf.assign]
31.10.3.4
Member functions
[filebuf.members]
31.10.3.5
Overridden virtual functions
[filebuf.virtuals]
31.10.4
Class template basic_ifstream
[ifstream]
31.10.4.1
General
[ifstream.general]
31.10.4.2
Constructors
[ifstream.cons]
31.10.4.3
Swap
[ifstream.swap]
31.10.4.4
Member functions
[ifstream.members]
31.10.5
Class template basic_ofstream
[ofstream]
31.10.5.1
General
[ofstream.general]
31.10.5.2
Constructors
[ofstream.cons]
31.10.5.3
Swap
[ofstream.swap]
31.10.5.4
Member functions
[ofstream.members]
31.10.6
Class template basic_fstream
[fstream]
31.10.6.1
General
[fstream.general]
31.10.6.2
Constructors
[fstream.cons]
31.10.6.3
Swap
[fstream.swap]
31.10.6.4
Member functions
[fstream.members]
31.11
Synchronized output streams
[syncstream]
31.11.1
Header synopsis
[syncstream.syn]
31.11.2
Class template basic_syncbuf
[syncstream.syncbuf]
31.11.2.1
Overview
[syncstream.syncbuf.overview]
31.11.2.2
Construction and destruction
[syncstream.syncbuf.cons]
31.11.2.3
Assignment and swap
[syncstream.syncbuf.assign]
31.11.2.4
Member functions
[syncstream.syncbuf.members]
31.11.2.5
Overridden virtual functions
[syncstream.syncbuf.virtuals]
31.11.2.6
Specialized algorithms
[syncstream.syncbuf.special]
31.11.3
Class template basic_osyncstream
[syncstream.osyncstream]
31.11.3.1
Overview
[syncstream.osyncstream.overview]
31.11.3.2
Construction and destruction
[syncstream.osyncstream.cons]
31.11.3.3
Member functions
[syncstream.osyncstream.members]
31.12
File systems
[filesystems]
31.12.1
General
[fs.general]
31.12.2
Conformance
[fs.conformance]
31.12.2.1
General
[fs.conformance.general]
31.12.2.2
POSIX conformance
[fs.conform.9945]
31.12.2.3
Operating system dependent behavior conformance
[fs.conform.os]
31.12.2.4
File system race behavior
[fs.race.behavior]
31.12.3
Requirements
[fs.req]
31.12.4
Header synopsis
[fs.filesystem.syn]
31.12.5
Error reporting
[fs.err.report]
31.12.6
Class path
[fs.class.path]
31.12.6.1
General
[fs.class.path.general]
31.12.6.2
Generic pathname format
[fs.path.generic]
31.12.6.3
Conversions
[fs.path.cvt]
31.12.6.3.1
Argument format conversions
[fs.path.fmt.cvt]
31.12.6.3.2
Type and encoding conversions
[fs.path.type.cvt]
31.12.6.4
Requirements
[fs.path.req]
31.12.6.5
Members
[fs.path.member]
31.12.6.5.1
Constructors
[fs.path.construct]
31.12.6.5.2
Assignments
[fs.path.assign]
31.12.6.5.3
Appends
[fs.path.append]
31.12.6.5.4
Concatenation
[fs.path.concat]
31.12.6.5.5
Modifiers
[fs.path.modifiers]
31.12.6.5.6
Native format observers
[fs.path.native.obs]
31.12.6.5.7
Generic format observers
[fs.path.generic.obs]
31.12.6.5.8
Compare
[fs.path.compare]
31.12.6.5.9
Decomposition
[fs.path.decompose]
31.12.6.5.10
Query
[fs.path.query]
31.12.6.5.11
Generation
[fs.path.gen]
31.12.6.6
Iterators
[fs.path.itr]
31.12.6.7
Inserter and extractor
[fs.path.io]
31.12.6.8
Non-member functions
[fs.path.nonmember]
31.12.6.9
Formatting support
[fs.path.fmtr]
31.12.6.9.1
Formatting support overview
[fs.path.fmtr.general]
31.12.6.9.2
Formatting support functions
[fs.path.fmtr.funcs]
31.12.6.10
Hash support
[fs.path.hash]
31.12.7
Class filesystem_error
[fs.class.filesystem.error]
31.12.7.1
General
[fs.class.filesystem.error.general]
31.12.7.2
Members
[fs.filesystem.error.members]
31.12.8
Enumerations
[fs.enum]
31.12.8.1
Enum path::format
[fs.enum.path.format]
31.12.8.2
Enum class file_type
[fs.enum.file.type]
31.12.8.3
Enum class copy_options
[fs.enum.copy.opts]
31.12.8.4
Enum class perms
[fs.enum.perms]
31.12.8.5
Enum class perm_options
[fs.enum.perm.opts]
31.12.8.6
Enum class directory_options
[fs.enum.dir.opts]
31.12.9
Class file_status
[fs.class.file.status]
31.12.9.1
General
[fs.class.file.status.general]
31.12.9.2
Constructors
[fs.file.status.cons]
31.12.9.3
Observers
[fs.file.status.obs]
31.12.9.4
Modifiers
[fs.file.status.mods]
31.12.10
Class directory_entry
[fs.class.directory.entry]
31.12.10.1
General
[fs.class.directory.entry.general]
31.12.10.2
Constructors
[fs.dir.entry.cons]
31.12.10.3
Modifiers
[fs.dir.entry.mods]
31.12.10.4
Observers
[fs.dir.entry.obs]
31.12.10.5
Inserter
[fs.dir.entry.io]
31.12.11
Class directory_iterator
[fs.class.directory.iterator]
31.12.11.1
General
[fs.class.directory.iterator.general]
31.12.11.2
Members
[fs.dir.itr.members]
31.12.11.3
Non-member functions
[fs.dir.itr.nonmembers]
31.12.12
Class recursive_directory_iterator
[fs.class.rec.dir.itr]
31.12.12.1
General
[fs.class.rec.dir.itr.general]
31.12.12.2
Members
[fs.rec.dir.itr.members]
31.12.12.3
Non-member functions
[fs.rec.dir.itr.nonmembers]
31.12.13
Filesystem operation functions
[fs.op.funcs]
31.12.13.1
General
[fs.op.funcs.general]
31.12.13.2
Absolute
[fs.op.absolute]
31.12.13.3
Canonical
[fs.op.canonical]
31.12.13.4
Copy
[fs.op.copy]
31.12.13.5
Copy file
[fs.op.copy.file]
31.12.13.6
Copy symlink
[fs.op.copy.symlink]
31.12.13.7
Create directories
[fs.op.create.directories]
31.12.13.8
Create directory
[fs.op.create.directory]
31.12.13.9
Create directory symlink
[fs.op.create.dir.symlk]
31.12.13.10
Create hard link
[fs.op.create.hard.lk]
31.12.13.11
Create symlink
[fs.op.create.symlink]
31.12.13.12
Current path
[fs.op.current.path]
31.12.13.13
Equivalent
[fs.op.equivalent]
31.12.13.14
Exists
[fs.op.exists]
31.12.13.15
File size
[fs.op.file.size]
31.12.13.16
Hard link count
[fs.op.hard.lk.ct]
31.12.13.17
Is block file
[fs.op.is.block.file]
31.12.13.18
Is character file
[fs.op.is.char.file]
31.12.13.19
Is directory
[fs.op.is.directory]
31.12.13.20
Is empty
[fs.op.is.empty]
31.12.13.21
Is fifo
[fs.op.is.fifo]
31.12.13.22
Is other
[fs.op.is.other]
31.12.13.23
Is regular file
[fs.op.is.regular.file]
31.12.13.24
Is socket
[fs.op.is.socket]
31.12.13.25
Is symlink
[fs.op.is.symlink]
31.12.13.26
Last write time
[fs.op.last.write.time]
31.12.13.27
Permissions
[fs.op.permissions]
31.12.13.28
Proximate
[fs.op.proximate]
31.12.13.29
Read symlink
[fs.op.read.symlink]
31.12.13.30
Relative
[fs.op.relative]
31.12.13.31
Remove
[fs.op.remove]
31.12.13.32
Remove all
[fs.op.remove.all]
31.12.13.33
Rename
[fs.op.rename]
31.12.13.34
Resize file
[fs.op.resize.file]
31.12.13.35
Space
[fs.op.space]
31.12.13.36
Status
[fs.op.status]
31.12.13.37
Status known
[fs.op.status.known]
31.12.13.38
Symlink status
[fs.op.symlink.status]
31.12.13.39
Temporary directory path
[fs.op.temp.dir.path]
31.12.13.40
Weakly canonical
[fs.op.weakly.canonical]
31.13
C library files
[c.files]
31.13.1
Header synopsis
[cstdio.syn]
31.13.2
Header synopsis
[cinttypes.syn]
32
Concurrency support library
[thread]
32.1
General
[thread.general]
32.2
Requirements
[thread.req]
32.2.1
Template parameter names
[thread.req.paramname]
32.2.2
Exceptions
[thread.req.exception]
32.2.3
Native handles
[thread.req.native]
32.2.4
Timing specifications
[thread.req.timing]
32.2.5
Requirements for Cpp17Lockable types
[thread.req.lockable]
32.2.5.1
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.2.5.5
Cpp17SharedLockable requirements
[thread.req.lockable.shared]
32.2.5.6
Cpp17SharedTimedLockable requirements
[thread.req.lockable.shared.timed]
32.3
Stop tokens
[thread.stoptoken]
32.3.1
Introduction
[thread.stoptoken.intro]
32.3.2
Header synopsis
[thread.stoptoken.syn]
32.3.3
Stop token concepts
[stoptoken.concepts]
32.3.4
Class stop_token
[stoptoken]
32.3.4.1
General
[stoptoken.general]
32.3.4.2
Member functions
[stoptoken.mem]
32.3.5
Class stop_source
[stopsource]
32.3.5.1
General
[stopsource.general]
32.3.5.2
Constructors, copy, and assignment
[stopsource.cons]
32.3.5.3
Member functions
[stopsource.mem]
32.3.6
Class template stop_callback
[stopcallback]
32.3.6.1
General
[stopcallback.general]
32.3.6.2
Constructors and destructor
[stopcallback.cons]
32.3.7
Class never_stop_token
[stoptoken.never]
32.3.8
Class inplace_stop_token
[stoptoken.inplace]
32.3.8.1
General
[stoptoken.inplace.general]
32.3.8.2
Member functions
[stoptoken.inplace.mem]
32.3.9
Class inplace_stop_source
[stopsource.inplace]
32.3.9.1
General
[stopsource.inplace.general]
32.3.9.2
Constructors
[stopsource.inplace.cons]
32.3.9.3
Member functions
[stopsource.inplace.mem]
32.3.10
Class template inplace_stop_callback
[stopcallback.inplace]
32.3.10.1
General
[stopcallback.inplace.general]
32.3.10.2
Constructors and destructor
[stopcallback.inplace.cons]
32.4
Threads
[thread.threads]
32.4.1
General
[thread.threads.general]
32.4.2
Header synopsis
[thread.syn]
32.4.3
Class thread
[thread.thread.class]
32.4.3.1
General
[thread.thread.class.general]
32.4.3.2
Thread attributes
[thread.attributes]
32.4.3.2.1
General
[thread.attributes.general]
32.4.3.2.2
Class thread::name_hint
[thread.attributes.hint]
32.4.3.2.3
Class thread::stack_size_hint
[thread.attributes.size]
32.4.3.3
Class thread::id
[thread.thread.id]
32.4.3.4
Constructors
[thread.thread.constr]
32.4.3.5
Destructor
[thread.thread.destr]
32.4.3.6
Assignment
[thread.thread.assign]
32.4.3.7
Members
[thread.thread.member]
32.4.3.8
Static members
[thread.thread.static]
32.4.3.9
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
Atomic operations
[atomics]
32.5.1
General
[atomics.general]
32.5.2
Header synopsis
[atomics.syn]
32.5.3
Type aliases
[atomics.alias]
32.5.4
Order and consistency
[atomics.order]
32.5.5
Lock-free property
[atomics.lockfree]
32.5.6
Waiting and notifying
[atomics.wait]
32.5.7
Class template atomic_ref
[atomics.ref.generic]
32.5.7.1
General
[atomics.ref.generic.general]
32.5.7.2
Operations
[atomics.ref.ops]
32.5.7.3
Specializations for integral types
[atomics.ref.int]
32.5.7.4
Specializations for floating-point types
[atomics.ref.float]
32.5.7.5
Specialization for pointers
[atomics.ref.pointer]
32.5.7.6
Member operators common to integers and pointers to objects
[atomics.ref.memop]
32.5.8
Class template atomic
[atomics.types.generic]
32.5.8.1
General
[atomics.types.generic.general]
32.5.8.2
Operations on atomic types
[atomics.types.operations]
32.5.8.3
Specializations for integers
[atomics.types.int]
32.5.8.4
Specializations for floating-point types
[atomics.types.float]
32.5.8.5
Partial specialization for pointers
[atomics.types.pointer]
32.5.8.6
Member operators common to integers and pointers to objects
[atomics.types.memop]
32.5.8.7
Partial specializations for smart pointers
[util.smartptr.atomic]
32.5.8.7.1
General
[util.smartptr.atomic.general]
32.5.8.7.2
Partial specialization for shared_ptr
[util.smartptr.atomic.shared]
32.5.8.7.3
Partial specialization for weak_ptr
[util.smartptr.atomic.weak]
32.5.9
Non-member functions
[atomics.nonmembers]
32.5.10
Flag type and operations
[atomics.flag]
32.5.11
Fences
[atomics.fences]
32.5.12
C compatibility
[stdatomic.h.syn]
32.6
Mutual exclusion
[thread.mutex]
32.6.1
General
[thread.mutex.general]
32.6.2
Header synopsis
[mutex.syn]
32.6.3
Header synopsis
[shared.mutex.syn]
32.6.4
Mutex requirements
[thread.mutex.requirements]
32.6.4.1
General
[thread.mutex.requirements.general]
32.6.4.2
Mutex types
[thread.mutex.requirements.mutex]
32.6.4.2.1
General
[thread.mutex.requirements.mutex.general]
32.6.4.2.2
Class mutex
[thread.mutex.class]
32.6.4.2.3
Class recursive_mutex
[thread.mutex.recursive]
32.6.4.3
Timed mutex types
[thread.timedmutex.requirements]
32.6.4.3.1
General
[thread.timedmutex.requirements.general]
32.6.4.3.2
Class timed_mutex
[thread.timedmutex.class]
32.6.4.3.3
Class recursive_timed_mutex
[thread.timedmutex.recursive]
32.6.4.4
Shared mutex types
[thread.sharedmutex.requirements]
32.6.4.4.1
General
[thread.sharedmutex.requirements.general]
32.6.4.4.2
Class shared_mutex
[thread.sharedmutex.class]
32.6.4.5
Shared timed mutex types
[thread.sharedtimedmutex.requirements]
32.6.4.5.1
General
[thread.sharedtimedmutex.requirements.general]
32.6.4.5.2
Class shared_timed_mutex
[thread.sharedtimedmutex.class]
32.6.5
Locks
[thread.lock]
32.6.5.1
General
[thread.lock.general]
32.6.5.2
Class template lock_guard
[thread.lock.guard]
32.6.5.3
Class template scoped_lock
[thread.lock.scoped]
32.6.5.4
Class template unique_lock
[thread.lock.unique]
32.6.5.4.1
General
[thread.lock.unique.general]
32.6.5.4.2
Constructors, destructor, and assignment
[thread.lock.unique.cons]
32.6.5.4.3
Locking
[thread.lock.unique.locking]
32.6.5.4.4
Modifiers
[thread.lock.unique.mod]
32.6.5.4.5
Observers
[thread.lock.unique.obs]
32.6.5.5
Class template shared_lock
[thread.lock.shared]
32.6.5.5.1
General
[thread.lock.shared.general]
32.6.5.5.2
Constructors, destructor, and assignment
[thread.lock.shared.cons]
32.6.5.5.3
Locking
[thread.lock.shared.locking]
32.6.5.5.4
Modifiers
[thread.lock.shared.mod]
32.6.5.5.5
Observers
[thread.lock.shared.obs]
32.6.6
Generic locking algorithms
[thread.lock.algorithm]
32.6.7
Call once
[thread.once]
32.6.7.1
Struct once_flag
[thread.once.onceflag]
32.6.7.2
Function call_once
[thread.once.callonce]
32.7
Condition variables
[thread.condition]
32.7.1
General
[thread.condition.general]
32.7.2
Header synopsis
[condition.variable.syn]
32.7.3
Non-member functions
[thread.condition.nonmember]
32.7.4
Class condition_variable
[thread.condition.condvar]
32.7.5
Class condition_variable_any
[thread.condition.condvarany]
32.7.5.1
General
[thread.condition.condvarany.general]
32.7.5.2
Noninterruptible waits
[thread.condvarany.wait]
32.7.5.3
Interruptible waits
[thread.condvarany.intwait]
32.8
Semaphore
[thread.sema]
32.8.1
General
[thread.sema.general]
32.8.2
Header synopsis
[semaphore.syn]
32.8.3
Class template counting_semaphore
[thread.sema.cnt]
32.9
Coordination types
[thread.coord]
32.9.1
General
[thread.coord.general]
32.9.2
Latches
[thread.latch]
32.9.2.1
General
[thread.latch.general]
32.9.2.2
Header synopsis
[latch.syn]
32.9.2.3
Class latch
[thread.latch.class]
32.9.3
Barriers
[thread.barrier]
32.9.3.1
General
[thread.barrier.general]
32.9.3.2
Header synopsis
[barrier.syn]
32.9.3.3
Class template barrier
[thread.barrier.class]
32.10
Futures
[futures]
32.10.1
Overview
[futures.overview]
32.10.2
Header synopsis
[future.syn]
32.10.3
Error handling
[futures.errors]
32.10.4
Class future_error
[futures.future.error]
32.10.5
Shared state
[futures.state]
32.10.6
Class template promise
[futures.promise]
32.10.7
Class template future
[futures.unique.future]
32.10.8
Class template shared_future
[futures.shared.future]
32.10.9
Function template async
[futures.async]
32.10.10
Class template packaged_task
[futures.task]
32.10.10.1
General
[futures.task.general]
32.10.10.2
Member functions
[futures.task.members]
32.10.10.3
Globals
[futures.task.nonmembers]
32.11
Safe reclamation
[saferecl]
32.11.1
General
[saferecl.general]
32.11.2
Read-copy update (RCU)
[saferecl.rcu]
32.11.2.1
General
[saferecl.rcu.general]
32.11.2.2
Header synopsis
[rcu.syn]
32.11.2.3
Class template rcu_obj_base
[saferecl.rcu.base]
32.11.2.4
Class rcu_domain
[saferecl.rcu.domain]
32.11.2.4.1
General
[saferecl.rcu.domain.general]
32.11.2.4.2
Member functions
[saferecl.rcu.domain.members]
32.11.2.4.3
Non-member functions
[saferecl.rcu.domain.func]
32.11.3
Hazard pointers
[saferecl.hp]
32.11.3.1
General
[saferecl.hp.general]
32.11.3.2
Header synopsis
[hazard.pointer.syn]
32.11.3.3
Class template hazard_pointer_obj_base
[saferecl.hp.base]
32.11.3.4
Class hazard_pointer
[saferecl.hp.holder]
32.11.3.4.1
General
[saferecl.hp.holder.general]
32.11.3.4.2
Constructors, destructor, and assignment
[saferecl.hp.holder.ctor]
32.11.3.4.3
Member functions
[saferecl.hp.holder.mem]
32.11.3.4.4
Non-member functions
[saferecl.hp.holder.nonmem]
33
Execution control library
[exec]
33.1
General
[exec.general]
33.2
Queries and queryables
[exec.queryable]
33.2.1
General
[exec.queryable.general]
33.2.2
queryable concept
[exec.queryable.concept]
33.3
Asynchronous operations
[exec.async.ops]
33.4
Header synopsis
[execution.syn]
33.5
Queries
[exec.queries]
33.5.1
Query utilities
[exec.queries.expos]
33.5.2
forwarding_query
[exec.fwd.env]
33.5.3
get_allocator
[exec.get.allocator]
33.5.4
get_stop_token
[exec.get.stop.token]
33.5.5
execution::get_env
[exec.get.env]
33.5.6
execution::get_domain
[exec.get.domain]
33.5.7
execution::get_scheduler
[exec.get.scheduler]
33.5.8
execution::get_start_scheduler
[exec.get.start.scheduler]
33.5.9
execution::get_delegation_scheduler
[exec.get.delegation.scheduler]
33.5.10
execution::get_forward_progress_guarantee
[exec.get.fwd.progress]
33.5.11
execution::get_completion_scheduler
[exec.get.compl.sched]
33.5.12
execution::get_completion_domain
[exec.get.compl.domain]
33.5.13
execution::get_await_completion_adaptor
[exec.get.await.adapt]
33.6
Schedulers
[exec.sched]
33.7
Receivers
[exec.recv]
33.7.1
Receiver concepts
[exec.recv.concepts]
33.7.2
execution::set_value
[exec.set.value]
33.7.3
execution::set_error
[exec.set.error]
33.7.4
execution::set_stopped
[exec.set.stopped]
33.8
Operation states
[exec.opstate]
33.8.1
General
[exec.opstate.general]
33.8.2
execution::start
[exec.opstate.start]
33.9
Senders
[exec.snd]
33.9.1
General
[exec.snd.general]
33.9.2
Exposition-only entities
[exec.snd.expos]
33.9.3
Sender concepts
[exec.snd.concepts]
33.9.4
Awaitable helpers
[exec.awaitable]
33.9.5
execution::indeterminate_domain
[exec.domain.indeterminate]
33.9.6
execution::default_domain
[exec.domain.default]
33.9.7
execution::transform_sender
[exec.snd.transform]
33.9.8
execution::apply_sender
[exec.snd.apply]
33.9.9
execution::get_completion_signatures
[exec.getcomplsigs]
33.9.10
execution::connect
[exec.connect]
33.9.11
Sender factories
[exec.factories]
33.9.11.1
execution::schedule
[exec.schedule]
33.9.11.2
execution::just, execution::just_error, execution::just_stopped
[exec.just]
33.9.11.3
execution::read_env
[exec.read.env]
33.9.12
Sender adaptors
[exec.adapt]
33.9.12.1
General
[exec.adapt.general]
33.9.12.2
Closure objects
[exec.adapt.obj]
33.9.12.3
execution::write_env
[exec.write.env]
33.9.12.4
execution::unstoppable
[exec.unstoppable]
33.9.12.5
execution::starts_on
[exec.starts.on]
33.9.12.6
execution::continues_on
[exec.continues.on]
33.9.12.7
execution::schedule_from
[exec.schedule.from]
33.9.12.8
execution::on
[exec.on]
33.9.12.9
execution::then, execution::upon_error, execution::upon_stopped
[exec.then]
33.9.12.10
execution::let_value, execution::let_error, execution::let_stopped
[exec.let]
33.9.12.11
execution::bulk, execution::bulk_chunked, and execution::bulk_unchunked
[exec.bulk]
33.9.12.12
execution::when_all
[exec.when.all]
33.9.12.13
execution::into_variant
[exec.into.variant]
33.9.12.14
execution::stopped_as_optional
[exec.stopped.opt]
33.9.12.15
execution::stopped_as_error
[exec.stopped.err]
33.9.12.16
execution::associate
[exec.associate]
33.9.12.17
Exposition-only execution::stop-when
[exec.stop.when]
33.9.12.18
execution::spawn_future
[exec.spawn.future]
33.9.13
Sender consumers
[exec.consumers]
33.9.13.1
this_thread::sync_wait
[exec.sync.wait]
33.9.13.2
this_thread::sync_wait_with_variant
[exec.sync.wait.var]
33.9.13.3
execution::spawn
[exec.spawn]
33.10
Completion signatures
[exec.cmplsig]
33.11
Queryable utilities
[exec.envs]
33.11.1
Class template prop
[exec.prop]
33.11.2
Class template env
[exec.env]
33.12
Execution contexts
[exec.ctx]
33.12.1
execution::run_loop
[exec.run.loop]
33.12.1.1
General
[exec.run.loop.general]
33.12.1.2
Associated types
[exec.run.loop.types]
33.12.1.3
Constructor and destructor
[exec.run.loop.ctor]
33.12.1.4
Member functions
[exec.run.loop.members]
33.13
Coroutine utilities
[exec.coro.util]
33.13.1
execution::as_awaitable
[exec.as.awaitable]
33.13.2
execution::with_awaitable_senders
[exec.with.awaitable.senders]
33.13.3
execution::affine
[exec.affine]
33.13.4
execution::inline_scheduler
[exec.inline.scheduler]
33.13.5
execution::task_scheduler
[exec.task.scheduler]
33.13.6
execution::task
[exec.task]
33.13.6.1
task overview
[task.overview]
33.13.6.2
Class template task
[task.class]
33.13.6.3
task members
[task.members]
33.13.6.4
Class template task::state
[task.state]
33.13.6.5
Class task::promise_type
[task.promise]
33.14
Execution scope utilities
[exec.scope]
33.14.1
Execution scope concepts
[exec.scope.concepts]
33.14.2
Counting Scopes
[exec.counting.scopes]
33.14.2.1
General
[exec.counting.scopes.general]
33.14.2.2
Simple Counting Scope
[exec.scope.simple.counting]
33.14.2.2.1
General
[exec.scope.simple.counting.general]
33.14.2.2.2
Constructor and Destructor
[exec.simple.counting.ctor]
33.14.2.2.3
Members
[exec.simple.counting.mem]
33.14.2.2.4
Token
[exec.simple.counting.token]
33.14.2.3
Counting Scope
[exec.scope.counting]
33.15
Parallel scheduler
[exec.par.scheduler]
33.16
Namespace parallel_scheduler_replacement
[exec.parschedrepl]
33.16.1
General
[exec.parschedrepl.general]
33.16.2
Receiver proxies
[exec.parschedrepl.recvproxy]
33.16.3
query_parallel_scheduler_backend
[exec.parschedrepl.query]
33.16.4
Class parallel_scheduler_backend
[exec.parschedrepl.psb]
Annex A
Grammar summary
[gram]
A.1
General
[gram.general]
A.2
Keywords
[gram.key]
A.3
Lexical conventions
[gram.lex]
A.4
Basics
[gram.basic]
A.5
Expressions
[gram.expr]
A.6
Statements
[gram.stmt]
A.7
Declarations
[gram.dcl]
A.8
Modules
[gram.module]
A.9
Classes
[gram.class]
A.10
Overloading
[gram.over]
A.11
Templates
[gram.temp]
A.12
Exception handling
[gram.except]
A.13
Preprocessing directives
[gram.cpp]
Annex B
Implementation quantities
[implimits]
Annex C
Compatibility
[diff]
C.1
C++ and ISO C++ 2026
[diff.cpp26]
C.1.1
General
[diff.cpp26.general]
C.1.2
Clause [basic]: basics
[diff.cpp26.basic]
C.1.3
Clause [dcl]: declarations
[diff.cpp26.dcl]
C.2
C++ and ISO C++ 2023
[diff.cpp23]
C.2.1
General
[diff.cpp23.general]
C.2.2
Clause [lex]: lexical conventions
[diff.cpp23.lex]
C.2.3
Clause [expr]: expressions
[diff.cpp23.expr]
C.2.4
Clause [dcl]: declarations
[diff.cpp23.dcl.dcl]
C.2.5
Clause [temp]: templates
[diff.cpp23.temp]
C.2.6
Clause [cpp]: preprocessing directives
[diff.cpp23.cpp]
C.2.7
Clause [library]: library introduction
[diff.cpp23.library]
C.2.8
Clause [mem]: memory management library
[diff.cpp23.mem]
C.2.9
Clause [strings]: strings library
[diff.cpp23.strings]
C.2.10
Clause [input.output]: input/output library
[diff.cpp23.io]
C.2.11
Annex [depr]: compatibility features
[diff.cpp23.depr]
C.3
C++ and ISO C++ 2020
[diff.cpp20]
C.3.1
General
[diff.cpp20.general]
C.3.2
Clause [lex]: lexical conventions
[diff.cpp20.lex]
C.3.3
Clause [expr]: expressions
[diff.cpp20.expr]
C.3.4
Clause [stmt]: statements
[diff.cpp20.stmt]
C.3.5
Clause [dcl]: declarations
[diff.cpp20.dcl]
C.3.6
Clause [over]: overloading
[diff.cpp20.over]
C.3.7
Clause [temp]: templates
[diff.cpp20.temp]
C.3.8
Clause [library]: library introduction
[diff.cpp20.library]
C.3.9
Clause [concepts]: concepts library
[diff.cpp20.concepts]
C.3.10
Clause [mem]: memory management library
[diff.cpp20.memory]
C.3.11
Clause [utilities]: general utilities library
[diff.cpp20.utilities]
C.3.12
Clause [strings]: strings library
[diff.cpp20.strings]
C.3.13
Clause [containers]: containers library
[diff.cpp20.containers]
C.3.14
Clause [thread]: concurrency support library
[diff.cpp20.thread]
C.4
C++ and ISO C++ 2017
[diff.cpp17]
C.4.1
General
[diff.cpp17.general]
C.4.2
Clause [lex]: lexical conventions
[diff.cpp17.lex]
C.4.3
Clause [basic]: basics
[diff.cpp17.basic]
C.4.4
Clause [expr]: expressions
[diff.cpp17.expr]
C.4.5
Clause [dcl]: declarations
[diff.cpp17.dcl.dcl]
C.4.6
Clause [class]: classes
[diff.cpp17.class]
C.4.7
Clause [over]: overloading
[diff.cpp17.over]
C.4.8
Clause [temp]: templates
[diff.cpp17.temp]
C.4.9
Clause [except]: exception handling
[diff.cpp17.except]
C.4.10
Clause [library]: library introduction
[diff.cpp17.library]
C.4.11
Clause [containers]: containers library
[diff.cpp17.containers]
C.4.12
Clause [iterators]: iterators library
[diff.cpp17.iterators]
C.4.13
Clause [algorithms]: algorithms library
[diff.cpp17.alg.reqs]
C.4.14
Clause [input.output]: input/output library
[diff.cpp17.input.output]
C.4.15
Annex [depr]: compatibility features
[diff.cpp17.depr]
C.5
C++ and ISO C++ 2014
[diff.cpp14]
C.5.1
General
[diff.cpp14.general]
C.5.2
Clause [lex]: lexical conventions
[diff.cpp14.lex]
C.5.3
Clause [expr]: expressions
[diff.cpp14.expr]
C.5.4
Clause [dcl]: declarations
[diff.cpp14.dcl.dcl]
C.5.5
Clause [class]: classes
[diff.cpp14.class]
C.5.6
Clause [temp]: templates
[diff.cpp14.temp]
C.5.7
Clause [except]: exception handling
[diff.cpp14.except]
C.5.8
Clause [library]: library introduction
[diff.cpp14.library]
C.5.9
Clause [utilities]: general utilities library
[diff.cpp14.utilities]
C.5.10
Clause [strings]: strings library
[diff.cpp14.string]
C.5.11
Clause [containers]: containers library
[diff.cpp14.containers]
C.5.12
Annex [depr]: compatibility features
[diff.cpp14.depr]
C.6
C++ and ISO C++ 2011
[diff.cpp11]
C.6.1
General
[diff.cpp11.general]
C.6.2
Clause [lex]: lexical conventions
[diff.cpp11.lex]
C.6.3
Clause [basic]: basics
[diff.cpp11.basic]
C.6.4
Clause [expr]: expressions
[diff.cpp11.expr]
C.6.5
Clause [dcl]: declarations
[diff.cpp11.dcl.dcl]
C.6.6
Clause [library]: library introduction
[diff.cpp11.library]
C.6.7
Clause [input.output]: input/output library
[diff.cpp11.input.output]
C.7
C++ and ISO C++ 2003
[diff.cpp03]
C.7.1
General
[diff.cpp03.general]
C.7.2
Clause [lex]: lexical conventions
[diff.cpp03.lex]
C.7.3
Clause [expr]: expressions
[diff.cpp03.expr]
C.7.4
Clause [dcl]: declarations
[diff.cpp03.dcl.dcl]
C.7.5
Clause [class]: classes
[diff.cpp03.class]
C.7.6
Clause [temp]: templates
[diff.cpp03.temp]
C.7.7
Clause [library]: library introduction
[diff.cpp03.library]
C.7.8
Clause [support]: language support library
[diff.cpp03.language.support]
C.7.9
Clause [diagnostics]: diagnostics library
[diff.cpp03.diagnostics]
C.7.10
Clause [utilities]: general utilities library
[diff.cpp03.utilities]
C.7.11
Clause [strings]: strings library
[diff.cpp03.strings]
C.7.12
Clause [containers]: containers library
[diff.cpp03.containers]
C.7.13
Clause [algorithms]: algorithms library
[diff.cpp03.algorithms]
C.7.14
Clause [numerics]: numerics library
[diff.cpp03.numerics]
C.7.15
[localization]: localization library
[diff.cpp03.locale]
C.7.16
Clause [input.output]: input/output library
[diff.cpp03.input.output]
C.8
C++ and C
[diff.iso]
C.8.1
General
[diff.iso.general]
C.8.2
Clause [lex]: lexical conventions
[diff.lex]
C.8.3
Clause [basic]: basics
[diff.basic]
C.8.4
Clause [expr]: expressions
[diff.expr]
C.8.5
Clause [stmt]: statements
[diff.stat]
C.8.6
Clause [dcl]: declarations
[diff.dcl]
C.8.7
Clause [class]: classes
[diff.class]
C.8.8
Clause [cpp]: preprocessing directives
[diff.cpp]
C.9
C standard library
[diff.library]
C.9.1
General
[diff.library.general]
C.9.2
Modifications to headers
[diff.mods.to.headers]
C.9.3
Modifications to definitions
[diff.mods.to.definitions]
C.9.3.1
Types char8_t, char16_t, and char32_t
[diff.char16]
C.9.3.2
Type wchar_t
[diff.wchar.t]
C.9.3.3
Header
[diff.header.iso646.h]
C.9.3.4
Macro NULL
[diff.null]
C.9.4
Modifications to declarations
[diff.mods.to.declarations]
C.9.5
Modifications to behavior
[diff.mods.to.behavior]
C.9.5.1
General
[diff.mods.to.behavior.general]
C.9.5.2
Macro offsetof(type, member-designator)
[diff.offsetof]
C.9.5.3
Memory allocation functions
[diff.malloc]
Annex D
Compatibility features
[depr]
D.1
General
[depr.general]
D.2
Non-local use of TU-local entities
[depr.local]
D.3
Implicit capture of *this by reference
[depr.capture.this]
D.4
Deprecated volatile types
[depr.volatile.type]
D.5
Non-comma-separated ellipsis parameters
[depr.ellipsis.comma]
D.6
Implicit declaration of copy functions
[depr.impldec]
D.7
Redeclaration of static constexpr data members
[depr.static.constexpr]
D.8
Literal operator function declarations using an identifier
[depr.lit]
D.9
template keyword before qualified names
[depr.template.template]
D.10
has_denorm members in numeric_limits
[depr.numeric.limits.has.denorm]
D.11
Deprecated C macros
[depr.c.macros]
D.12
Deprecated error numbers
[depr.cerrno]
D.13
Deprecated type traits
[depr.meta.types]
D.14
Relational operators
[depr.relops]
D.15
Tuple
[depr.tuple]
D.16
Variant
[depr.variant]
D.17
Deprecated vector swap
[depr.vector.bool.swap]
D.18
Deprecated iterator class template
[depr.iterator]
D.19
Deprecated move_iterator access
[depr.move.iter.elem]
D.20
Deprecated locale category facets
[depr.locale.category]
D.21
Deprecated formatting
[depr.format]
D.21.1
Header synopsis
[depr.format.syn]
D.21.2
Formatting arguments
[depr.format.arg]
D.22
Deprecated time formatting
[depr.ctime]
D.23
Deprecated file systems
[depr.filesystems]
D.23.1
Deprecated filesystem path factory functions
[depr.fs.path.factory]
D.23.2
Deprecated filesystem path format observers
[depr.fs.path.obs]
D.24
Deprecated atomic operations
[depr.atomics]
D.24.1
General
[depr.atomics.general]
D.24.2
Volatile access
[depr.atomics.volatile]
D.24.3
Non-member functions
[depr.atomics.nonmembers]
D.24.4
Operations on atomic types
[depr.atomics.types.operations]
D.24.5
memory_order::consume
[depr.atomics.order]
D.25
Deprecated signed char and unsigned char extraction
[depr.istream.extractors]
D.26
Deprecated signed char and unsigned char insertion
[depr.ostream.inserters]
Annex E
Conformance with UAX #31
[uaxid]
E.1
General
[uaxid.general]
E.2
R1 Default identifiers
[uaxid.def]
E.2.1
General
[uaxid.def.general]
E.2.2
R1b Stable identifiers
[uaxid.def.stable]
E.3
R2 Immutable identifiers
[uaxid.immutable]
E.4
R3 Pattern_White_Space and Pattern_Syntax characters
[uaxid.pattern]
E.5
R4 Equivalent normalized identifiers
[uaxid.eqn]
E.6
R5 Equivalent case-insensitive identifiers
[uaxid.eqci]
E.7
R6 Filtered normalized identifiers
[uaxid.filter]
E.8
R7 Filtered case-insensitive identifiers
[uaxid.filterci]
E.9
R8 Hashtag identifiers
[uaxid.hashtag]
Annex F
Core undefined behavior
[ub]
F.1
General
[ub.general]
F.2
Clause [basic]: Basics
[ub.basic]
F.2.1
Specified in: [intro.object]
[ub:intro.object.implicit.create]
F.2.2
Specified in: [intro.object]
[ub:intro.object.implicit.pointer]
F.2.3
Specified in: [basic.align]
[ub:basic.align.object.alignment]
F.2.4
Specified in: [basic.life]
[ub:lifetime.outside.pointer.delete]
F.2.5
Specified in: [basic.life]
[ub:lifetime.outside.pointer.member]
F.2.6
Specified in: [basic.life]
[ub:lifetime.outside.pointer.virtual]
F.2.7
Specified in: [basic.life]
[ub:lifetime.outside.pointer.dynamic.cast]
F.2.8
Specified in: [basic.life]
[ub:lifetime.outside.glvalue.access]
F.2.9
Specified in: [basic.life]
[ub:lifetime.outside.glvalue.member]
F.2.10
Specified in: [basic.life]
[ub:lifetime.outside.glvalue.virtual]
F.2.11
Specified in: [basic.life]
[ub:lifetime.outside.glvalue.dynamic.cast]
F.2.12
Specified in: [basic.life]
[ub:original.type.implicit.destructor]
F.2.13
Specified in: [basic.life]
[ub:creating.within.const.complete.obj]
F.2.14
Specified in: [basic.indet]
[ub:basic.indet.value]
F.2.15
Specified in: [basic.stc.dynamic.general]
[ub:basic.stc.alloc.dealloc.constraint]
F.2.16
Specified in: [basic.stc.dynamic.allocation]
[ub:basic.stc.alloc.zero.dereference]
F.2.17
Specified in: [basic.compound]
[ub:basic.compound.invalid.pointer]
F.2.18
Specified in: [intro.execution]
[ub:intro.execution.unsequenced.modification]
F.2.19
Specified in: [intro.races]
[ub:intro.races.data]
F.2.20
Specified in: [intro.progress]
[ub:intro.progress.stops]
F.2.21
Specified in: [basic.start.main]
[ub:basic.start.main.exit.during.destruction]
F.2.22
Specified in: [basic.start.term]
[ub:basic.start.term.use.after.destruction]
F.3
Clause [expr]: Expressions
[ub.expr]
F.3.1
Specified in: [expr.pre]
[ub:expr.expr.eval]
F.3.2
Specified in: [basic.lval]
[ub:expr.basic.lvalue.strict.aliasing.violation]
F.3.3
Specified in: [basic.lval]
[ub:expr.basic.lvalue.union.initialization]
F.3.4
Specified in: [expr.type]
[ub:expr.type.reference.lifetime]
F.3.5
Specified in: [conv.lval]
[ub:conv.lval.valid.representation]
F.3.6
Specified in: [conv.double]
[ub:conv.double.out.of.range]
F.3.7
Specified in: [conv.fpint]
[ub:conv.fpint.float.not.represented]
F.3.8
Specified in: [conv.fpint]
[ub:conv.fpint.int.not.represented]
F.3.9
Specified in: [conv.ptr]
[ub:conv.ptr.virtual.base]
F.3.10
Specified in: [conv.mem]
[ub:conv.member.missing.member]
F.3.11
Specified in: [expr.call]
[ub:expr.call.different.type]
F.3.12
Specified in: [expr.ref]
[ub:expr.ref.member.not.similar]
F.3.13
Specified in: [expr.dynamic.cast]
[ub:expr.dynamic.cast.pointer.lifetime]
F.3.14
Specified in: [expr.dynamic.cast]
[ub:expr.dynamic.cast.glvalue.lifetime]
F.3.15
Specified in: [expr.static.cast]
[ub:expr.static.cast.base.class]
F.3.16
Specified in: [expr.static.cast]
[ub:expr.static.cast.enum.outside.range]
F.3.17
Specified in: [expr.static.cast]
[ub:expr.static.cast.fp.outside.range]
F.3.18
Specified in: [expr.static.cast]
[ub:expr.static.cast.downcast.wrong.derived.type]
F.3.19
Specified in: [expr.static.cast]
[ub:expr.static.cast.does.not.contain.original.member]
F.3.20
Specified in: [expr.unary.op]
[ub:expr.unary.dereference]
F.3.21
Specified in: [expr.new]
[ub:expr.new.non.allocating.null]
F.3.22
Specified in: [expr.delete]
[ub:expr.delete.mismatch]
F.3.23
Specified in: [expr.delete]
[ub:expr.delete.array.mismatch]
F.3.24
Specified in: [expr.delete]
[ub:expr.delete.dynamic.type.differ]
F.3.25
Specified in: [expr.delete]
[ub:expr.delete.dynamic.array.dynamic.type.differ]
F.3.26
Specified in: [expr.mptr.oper]
[ub:expr.mptr.oper.not.contain.member]
F.3.27
Specified in: [expr.mptr.oper]
[ub:expr.mptr.oper.member.func.null]
F.3.28
Specified in: [expr.mul]
[ub:expr.mul.div.by.zero]
F.3.29
Specified in: [expr.mul]
[ub:expr.mul.representable.type.result]
F.3.30
Specified in: [expr.add]
[ub:expr.add.out.of.bounds]
F.3.31
Specified in: [expr.add]
[ub:expr.add.sub.diff.pointers]
F.3.32
Specified in: [expr.add]
[ub:expr.add.not.similar]
F.3.33
Specified in: [expr.shift]
[ub:expr.shift.neg.and.width]
F.3.34
Specified in: [expr.assign]
[ub:expr.assign.overlap]
F.4
Clause [stmt]: Statements
[ub.stmt]
F.4.1
Specified in: [stmt.return]
[ub:stmt.return.flow.off]
F.4.2
Specified in: [stmt.return.coroutine]
[ub:stmt.return.coroutine.flow.off]
F.4.3
Specified in: [stmt.dcl]
[ub:stmt.dcl.local.static.init.recursive]
F.5
Clause [dcl]: Declarations
[ub.dcl]
F.5.1
Specified in: [dcl.type.cv]
[ub:dcl.type.cv.modify.const.obj]
F.5.2
Specified in: [dcl.type.cv]
[ub:dcl.type.cv.access.volatile]
F.5.3
Specified in: [dcl.ref]
[ub:dcl.ref.incompatible.function]
F.5.4
Specified in: [dcl.ref]
[ub:dcl.ref.incompatible.type]
F.5.5
Specified in: [dcl.ref]
[ub:dcl.ref.uninitialized.reference]
F.5.6
Specified in: [dcl.fct.def.coroutine]
[ub:dcl.fct.def.coroutine.resume.not.suspended]
F.5.7
Specified in: [dcl.fct.def.coroutine]
[ub:dcl.fct.def.coroutine.destroy.not.suspended]
F.5.8
Specified in: [dcl.attr.assume]
[ub:dcl.attr.assume.false]
F.5.9
Specified in: [dcl.attr.noreturn]
[ub:dcl.attr.noreturn.eventually.returns]
F.6
Clause [class]: Classes
[ub.class]
F.6.1
Specified in: [class.dtor]
[ub:class.dtor.no.longer.exists]
F.6.2
Specified in: [class.abstract]
[ub:class.abstract.pure.virtual]
F.6.3
Specified in: [class.base.init]
[ub:class.base.init.mem.fun]
F.6.4
Specified in: [class.cdtor]
[ub:class.cdtor.before.ctor]
F.6.5
Specified in: [class.cdtor]
[ub:class.cdtor.after.dtor]
F.6.6
Specified in: [class.cdtor]
[ub:class.cdtor.convert.pointer]
F.6.7
Specified in: [class.cdtor]
[ub:class.cdtor.form.pointer]
F.6.8
Specified in: [class.cdtor]
[ub:class.cdtor.virtual.not.x]
F.6.9
Specified in: [class.cdtor]
[ub:class.cdtor.typeid]
F.6.10
Specified in: [class.cdtor]
[ub:class.cdtor.dynamic.cast]
F.7
Clause [temp]: Templates
[ub.temp]
F.7.1
Specified in: [temp.inst]
[ub:temp.inst.inf.recursion]
F.8
Clause [except]: Exception handling
[ub.except]
F.8.1
Specified in: [except.handle]
[ub:except.handle.handler.ctor.dtor]
Annex G
Ill-formed, no diagnostic required
[ifndr]
G.1
General
[ifndr.general]
G.2
Clause [lex]: Lexical conventions
[ifndr.lex]
G.2.1
Specified in: [lex.name]
[ifndr:lex.name.reserved]
G.3
Clause [basic]: Basics
[ifndr.basic]
G.3.1
Specified in: [basic.link]
[ifndr:basic.link.consistent.types]
G.3.2
Specified in: [basic.def.odr]
[ifndr:basic.def.odr.minimum.one.def]
G.3.3
Specified in: [basic.def.odr]
[ifndr:basic.def.odr.injected.match]
G.3.4
Specified in: [basic.def.odr]
[ifndr:basic.def.odr.maximum.one.def]
G.3.5
Specified in: [basic.def.odr]
[ifndr:basic.def.odr.definition.matches]
G.3.6
Specified in: [basic.def.odr]
[ifndr:basic.def.odr.unnamed.enum.same.type]
G.3.7
Specified in: [basic.contract.general]
[ifndr:basic.contract.vastart.contract.predicate]
G.3.8
Specified in: [basic.contract.handler]
[ifndr:basic.contract.handler.replacing.nonreplaceable]
G.3.9
Specified in: [class.member.lookup]
[ifndr:class.member.lookup.name.refers.diff.decl]
G.4
Clause [expr]: Expressions
[ifndr.expr]
G.4.1
Specified in: [expr.prim.req.general]
[ifndr:expr.prim.req.always.sub.fail]
G.5
Clause [stmt]: Statements
[ifndr.stmt]
G.5.1
Specified in: [stmt.ambig]
[ifndr:stmt.ambig.bound.diff.parse]
G.6
Clause [dcl]: Declarations
[ifndr.dcl]
G.6.1
Specified in: [dcl.constinit]
[ifndr:dcl.constinit.specifier.not.reachable]
G.6.2
Specified in: [dcl.inline]
[ifndr:dcl.inline.missing.on.definition]
G.6.3
Specified in: [dcl.fct.default]
[ifndr:dcl.fct.default.inline.same.defaults]
G.6.4
Specified in: [dcl.contract.func]
[ifndr:dcl.contract.func.mismatched.contract.specifiers]
G.6.5
Specified in: [dcl.fct.def.replace]
[ifndr:dcl.fct.def.replace.bad.replacement]
G.6.6
Specified in: [dcl.link]
[ifndr:dcl.link.mismatched.language.linkage]
G.6.7
Specified in: [dcl.align]
[ifndr:dcl.align.diff.translation.units]
G.6.8
Specified in: [dcl.attr.indet]
[ifndr:dcl.attr.indet.mismatched.declarations]
G.6.9
Specified in: [dcl.attr.noreturn]
[ifndr:dcl.attr.noreturn.trans.unit.mismatch]
G.7
Clause [module]: Modules
[ifndr.module]
G.7.1
Specified in: [module.unit]
[ifndr:module.unit.reserved.identifiers]
G.7.2
Specified in: [module.unit]
[ifndr:module.unit.named.module.no.partition]
G.7.3
Specified in: [module.unit]
[ifndr:module.unit.unexported.module.partition]
G.7.4
Specified in: [module.private.frag]
[ifndr:module.private.frag.other.module.units]
G.8
Clause [class]: Classes
[ifndr.class]
G.8.1
Specified in: [class.base.init]
[ifndr:class.base.init.delegate.itself]
G.8.2
Specified in: [class.virtual]
[ifndr:class.virtual.pure.or.defined]
G.9
Clause [over]: Overloading
[ifndr.over]
G.9.1
Specified in: [over.literal]
[ifndr:over.literal.reserved]
G.10
Clause [temp]: Templates
[ifndr.temp]
G.10.1
Specified in: [temp.pre]
[ifndr:temp.pre.reach.def]
G.10.2
Specified in: [temp.arg.template]
[ifndr:temp.arg.template.sat.constraints]
G.10.3
Specified in: [temp.constr.atomic]
[ifndr:temp.constr.atomic.equiv.but.not.equiv]
G.10.4
Specified in: [temp.constr.atomic]
[ifndr:temp.constr.atomic.sat.result.diff]
G.10.5
Specified in: [temp.constr.normal]
[ifndr:temp.constr.normal.invalid]
G.10.6
Specified in: [temp.spec.partial.general]
[ifndr:temp.spec.partial.general.partial.reachable]
G.10.7
Specified in: [temp.over.link]
[ifndr:temp.over.link.equiv.not.equiv]
G.10.8
Specified in: [temp.res.general]
[ifndr:temp.res.general.default.but.not.found]
G.10.9
Specified in: [temp.point]
[ifndr:temp.point.diff.pt.diff.meaning]
G.10.10
Specified in: [temp.dep.candidate]
[ifndr:temp.dep.candidate.different.lookup.different]
G.10.11
Specified in: [temp.explicit]
[ifndr:temp.explicit.decl.implicit.inst]
G.10.12
Specified in: [temp.expl.spec]
[ifndr:temp.expl.spec.unreachable.declaration]
G.10.13
Specified in: [temp.expl.spec]
[ifndr:temp.expl.spec.missing.definition]
G.10.14
Specified in: [temp.deduct.general]
[ifndr:temp.deduct.general.diff.order]
G.11
Clause [cpp]: Preprocessing directives
[ifndr.cpp]
G.11.1
Specified in: [cpp.cond]
[ifndr:cpp.cond.defined.after.macro]
G.11.2
Specified in: [cpp.cond]
[ifndr:cpp.cond.defined.malformed]
G.11.3
Specified in: [cpp.include]
[ifndr:cpp.include.malformed.headername]
Bibliography
Bibliography
Bibliography