Files
cppdraft_translate/cppdraft/cppdraft.md
2025-10-25 03:02:53 +03:00

6923 lines
255 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Draft C++ Standard: Contents
# Working Draft Programming Languages — C++
(Generated on 2025-10-06 from the [LaTeX sources](http://github.com/Eelis/draft/commit/9adde4bc1c62ec234483e63ea3b70a59724c745a) by [cxxdraft-htmlgen](https://github.com/Eelis/cxxdraft-htmlgen). This is *not* an ISO publication.
For historical versions of the document, see Tim Song's [cppwp](https://github.com/timsong-cpp/cppwp) page.)
**Note: this is an early draft. It's known to be incomplet and incorrekt, and it has lots of bad formatting.**
# Contents
## 1 Scope [[intro.scope]](intro.scope)[[intro.scope]](intro.scope)
## 2 Normative references [[intro.refs]](intro.refs)[[intro.refs]](intro.refs)
## 3 Terms and definitions [[intro.defs]](intro.defs)[[intro.defs]](intro.defs)
## 4 General principles [[intro]](#intro)[[intro]](intro)
### 4.1 Implementation compliance [[intro.compliance]](intro.compliance)
#### 4.1.1 General [[intro.compliance.general]](intro.compliance.general)
#### 4.1.2 Abstract machine [[intro.abstract]](intro.abstract)
### 4.2 Structure of this document [[intro.structure]](intro.structure)
### 4.3 Syntax notation [[syntax]](syntax)
## 5 Lexical conventions [[lex]](#lex)[[lex]](lex)
### 5.1 Separate translation [[lex.separate]](lex.separate)
### 5.2 Phases of translation [[lex.phases]](lex.phases)
### 5.3 Characters [[lex.char]](lex.char)
#### 5.3.1 Character sets [[lex.charset]](lex.charset)
#### 5.3.2 Universal character names [[lex.universal.char]](lex.universal.char)
### 5.4 Comments [[lex.comment]](lex.comment)
### 5.5 Preprocessing tokens [[lex.pptoken]](lex.pptoken)
### 5.6 Header names [[lex.header]](lex.header)
### 5.7 Preprocessing numbers [[lex.ppnumber]](lex.ppnumber)
### 5.8 Operators and punctuators [[lex.operators]](lex.operators)
### 5.9 Alternative tokens [[lex.digraph]](lex.digraph)
### 5.10 Tokens [[lex.token]](lex.token)
### 5.11 Identifiers [[lex.name]](lex.name)
### 5.12 Keywords [[lex.key]](lex.key)
### 5.13 Literals [[lex.literal]](lex.literal)
#### 5.13.1 Kinds of literals [[lex.literal.kinds]](lex.literal.kinds)
#### 5.13.2 Integer literals [[lex.icon]](lex.icon)
#### 5.13.3 Character literals [[lex.ccon]](lex.ccon)
#### 5.13.4 Floating-point literals [[lex.fcon]](lex.fcon)
#### 5.13.5 String literals [[lex.string]](lex.string)
#### 5.13.6 Unevaluated strings [[lex.string.uneval]](lex.string.uneval)
#### 5.13.7 Boolean literals [[lex.bool]](lex.bool)
#### 5.13.8 Pointer literals [[lex.nullptr]](lex.nullptr)
#### 5.13.9 User-defined literals [[lex.ext]](lex.ext)
## 6 Basics [[basic]](#basic)[[basic]](basic)
### 6.1 Preamble [[basic.pre]](basic.pre)
### 6.2 Declarations and definitions [[basic.def]](basic.def)
### 6.3 One-definition rule [[basic.def.odr]](basic.def.odr)
### 6.4 Scope [[basic.scope]](basic.scope)
#### 6.4.1 General [[basic.scope.scope]](basic.scope.scope)
#### 6.4.2 Point of declaration [[basic.scope.pdecl]](basic.scope.pdecl)
#### 6.4.3 Block scope [[basic.scope.block]](basic.scope.block)
#### 6.4.4 Function parameter scope [[basic.scope.param]](basic.scope.param)
#### 6.4.5 Lambda scope [[basic.scope.lambda]](basic.scope.lambda)
#### 6.4.6 Namespace scope [[basic.scope.namespace]](basic.scope.namespace)
#### 6.4.7 Class scope [[basic.scope.class]](basic.scope.class)
#### 6.4.8 Enumeration scope [[basic.scope.enum]](basic.scope.enum)
#### 6.4.9 Template parameter scope [[basic.scope.temp]](basic.scope.temp)
#### 6.4.10 Contract-assertion scope [[basic.scope.contract]](basic.scope.contract)
### 6.5 Name lookup [[basic.lookup]](basic.lookup)
#### 6.5.1 General [[basic.lookup.general]](basic.lookup.general)
#### 6.5.2 Member name lookup [[class.member.lookup]](class.member.lookup)
#### 6.5.3 Unqualified name lookup [[basic.lookup.unqual]](basic.lookup.unqual)
#### 6.5.4 Argument-dependent name lookup [[basic.lookup.argdep]](basic.lookup.argdep)
#### 6.5.5 Qualified name lookup [[basic.lookup.qual]](basic.lookup.qual)
#### 6.5.5.1 General [[basic.lookup.qual.general]](basic.lookup.qual.general)
#### 6.5.5.2 Class members [[class.qual]](class.qual)
#### 6.5.5.3 Namespace members [[namespace.qual]](namespace.qual)
#### 6.5.6 Elaborated type specifiers [[basic.lookup.elab]](basic.lookup.elab)
#### 6.5.7 Using-directives and namespace aliases [[basic.lookup.udir]](basic.lookup.udir)
### 6.6 Splice specifiers [[basic.splice]](basic.splice)
### 6.7 Program and linkage [[basic.link]](basic.link)
### 6.8 Memory and objects [[basic.memobj]](basic.memobj)
#### 6.8.1 Memory model [[intro.memory]](intro.memory)
#### 6.8.2 Object model [[intro.object]](intro.object)
#### 6.8.3 Alignment [[basic.align]](basic.align)
#### 6.8.4 Lifetime [[basic.life]](basic.life)
#### 6.8.5 Indeterminate and erroneous values [[basic.indet]](basic.indet)
#### 6.8.6 Storage duration [[basic.stc]](basic.stc)
#### 6.8.6.1 General [[basic.stc.general]](basic.stc.general)
#### 6.8.6.2 Static storage duration [[basic.stc.static]](basic.stc.static)
#### 6.8.6.3 Thread storage duration [[basic.stc.thread]](basic.stc.thread)
#### 6.8.6.4 Automatic storage duration [[basic.stc.auto]](basic.stc.auto)
#### 6.8.6.5 Dynamic storage duration [[basic.stc.dynamic]](basic.stc.dynamic)
#### 6.8.6.5.1 General [[basic.stc.dynamic.general]](basic.stc.dynamic.general)
#### 6.8.6.5.2 Allocation functions [[basic.stc.dynamic.allocation]](basic.stc.dynamic.allocation)
#### 6.8.6.5.3 Deallocation functions [[basic.stc.dynamic.deallocation]](basic.stc.dynamic.deallocation)
#### 6.8.7 Temporary objects [[class.temporary]](class.temporary)
### 6.9 Types [[basic.types]](basic.types)
#### 6.9.1 General [[basic.types.general]](basic.types.general)
#### 6.9.2 Fundamental types [[basic.fundamental]](basic.fundamental)
#### 6.9.3 Optional extended floating-point types [[basic.extended.fp]](basic.extended.fp)
#### 6.9.4 Compound types [[basic.compound]](basic.compound)
#### 6.9.5 CV-qualifiers [[basic.type.qualifier]](basic.type.qualifier)
#### 6.9.6 Conversion ranks [[conv.rank]](conv.rank)
### 6.10 Program execution [[basic.exec]](basic.exec)
#### 6.10.1 Sequential execution [[intro.execution]](intro.execution)
#### 6.10.2 Multi-threaded executions and data races [[intro.multithread]](intro.multithread)
#### 6.10.2.1 General [[intro.multithread.general]](intro.multithread.general)
#### 6.10.2.2 Data races [[intro.races]](intro.races)
#### 6.10.2.3 Forward progress [[intro.progress]](intro.progress)
#### 6.10.3 Start and termination [[basic.start]](basic.start)
#### 6.10.3.1 main function [[basic.start.main]](basic.start.main)
#### 6.10.3.2 Static initialization [[basic.start.static]](basic.start.static)
#### 6.10.3.3 Dynamic initialization of non-block variables [[basic.start.dynamic]](basic.start.dynamic)
#### 6.10.3.4 Termination [[basic.start.term]](basic.start.term)
### 6.11 Contract assertions [[basic.contract]](basic.contract)
#### 6.11.1 General [[basic.contract.general]](basic.contract.general)
#### 6.11.2 Evaluation [[basic.contract.eval]](basic.contract.eval)
#### 6.11.3 Contract-violation handler [[basic.contract.handler]](basic.contract.handler)
## 7 Expressions [[expr]](#expr)[[expr]](expr)
### 7.1 Preamble [[expr.pre]](expr.pre)
### 7.2 Properties of expressions [[expr.prop]](expr.prop)
#### 7.2.1 Value category [[basic.lval]](basic.lval)
#### 7.2.2 Type [[expr.type]](expr.type)
#### 7.2.3 Context dependence [[expr.context]](expr.context)
### 7.3 Standard conversions [[conv]](conv)
#### 7.3.1 General [[conv.general]](conv.general)
#### 7.3.2 Lvalue-to-rvalue conversion [[conv.lval]](conv.lval)
#### 7.3.3 Array-to-pointer conversion [[conv.array]](conv.array)
#### 7.3.4 Function-to-pointer conversion [[conv.func]](conv.func)
#### 7.3.5 Temporary materialization conversion [[conv.rval]](conv.rval)
#### 7.3.6 Qualification conversions [[conv.qual]](conv.qual)
#### 7.3.7 Integral promotions [[conv.prom]](conv.prom)
#### 7.3.8 Floating-point promotion [[conv.fpprom]](conv.fpprom)
#### 7.3.9 Integral conversions [[conv.integral]](conv.integral)
#### 7.3.10 Floating-point conversions [[conv.double]](conv.double)
#### 7.3.11 Floating-integral conversions [[conv.fpint]](conv.fpint)
#### 7.3.12 Pointer conversions [[conv.ptr]](conv.ptr)
#### 7.3.13 Pointer-to-member conversions [[conv.mem]](conv.mem)
#### 7.3.14 Function pointer conversions [[conv.fctptr]](conv.fctptr)
#### 7.3.15 Boolean conversions [[conv.bool]](conv.bool)
### 7.4 Usual arithmetic conversions [[expr.arith.conv]](expr.arith.conv)
### 7.5 Primary expressions [[expr.prim]](expr.prim)
#### 7.5.1 Grammar [[expr.prim.grammar]](expr.prim.grammar)
#### 7.5.2 Literals [[expr.prim.literal]](expr.prim.literal)
#### 7.5.3 This [[expr.prim.this]](expr.prim.this)
#### 7.5.4 Parentheses [[expr.prim.paren]](expr.prim.paren)
#### 7.5.5 Names [[expr.prim.id]](expr.prim.id)
#### 7.5.5.1 General [[expr.prim.id.general]](expr.prim.id.general)
#### 7.5.5.2 Unqualified names [[expr.prim.id.unqual]](expr.prim.id.unqual)
#### 7.5.5.3 Qualified names [[expr.prim.id.qual]](expr.prim.id.qual)
#### 7.5.5.4 Pack indexing expression [[expr.prim.pack.index]](expr.prim.pack.index)
#### 7.5.5.5 Destruction [[expr.prim.id.dtor]](expr.prim.id.dtor)
#### 7.5.6 Lambda expressions [[expr.prim.lambda]](expr.prim.lambda)
#### 7.5.6.1 General [[expr.prim.lambda.general]](expr.prim.lambda.general)
#### 7.5.6.2 Closure types [[expr.prim.lambda.closure]](expr.prim.lambda.closure)
#### 7.5.6.3 Captures [[expr.prim.lambda.capture]](expr.prim.lambda.capture)
#### 7.5.7 Fold expressions [[expr.prim.fold]](expr.prim.fold)
#### 7.5.8 Requires expressions [[expr.prim.req]](expr.prim.req)
#### 7.5.8.1 General [[expr.prim.req.general]](expr.prim.req.general)
#### 7.5.8.2 Simple requirements [[expr.prim.req.simple]](expr.prim.req.simple)
#### 7.5.8.3 Type requirements [[expr.prim.req.type]](expr.prim.req.type)
#### 7.5.8.4 Compound requirements [[expr.prim.req.compound]](expr.prim.req.compound)
#### 7.5.8.5 Nested requirements [[expr.prim.req.nested]](expr.prim.req.nested)
#### 7.5.9 Expression splicing [[expr.prim.splice]](expr.prim.splice)
### 7.6 Compound expressions [[expr.compound]](expr.compound)
#### 7.6.1 Postfix expressions [[expr.post]](expr.post)
#### 7.6.1.1 General [[expr.post.general]](expr.post.general)
#### 7.6.1.2 Subscripting [[expr.sub]](expr.sub)
#### 7.6.1.3 Function call [[expr.call]](expr.call)
#### 7.6.1.4 Explicit type conversion (functional notation) [[expr.type.conv]](expr.type.conv)
#### 7.6.1.5 Class member access [[expr.ref]](expr.ref)
#### 7.6.1.6 Increment and decrement [[expr.post.incr]](expr.post.incr)
#### 7.6.1.7 Dynamic cast [[expr.dynamic.cast]](expr.dynamic.cast)
#### 7.6.1.8 Type identification [[expr.typeid]](expr.typeid)
#### 7.6.1.9 Static cast [[expr.static.cast]](expr.static.cast)
#### 7.6.1.10 Reinterpret cast [[expr.reinterpret.cast]](expr.reinterpret.cast)
#### 7.6.1.11 Const cast [[expr.const.cast]](expr.const.cast)
#### 7.6.2 Unary expressions [[expr.unary]](expr.unary)
#### 7.6.2.1 General [[expr.unary.general]](expr.unary.general)
#### 7.6.2.2 Unary operators [[expr.unary.op]](expr.unary.op)
#### 7.6.2.3 Increment and decrement [[expr.pre.incr]](expr.pre.incr)
#### 7.6.2.4 Await [[expr.await]](expr.await)
#### 7.6.2.5 Sizeof [[expr.sizeof]](expr.sizeof)
#### 7.6.2.6 Alignof [[expr.alignof]](expr.alignof)
#### 7.6.2.7 noexcept operator [[expr.unary.noexcept]](expr.unary.noexcept)
#### 7.6.2.8 New [[expr.new]](expr.new)
#### 7.6.2.9 Delete [[expr.delete]](expr.delete)
#### 7.6.2.10 The reflection operator [[expr.reflect]](expr.reflect)
#### 7.6.3 Explicit type conversion (cast notation) [[expr.cast]](expr.cast)
#### 7.6.4 Pointer-to-member operators [[expr.mptr.oper]](expr.mptr.oper)
#### 7.6.5 Multiplicative operators [[expr.mul]](expr.mul)
#### 7.6.6 Additive operators [[expr.add]](expr.add)
#### 7.6.7 Shift operators [[expr.shift]](expr.shift)
#### 7.6.8 Three-way comparison operator [[expr.spaceship]](expr.spaceship)
#### 7.6.9 Relational operators [[expr.rel]](expr.rel)
#### 7.6.10 Equality operators [[expr.eq]](expr.eq)
#### 7.6.11 Bitwise AND operator [[expr.bit.and]](expr.bit.and)
#### 7.6.12 Bitwise exclusive OR operator [[expr.xor]](expr.xor)
#### 7.6.13 Bitwise inclusive OR operator [[expr.or]](expr.or)
#### 7.6.14 Logical AND operator [[expr.log.and]](expr.log.and)
#### 7.6.15 Logical OR operator [[expr.log.or]](expr.log.or)
#### 7.6.16 Conditional operator [[expr.cond]](expr.cond)
#### 7.6.17 Yielding a value [[expr.yield]](expr.yield)
#### 7.6.18 Throwing an exception [[expr.throw]](expr.throw)
#### 7.6.19 Assignment and compound assignment operators [[expr.assign]](expr.assign)
#### 7.6.20 Comma operator [[expr.comma]](expr.comma)
### 7.7 Constant expressions [[expr.const]](expr.const)
## 8 Statements [[stmt]](#stmt)[[stmt]](stmt)
### 8.1 Preamble [[stmt.pre]](stmt.pre)
### 8.2 Label [[stmt.label]](stmt.label)
### 8.3 Expression statement [[stmt.expr]](stmt.expr)
### 8.4 Compound statement or block [[stmt.block]](stmt.block)
### 8.5 Selection statements [[stmt.select]](stmt.select)
#### 8.5.1 General [[stmt.select.general]](stmt.select.general)
#### 8.5.2 The if statement [[stmt.if]](stmt.if)
#### 8.5.3 The switch statement [[stmt.switch]](stmt.switch)
### 8.6 Iteration statements [[stmt.iter]](stmt.iter)
#### 8.6.1 General [[stmt.iter.general]](stmt.iter.general)
#### 8.6.2 The while statement [[stmt.while]](stmt.while)
#### 8.6.3 The do statement [[stmt.do]](stmt.do)
#### 8.6.4 The for statement [[stmt.for]](stmt.for)
#### 8.6.5 The range-based for statement [[stmt.ranged]](stmt.ranged)
### 8.7 Expansion statements [[stmt.expand]](stmt.expand)
### 8.8 Jump statements [[stmt.jump]](stmt.jump)
#### 8.8.1 General [[stmt.jump.general]](stmt.jump.general)
#### 8.8.2 The break statement [[stmt.break]](stmt.break)
#### 8.8.3 The continue statement [[stmt.cont]](stmt.cont)
#### 8.8.4 The return statement [[stmt.return]](stmt.return)
#### 8.8.5 The co_return statement [[stmt.return.coroutine]](stmt.return.coroutine)
#### 8.8.6 The goto statement [[stmt.goto]](stmt.goto)
### 8.9 Assertion statement [[stmt.contract.assert]](stmt.contract.assert)
### 8.10 Declaration statement [[stmt.dcl]](stmt.dcl)
### 8.11 Ambiguity resolution [[stmt.ambig]](stmt.ambig)
## 9 Declarations [[dcl]](#dcl)[[dcl]](dcl)
### 9.1 Preamble [[dcl.pre]](dcl.pre)
### 9.2 Specifiers [[dcl.spec]](dcl.spec)
#### 9.2.1 General [[dcl.spec.general]](dcl.spec.general)
#### 9.2.2 Storage class specifiers [[dcl.stc]](dcl.stc)
#### 9.2.3 Function specifiers [[dcl.fct.spec]](dcl.fct.spec)
#### 9.2.4 The typedef specifier [[dcl.typedef]](dcl.typedef)
#### 9.2.5 The friend specifier [[dcl.friend]](dcl.friend)
#### 9.2.6 The constexpr and consteval specifiers [[dcl.constexpr]](dcl.constexpr)
#### 9.2.7 The constinit specifier [[dcl.constinit]](dcl.constinit)
#### 9.2.8 The inline specifier [[dcl.inline]](dcl.inline)
#### 9.2.9 Type specifiers [[dcl.type]](dcl.type)
#### 9.2.9.1 General [[dcl.type.general]](dcl.type.general)
#### 9.2.9.2 The *cv-qualifier**s* [[dcl.type.cv]](dcl.type.cv)
#### 9.2.9.3 Simple type specifiers [[dcl.type.simple]](dcl.type.simple)
#### 9.2.9.4 Pack indexing specifier [[dcl.type.pack.index]](dcl.type.pack.index)
#### 9.2.9.5 Elaborated type specifiers [[dcl.type.elab]](dcl.type.elab)
#### 9.2.9.6 Decltype specifiers [[dcl.type.decltype]](dcl.type.decltype)
#### 9.2.9.7 Placeholder type specifiers [[dcl.spec.auto]](dcl.spec.auto)
#### 9.2.9.7.1 General [[dcl.spec.auto.general]](dcl.spec.auto.general)
#### 9.2.9.7.2 Placeholder type deduction [[dcl.type.auto.deduct]](dcl.type.auto.deduct)
#### 9.2.9.8 Deduced class template specialization types [[dcl.type.class.deduct]](dcl.type.class.deduct)
#### 9.2.9.9 Type splicing [[dcl.type.splice]](dcl.type.splice)
### 9.3 Declarators [[dcl.decl]](dcl.decl)
#### 9.3.1 General [[dcl.decl.general]](dcl.decl.general)
#### 9.3.2 Type names [[dcl.name]](dcl.name)
#### 9.3.3 Ambiguity resolution [[dcl.ambig.res]](dcl.ambig.res)
#### 9.3.4 Meaning of declarators [[dcl.meaning]](dcl.meaning)
#### 9.3.4.1 General [[dcl.meaning.general]](dcl.meaning.general)
#### 9.3.4.2 Pointers [[dcl.ptr]](dcl.ptr)
#### 9.3.4.3 References [[dcl.ref]](dcl.ref)
#### 9.3.4.4 Pointers to members [[dcl.mptr]](dcl.mptr)
#### 9.3.4.5 Arrays [[dcl.array]](dcl.array)
#### 9.3.4.6 Functions [[dcl.fct]](dcl.fct)
#### 9.3.4.7 Default arguments [[dcl.fct.default]](dcl.fct.default)
### 9.4 Function contract specifiers [[dcl.contract]](dcl.contract)
#### 9.4.1 General [[dcl.contract.func]](dcl.contract.func)
#### 9.4.2 Referring to the result object [[dcl.contract.res]](dcl.contract.res)
### 9.5 Initializers [[dcl.init]](dcl.init)
#### 9.5.1 General [[dcl.init.general]](dcl.init.general)
#### 9.5.2 Aggregates [[dcl.init.aggr]](dcl.init.aggr)
#### 9.5.3 Character arrays [[dcl.init.string]](dcl.init.string)
#### 9.5.4 References [[dcl.init.ref]](dcl.init.ref)
#### 9.5.5 List-initialization [[dcl.init.list]](dcl.init.list)
### 9.6 Function definitions [[dcl.fct.def]](dcl.fct.def)
#### 9.6.1 General [[dcl.fct.def.general]](dcl.fct.def.general)
#### 9.6.2 Explicitly-defaulted functions [[dcl.fct.def.default]](dcl.fct.def.default)
#### 9.6.3 Deleted definitions [[dcl.fct.def.delete]](dcl.fct.def.delete)
#### 9.6.4 Coroutine definitions [[dcl.fct.def.coroutine]](dcl.fct.def.coroutine)
#### 9.6.5 Replaceable function definitions [[dcl.fct.def.replace]](dcl.fct.def.replace)
### 9.7 Structured binding declarations [[dcl.struct.bind]](dcl.struct.bind)
### 9.8 Enumerations [[enum]](enum)
#### 9.8.1 Enumeration declarations [[dcl.enum]](dcl.enum)
#### 9.8.2 The using enum declaration [[enum.udecl]](enum.udecl)
### 9.9 Namespaces [[basic.namespace]](basic.namespace)
#### 9.9.1 General [[basic.namespace.general]](basic.namespace.general)
#### 9.9.2 Namespace definition [[namespace.def]](namespace.def)
#### 9.9.2.1 General [[namespace.def.general]](namespace.def.general)
#### 9.9.2.2 Unnamed namespaces [[namespace.unnamed]](namespace.unnamed)
#### 9.9.3 Namespace alias [[namespace.alias]](namespace.alias)
#### 9.9.4 Using namespace directive [[namespace.udir]](namespace.udir)
### 9.10 The using declaration [[namespace.udecl]](namespace.udecl)
### 9.11 The asm declaration [[dcl.asm]](dcl.asm)
### 9.12 Linkage specifications [[dcl.link]](dcl.link)
### 9.13 Attributes [[dcl.attr]](dcl.attr)
#### 9.13.1 Attribute syntax and semantics [[dcl.attr.grammar]](dcl.attr.grammar)
#### 9.13.2 Alignment specifier [[dcl.align]](dcl.align)
#### 9.13.3 Assumption attribute [[dcl.attr.assume]](dcl.attr.assume)
#### 9.13.4 Deprecated attribute [[dcl.attr.deprecated]](dcl.attr.deprecated)
#### 9.13.5 Fallthrough attribute [[dcl.attr.fallthrough]](dcl.attr.fallthrough)
#### 9.13.6 Indeterminate storage [[dcl.attr.indet]](dcl.attr.indet)
#### 9.13.7 Likelihood attributes [[dcl.attr.likelihood]](dcl.attr.likelihood)
#### 9.13.8 Maybe unused attribute [[dcl.attr.unused]](dcl.attr.unused)
#### 9.13.9 Nodiscard attribute [[dcl.attr.nodiscard]](dcl.attr.nodiscard)
#### 9.13.10 Noreturn attribute [[dcl.attr.noreturn]](dcl.attr.noreturn)
#### 9.13.11 No unique address attribute [[dcl.attr.nouniqueaddr]](dcl.attr.nouniqueaddr)
#### 9.13.12 Annotations [[dcl.attr.annotation]](dcl.attr.annotation)
## 10 Modules [[module]](#module)[[module]](module)
### 10.1 Module units and purviews [[module.unit]](module.unit)
### 10.2 Export declaration [[module.interface]](module.interface)
### 10.3 Import declaration [[module.import]](module.import)
### 10.4 Global module fragment [[module.global.frag]](module.global.frag)
### 10.5 Private module fragment [[module.private.frag]](module.private.frag)
### 10.6 Instantiation context [[module.context]](module.context)
### 10.7 Reachability [[module.reach]](module.reach)
## 11 Classes [[class]](#class)[[class]](class)
### 11.1 Preamble [[class.pre]](class.pre)
### 11.2 Properties of classes [[class.prop]](class.prop)
### 11.3 Class names [[class.name]](class.name)
### 11.4 Class members [[class.mem]](class.mem)
#### 11.4.1 General [[class.mem.general]](class.mem.general)
#### 11.4.2 Member functions [[class.mfct]](class.mfct)
#### 11.4.3 Non-static member functions [[class.mfct.non.static]](class.mfct.non.static)
#### 11.4.4 Special member functions [[special]](special)
#### 11.4.5 Constructors [[class.ctor]](class.ctor)
#### 11.4.5.1 General [[class.ctor.general]](class.ctor.general)
#### 11.4.5.2 Default constructors [[class.default.ctor]](class.default.ctor)
#### 11.4.5.3 Copy/move constructors [[class.copy.ctor]](class.copy.ctor)
#### 11.4.6 Copy/move assignment operator [[class.copy.assign]](class.copy.assign)
#### 11.4.7 Destructors [[class.dtor]](class.dtor)
#### 11.4.8 Conversions [[class.conv]](class.conv)
#### 11.4.8.1 General [[class.conv.general]](class.conv.general)
#### 11.4.8.2 Conversion by constructor [[class.conv.ctor]](class.conv.ctor)
#### 11.4.8.3 Conversion functions [[class.conv.fct]](class.conv.fct)
#### 11.4.9 Static members [[class.static]](class.static)
#### 11.4.9.1 General [[class.static.general]](class.static.general)
#### 11.4.9.2 Static member functions [[class.static.mfct]](class.static.mfct)
#### 11.4.9.3 Static data members [[class.static.data]](class.static.data)
#### 11.4.10 Bit-fields [[class.bit]](class.bit)
#### 11.4.11 Allocation and deallocation functions [[class.free]](class.free)
#### 11.4.12 Nested class declarations [[class.nest]](class.nest)
### 11.5 Unions [[class.union]](class.union)
#### 11.5.1 General [[class.union.general]](class.union.general)
#### 11.5.2 Anonymous unions [[class.union.anon]](class.union.anon)
### 11.6 Local class declarations [[class.local]](class.local)
### 11.7 Derived classes [[class.derived]](class.derived)
#### 11.7.1 General [[class.derived.general]](class.derived.general)
#### 11.7.2 Multiple base classes [[class.mi]](class.mi)
#### 11.7.3 Virtual functions [[class.virtual]](class.virtual)
#### 11.7.4 Abstract classes [[class.abstract]](class.abstract)
### 11.8 Member access control [[class.access]](class.access)
#### 11.8.1 General [[class.access.general]](class.access.general)
#### 11.8.2 Access specifiers [[class.access.spec]](class.access.spec)
#### 11.8.3 Accessibility of base classes and base class members [[class.access.base]](class.access.base)
#### 11.8.4 Friends [[class.friend]](class.friend)
#### 11.8.5 Protected member access [[class.protected]](class.protected)
#### 11.8.6 Access to virtual functions [[class.access.virt]](class.access.virt)
#### 11.8.7 Multiple access [[class.paths]](class.paths)
#### 11.8.8 Nested classes [[class.access.nest]](class.access.nest)
### 11.9 Initialization [[class.init]](class.init)
#### 11.9.1 General [[class.init.general]](class.init.general)
#### 11.9.2 Explicit initialization [[class.expl.init]](class.expl.init)
#### 11.9.3 Initializing bases and members [[class.base.init]](class.base.init)
#### 11.9.4 Initialization by inherited constructor [[class.inhctor.init]](class.inhctor.init)
#### 11.9.5 Construction and destruction [[class.cdtor]](class.cdtor)
#### 11.9.6 Copy/move elision [[class.copy.elision]](class.copy.elision)
### 11.10 Comparisons [[class.compare]](class.compare)
#### 11.10.1 Defaulted comparison operator functions [[class.compare.default]](class.compare.default)
#### 11.10.2 Equality operator [[class.eq]](class.eq)
#### 11.10.3 Three-way comparison [[class.spaceship]](class.spaceship)
#### 11.10.4 Secondary comparison operators [[class.compare.secondary]](class.compare.secondary)
## 12 Overloading [[over]](#over)[[over]](over)
### 12.1 Preamble [[over.pre]](over.pre)
### 12.2 Overload resolution [[over.match]](over.match)
#### 12.2.1 General [[over.match.general]](over.match.general)
#### 12.2.2 Candidate functions and argument lists [[over.match.funcs]](over.match.funcs)
#### 12.2.2.1 General [[over.match.funcs.general]](over.match.funcs.general)
#### 12.2.2.2 Function call syntax [[over.match.call]](over.match.call)
#### 12.2.2.2.1 General [[over.match.call.general]](over.match.call.general)
#### 12.2.2.2.2 Call to designated function [[over.call.func]](over.call.func)
#### 12.2.2.2.3 Call to object of class type [[over.call.object]](over.call.object)
#### 12.2.2.3 Operators in expressions [[over.match.oper]](over.match.oper)
#### 12.2.2.4 Initialization by constructor [[over.match.ctor]](over.match.ctor)
#### 12.2.2.5 Copy-initialization of class by user-defined conversion [[over.match.copy]](over.match.copy)
#### 12.2.2.6 Initialization by conversion function [[over.match.conv]](over.match.conv)
#### 12.2.2.7 Initialization by conversion function for direct reference binding [[over.match.ref]](over.match.ref)
#### 12.2.2.8 Initialization by list-initialization [[over.match.list]](over.match.list)
#### 12.2.2.9 Class template argument deduction [[over.match.class.deduct]](over.match.class.deduct)
#### 12.2.3 Viable functions [[over.match.viable]](over.match.viable)
#### 12.2.4 Best viable function [[over.match.best]](over.match.best)
#### 12.2.4.1 General [[over.match.best.general]](over.match.best.general)
#### 12.2.4.2 Implicit conversion sequences [[over.best.ics]](over.best.ics)
#### 12.2.4.2.1 General [[over.best.ics.general]](over.best.ics.general)
#### 12.2.4.2.2 Standard conversion sequences [[over.ics.scs]](over.ics.scs)
#### 12.2.4.2.3 User-defined conversion sequences [[over.ics.user]](over.ics.user)
#### 12.2.4.2.4 Ellipsis conversion sequences [[over.ics.ellipsis]](over.ics.ellipsis)
#### 12.2.4.2.5 Reference binding [[over.ics.ref]](over.ics.ref)
#### 12.2.4.2.6 List-initialization sequence [[over.ics.list]](over.ics.list)
#### 12.2.4.3 Ranking implicit conversion sequences [[over.ics.rank]](over.ics.rank)
### 12.3 Address of an overload set [[over.over]](over.over)
### 12.4 Overloaded operators [[over.oper]](over.oper)
#### 12.4.1 General [[over.oper.general]](over.oper.general)
#### 12.4.2 Unary operators [[over.unary]](over.unary)
#### 12.4.3 Binary operators [[over.binary]](over.binary)
#### 12.4.3.1 General [[over.binary.general]](over.binary.general)
#### 12.4.3.2 Simple assignment [[over.assign]](over.assign)
#### 12.4.4 Function call [[over.call]](over.call)
#### 12.4.5 Subscripting [[over.sub]](over.sub)
#### 12.4.6 Class member access [[over.ref]](over.ref)
#### 12.4.7 Increment and decrement [[over.inc]](over.inc)
### 12.5 Built-in operators [[over.built]](over.built)
### 12.6 User-defined literals [[over.literal]](over.literal)
## 13 Templates [[temp]](#temp)[[temp]](temp)
### 13.1 Preamble [[temp.pre]](temp.pre)
### 13.2 Template parameters [[temp.param]](temp.param)
### 13.3 Names of template specializations [[temp.names]](temp.names)
### 13.4 Template arguments [[temp.arg]](temp.arg)
#### 13.4.1 General [[temp.arg.general]](temp.arg.general)
#### 13.4.2 Type template arguments [[temp.arg.type]](temp.arg.type)
#### 13.4.3 Constant template arguments [[temp.arg.nontype]](temp.arg.nontype)
#### 13.4.4 Template template arguments [[temp.arg.template]](temp.arg.template)
### 13.5 Template constraints [[temp.constr]](temp.constr)
#### 13.5.1 General [[temp.constr.general]](temp.constr.general)
#### 13.5.2 Constraints [[temp.constr.constr]](temp.constr.constr)
#### 13.5.2.1 General [[temp.constr.constr.general]](temp.constr.constr.general)
#### 13.5.2.2 Logical operations [[temp.constr.op]](temp.constr.op)
#### 13.5.2.3 Atomic constraints [[temp.constr.atomic]](temp.constr.atomic)
#### 13.5.2.4 Concept-dependent constraints [[temp.constr.concept]](temp.constr.concept)
#### 13.5.2.5 Fold expanded constraint [[temp.constr.fold]](temp.constr.fold)
#### 13.5.3 Constrained declarations [[temp.constr.decl]](temp.constr.decl)
#### 13.5.4 Constraint normalization [[temp.constr.normal]](temp.constr.normal)
#### 13.5.5 Partial ordering by constraints [[temp.constr.order]](temp.constr.order)
### 13.6 Type equivalence [[temp.type]](temp.type)
### 13.7 Template declarations [[temp.decls]](temp.decls)
#### 13.7.1 General [[temp.decls.general]](temp.decls.general)
#### 13.7.2 Class templates [[temp.class]](temp.class)
#### 13.7.2.1 General [[temp.class.general]](temp.class.general)
#### 13.7.2.2 Member functions of class templates [[temp.mem.func]](temp.mem.func)
#### 13.7.2.3 Deduction guides [[temp.deduct.guide]](temp.deduct.guide)
#### 13.7.2.4 Member classes of class templates [[temp.mem.class]](temp.mem.class)
#### 13.7.2.5 Static data members of class templates [[temp.static]](temp.static)
#### 13.7.2.6 Enumeration members of class templates [[temp.mem.enum]](temp.mem.enum)
#### 13.7.3 Member templates [[temp.mem]](temp.mem)
#### 13.7.4 Variadic templates [[temp.variadic]](temp.variadic)
#### 13.7.5 Friends [[temp.friend]](temp.friend)
#### 13.7.6 Partial specialization [[temp.spec.partial]](temp.spec.partial)
#### 13.7.6.1 General [[temp.spec.partial.general]](temp.spec.partial.general)
#### 13.7.6.2 Matching of partial specializations [[temp.spec.partial.match]](temp.spec.partial.match)
#### 13.7.6.3 Partial ordering of partial specializations [[temp.spec.partial.order]](temp.spec.partial.order)
#### 13.7.6.4 Members of class template partial specializations [[temp.spec.partial.member]](temp.spec.partial.member)
#### 13.7.7 Function templates [[temp.fct]](temp.fct)
#### 13.7.7.1 General [[temp.fct.general]](temp.fct.general)
#### 13.7.7.2 Function template overloading [[temp.over.link]](temp.over.link)
#### 13.7.7.3 Partial ordering of function templates [[temp.func.order]](temp.func.order)
#### 13.7.8 Alias templates [[temp.alias]](temp.alias)
#### 13.7.9 Concept definitions [[temp.concept]](temp.concept)
### 13.8 Name resolution [[temp.res]](temp.res)
#### 13.8.1 General [[temp.res.general]](temp.res.general)
#### 13.8.2 Locally declared names [[temp.local]](temp.local)
#### 13.8.3 Dependent names [[temp.dep]](temp.dep)
#### 13.8.3.1 General [[temp.dep.general]](temp.dep.general)
#### 13.8.3.2 Dependent types [[temp.dep.type]](temp.dep.type)
#### 13.8.3.3 Type-dependent expressions [[temp.dep.expr]](temp.dep.expr)
#### 13.8.3.4 Value-dependent expressions [[temp.dep.constexpr]](temp.dep.constexpr)
#### 13.8.3.5 Dependent splice specifiers [[temp.dep.splice]](temp.dep.splice)
#### 13.8.3.6 Dependent namespaces [[temp.dep.namespace]](temp.dep.namespace)
#### 13.8.3.7 Dependent template arguments [[temp.dep.temp]](temp.dep.temp)
#### 13.8.4 Dependent name resolution [[temp.dep.res]](temp.dep.res)
#### 13.8.4.1 Point of instantiation [[temp.point]](temp.point)
#### 13.8.4.2 Candidate functions [[temp.dep.candidate]](temp.dep.candidate)
### 13.9 Template instantiation and specialization [[temp.spec]](temp.spec)
#### 13.9.1 General [[temp.spec.general]](temp.spec.general)
#### 13.9.2 Implicit instantiation [[temp.inst]](temp.inst)
#### 13.9.3 Explicit instantiation [[temp.explicit]](temp.explicit)
#### 13.9.4 Explicit specialization [[temp.expl.spec]](temp.expl.spec)
### 13.10 Function template specializations [[temp.fct.spec]](temp.fct.spec)
#### 13.10.1 General [[temp.fct.spec.general]](temp.fct.spec.general)
#### 13.10.2 Explicit template argument specification [[temp.arg.explicit]](temp.arg.explicit)
#### 13.10.3 Template argument deduction [[temp.deduct]](temp.deduct)
#### 13.10.3.1 General [[temp.deduct.general]](temp.deduct.general)
#### 13.10.3.2 Deducing template arguments from a function call [[temp.deduct.call]](temp.deduct.call)
#### 13.10.3.3 Deducing template arguments taking the address of a function template [[temp.deduct.funcaddr]](temp.deduct.funcaddr)
#### 13.10.3.4 Deducing conversion function template arguments [[temp.deduct.conv]](temp.deduct.conv)
#### 13.10.3.5 Deducing template arguments during partial ordering [[temp.deduct.partial]](temp.deduct.partial)
#### 13.10.3.6 Deducing template arguments from a type [[temp.deduct.type]](temp.deduct.type)
#### 13.10.3.7 Deducing template arguments from a function declaration [[temp.deduct.decl]](temp.deduct.decl)
#### 13.10.4 Overload resolution [[temp.over]](temp.over)
## 14 Exception handling [[except]](#except)[[except]](except)
### 14.1 Preamble [[except.pre]](except.pre)
### 14.2 Throwing an exception [[except.throw]](except.throw)
### 14.3 Stack unwinding [[except.ctor]](except.ctor)
### 14.4 Handling an exception [[except.handle]](except.handle)
### 14.5 Exception specifications [[except.spec]](except.spec)
### 14.6 Special functions [[except.special]](except.special)
#### 14.6.1 General [[except.special.general]](except.special.general)
#### 14.6.2 The std::terminate function [[except.terminate]](except.terminate)
## 15 Preprocessing directives [[cpp]](#cpp)[[cpp]](cpp)
### 15.1 Preamble [[cpp.pre]](cpp.pre)
### 15.2 Conditional inclusion [[cpp.cond]](cpp.cond)
### 15.3 Source file inclusion [[cpp.include]](cpp.include)
### 15.4 Resource inclusion [[cpp.embed]](cpp.embed)
#### 15.4.1 General [[cpp.embed.gen]](cpp.embed.gen)
#### 15.4.2 Embed parameters [[cpp.embed.param]](cpp.embed.param)
#### 15.4.2.1 limit parameter [[cpp.embed.param.limit]](cpp.embed.param.limit)
#### 15.4.2.2 prefix parameter [[cpp.embed.param.prefix]](cpp.embed.param.prefix)
#### 15.4.2.3 suffix parameter [[cpp.embed.param.suffix]](cpp.embed.param.suffix)
#### 15.4.2.4 if_empty parameter [[cpp.embed.param.if.empty]](cpp.embed.param.if.empty)
### 15.5 Module directive [[cpp.module]](cpp.module)
### 15.6 Header unit importation [[cpp.import]](cpp.import)
### 15.7 Macro replacement [[cpp.replace]](cpp.replace)
#### 15.7.1 General [[cpp.replace.general]](cpp.replace.general)
#### 15.7.2 Argument substitution [[cpp.subst]](cpp.subst)
#### 15.7.3 The # operator [[cpp.stringize]](cpp.stringize)
#### 15.7.4 The ## operator [[cpp.concat]](cpp.concat)
#### 15.7.5 Rescanning and further replacement [[cpp.rescan]](cpp.rescan)
#### 15.7.6 Scope of macro definitions [[cpp.scope]](cpp.scope)
### 15.8 Line control [[cpp.line]](cpp.line)
### 15.9 Diagnostic directives [[cpp.error]](cpp.error)
### 15.10 Pragma directive [[cpp.pragma]](cpp.pragma)
### 15.11 Null directive [[cpp.null]](cpp.null)
### 15.12 Predefined macro names [[cpp.predefined]](cpp.predefined)
### 15.13 Pragma operator [[cpp.pragma.op]](cpp.pragma.op)
## 16 Library introduction [[library]](#library)[[library]](library)
### 16.1 General [[library.general]](library.general)
### 16.2 The C standard library [[library.c]](library.c)
### 16.3 Method of description [[description]](description)
#### 16.3.1 General [[description.general]](description.general)
#### 16.3.2 Structure of each clause [[structure]](structure)
#### 16.3.2.1 Elements [[structure.elements]](structure.elements)
#### 16.3.2.2 Summary [[structure.summary]](structure.summary)
#### 16.3.2.3 Requirements [[structure.requirements]](structure.requirements)
#### 16.3.2.4 Detailed specifications [[structure.specifications]](structure.specifications)
#### 16.3.2.5 C library [[structure.see.also]](structure.see.also)
#### 16.3.3 Other conventions [[conventions]](conventions)
#### 16.3.3.1 General [[conventions.general]](conventions.general)
#### 16.3.3.2 Exposition-only entities, etc. [[expos.only.entity]](expos.only.entity)
#### 16.3.3.3 Type descriptions [[type.descriptions]](type.descriptions)
#### 16.3.3.3.1 General [[type.descriptions.general]](type.descriptions.general)
#### 16.3.3.3.2 Enumerated types [[enumerated.types]](enumerated.types)
#### 16.3.3.3.3 Bitmask types [[bitmask.types]](bitmask.types)
#### 16.3.3.3.4 Character sequences [[character.seq]](character.seq)
#### 16.3.3.3.4.1 General [[character.seq.general]](character.seq.general)
#### 16.3.3.3.4.2 Byte strings [[byte.strings]](byte.strings)
#### 16.3.3.3.4.3 Multibyte strings [[multibyte.strings]](multibyte.strings)
#### 16.3.3.3.5 Customization Point Object types [[customization.point.object]](customization.point.object)
#### 16.3.3.4 Algorithm function objects [[alg.func.obj]](alg.func.obj)
#### 16.3.3.5 Functions within classes [[functions.within.classes]](functions.within.classes)
#### 16.3.3.6 Private members [[objects.within.classes]](objects.within.classes)
#### 16.3.3.7 Freestanding items [[freestanding.item]](freestanding.item)
### 16.4 Library-wide requirements [[requirements]](requirements)
#### 16.4.1 General [[requirements.general]](requirements.general)
#### 16.4.2 Library contents and organization [[organization]](organization)
#### 16.4.2.1 General [[organization.general]](organization.general)
#### 16.4.2.2 Library contents [[contents]](contents)
#### 16.4.2.3 Headers [[headers]](headers)
#### 16.4.2.4 Modules [[std.modules]](std.modules)
#### 16.4.2.5 Freestanding implementations [[compliance]](compliance)
#### 16.4.3 Using the library [[using]](using)
#### 16.4.3.1 Overview [[using.overview]](using.overview)
#### 16.4.3.2 Headers [[using.headers]](using.headers)
#### 16.4.3.3 Linkage [[using.linkage]](using.linkage)
#### 16.4.4 Requirements on types and expressions [[utility.requirements]](utility.requirements)
#### 16.4.4.1 General [[utility.requirements.general]](utility.requirements.general)
#### 16.4.4.2 Template argument requirements [[utility.arg.requirements]](utility.arg.requirements)
#### 16.4.4.3 Swappable requirements [[swappable.requirements]](swappable.requirements)
#### 16.4.4.4 *Cpp17NullablePointer* requirements [[nullablepointer.requirements]](nullablepointer.requirements)
#### 16.4.4.5 *Cpp17Hash* requirements [[hash.requirements]](hash.requirements)
#### 16.4.4.6 *Cpp17Allocator* requirements [[allocator.requirements]](allocator.requirements)
#### 16.4.4.6.1 General [[allocator.requirements.general]](allocator.requirements.general)
#### 16.4.4.6.2 Allocator completeness requirements [[allocator.requirements.completeness]](allocator.requirements.completeness)
#### 16.4.5 Constraints on programs [[constraints]](constraints)
#### 16.4.5.1 Overview [[constraints.overview]](constraints.overview)
#### 16.4.5.2 Namespace use [[namespace.constraints]](namespace.constraints)
#### 16.4.5.2.1 Namespace std [[namespace.std]](namespace.std)
#### 16.4.5.2.2 Namespace posix [[namespace.posix]](namespace.posix)
#### 16.4.5.2.3 Namespaces for future standardization [[namespace.future]](namespace.future)
#### 16.4.5.3 Reserved names [[reserved.names]](reserved.names)
#### 16.4.5.3.1 General [[reserved.names.general]](reserved.names.general)
#### 16.4.5.3.2 Zombie names [[zombie.names]](zombie.names)
#### 16.4.5.3.3 Macro names [[macro.names]](macro.names)
#### 16.4.5.3.4 External linkage [[extern.names]](extern.names)
#### 16.4.5.3.5 Types [[extern.types]](extern.types)
#### 16.4.5.3.6 User-defined literal suffixes [[usrlit.suffix]](usrlit.suffix)
#### 16.4.5.4 Headers [[alt.headers]](alt.headers)
#### 16.4.5.5 Derived classes [[derived.classes]](derived.classes)
#### 16.4.5.6 Replacement functions [[replacement.functions]](replacement.functions)
#### 16.4.5.7 Handler functions [[handler.functions]](handler.functions)
#### 16.4.5.8 Other functions [[res.on.functions]](res.on.functions)
#### 16.4.5.9 Function arguments [[res.on.arguments]](res.on.arguments)
#### 16.4.5.10 Library object access [[res.on.objects]](res.on.objects)
#### 16.4.5.11 Semantic requirements [[res.on.requirements]](res.on.requirements)
#### 16.4.6 Conforming implementations [[conforming]](conforming)
#### 16.4.6.1 Overview [[conforming.overview]](conforming.overview)
#### 16.4.6.2 Headers [[res.on.headers]](res.on.headers)
#### 16.4.6.3 Restrictions on macro definitions [[res.on.macro.definitions]](res.on.macro.definitions)
#### 16.4.6.4 Non-member functions [[global.functions]](global.functions)
#### 16.4.6.5 Member functions [[member.functions]](member.functions)
#### 16.4.6.6 Friend functions [[hidden.friends]](hidden.friends)
#### 16.4.6.7 Constexpr functions and constructors [[constexpr.functions]](constexpr.functions)
#### 16.4.6.8 Requirements for stable algorithms [[algorithm.stable]](algorithm.stable)
#### 16.4.6.9 Reentrancy [[reentrancy]](reentrancy)
#### 16.4.6.10 Data race avoidance [[res.on.data.races]](res.on.data.races)
#### 16.4.6.11 Properties of library classes [[library.class.props]](library.class.props)
#### 16.4.6.12 Protection within classes [[protection.within.classes]](protection.within.classes)
#### 16.4.6.13 Derived classes [[derivation]](derivation)
#### 16.4.6.14 Restrictions on exception handling [[res.on.exception.handling]](res.on.exception.handling)
#### 16.4.6.15 Contract assertions [[res.contract.assertions]](res.contract.assertions)
#### 16.4.6.16 Value of error codes [[value.error.codes]](value.error.codes)
#### 16.4.6.17 Moved-from state of library types [[lib.types.movedfrom]](lib.types.movedfrom)
## 17 Language support library [[support]](#support)[[support]](support)
### 17.1 General [[support.general]](support.general)
### 17.2 Common definitions [[support.types]](support.types)
#### 17.2.1 Header <cstddef> synopsis [[cstddef.syn]](cstddef.syn)
#### 17.2.2 Header <cstdlib> synopsis [[cstdlib.syn]](cstdlib.syn)
#### 17.2.3 Null pointers [[support.types.nullptr]](support.types.nullptr)
#### 17.2.4 Sizes, alignments, and offsets [[support.types.layout]](support.types.layout)
#### 17.2.5 byte type operations [[support.types.byteops]](support.types.byteops)
### 17.3 Implementation properties [[support.limits]](support.limits)
#### 17.3.1 General [[support.limits.general]](support.limits.general)
#### 17.3.2 Header <version> synopsis [[version.syn]](version.syn)
#### 17.3.3 Header <limits> synopsis [[limits.syn]](limits.syn)
#### 17.3.4 Enum float_round_style [[round.style]](round.style)
#### 17.3.5 Class template numeric_limits [[numeric.limits]](numeric.limits)
#### 17.3.5.1 General [[numeric.limits.general]](numeric.limits.general)
#### 17.3.5.2 numeric_limits members [[numeric.limits.members]](numeric.limits.members)
#### 17.3.5.3 numeric_limits specializations [[numeric.special]](numeric.special)
#### 17.3.6 Header <climits> synopsis [[climits.syn]](climits.syn)
#### 17.3.7 Header <cfloat> synopsis [[cfloat.syn]](cfloat.syn)
### 17.4 Arithmetic types [[support.arith.types]](support.arith.types)
#### 17.4.1 Header <cstdint> synopsis [[cstdint.syn]](cstdint.syn)
#### 17.4.2 Header <stdfloat> synopsis [[stdfloat.syn]](stdfloat.syn)
### 17.5 Startup and termination [[support.start.term]](support.start.term)
### 17.6 Dynamic memory management [[support.dynamic]](support.dynamic)
#### 17.6.1 General [[support.dynamic.general]](support.dynamic.general)
#### 17.6.2 Header <new> synopsis [[new.syn]](new.syn)
#### 17.6.3 Storage allocation and deallocation [[new.delete]](new.delete)
#### 17.6.3.1 General [[new.delete.general]](new.delete.general)
#### 17.6.3.2 Single-object forms [[new.delete.single]](new.delete.single)
#### 17.6.3.3 Array forms [[new.delete.array]](new.delete.array)
#### 17.6.3.4 Non-allocating forms [[new.delete.placement]](new.delete.placement)
#### 17.6.3.5 Data races [[new.delete.dataraces]](new.delete.dataraces)
#### 17.6.4 Storage allocation errors [[alloc.errors]](alloc.errors)
#### 17.6.4.1 Class bad_alloc [[bad.alloc]](bad.alloc)
#### 17.6.4.2 Class bad_array_new_length [[new.badlength]](new.badlength)
#### 17.6.4.3 Type new_handler [[new.handler]](new.handler)
#### 17.6.4.4 set_new_handler [[set.new.handler]](set.new.handler)
#### 17.6.4.5 get_new_handler [[get.new.handler]](get.new.handler)
#### 17.6.5 Pointer optimization barrier [[ptr.launder]](ptr.launder)
#### 17.6.6 Hardware interference size [[hardware.interference]](hardware.interference)
### 17.7 Type identification [[support.rtti]](support.rtti)
#### 17.7.1 General [[support.rtti.general]](support.rtti.general)
#### 17.7.2 Header <typeinfo> synopsis [[typeinfo.syn]](typeinfo.syn)
#### 17.7.3 Class type_info [[type.info]](type.info)
#### 17.7.4 Class bad_cast [[bad.cast]](bad.cast)
#### 17.7.5 Class bad_typeid [[bad.typeid]](bad.typeid)
#### 17.7.6 Header <typeindex> synopsis [[type.index.synopsis]](type.index.synopsis)
#### 17.7.7 Class type_index [[type.index]](type.index)
### 17.8 Source location [[support.srcloc]](support.srcloc)
#### 17.8.1 Header <source_location> synopsis [[source.location.syn]](source.location.syn)
#### 17.8.2 Class source_location [[support.srcloc.class]](support.srcloc.class)
#### 17.8.2.1 General [[support.srcloc.class.general]](support.srcloc.class.general)
#### 17.8.2.2 Creation [[support.srcloc.cons]](support.srcloc.cons)
#### 17.8.2.3 Observers [[support.srcloc.obs]](support.srcloc.obs)
### 17.9 Exception handling [[support.exception]](support.exception)
#### 17.9.1 General [[support.exception.general]](support.exception.general)
#### 17.9.2 Header <exception> synopsis [[exception.syn]](exception.syn)
#### 17.9.3 Class exception [[exception]](exception)
#### 17.9.4 Class bad_exception [[bad.exception]](bad.exception)
#### 17.9.5 Abnormal termination [[exception.terminate]](exception.terminate)
#### 17.9.5.1 Type terminate_handler [[terminate.handler]](terminate.handler)
#### 17.9.5.2 set_terminate [[set.terminate]](set.terminate)
#### 17.9.5.3 get_terminate [[get.terminate]](get.terminate)
#### 17.9.5.4 terminate [[terminate]](terminate)
#### 17.9.6 uncaught_exceptions [[uncaught.exceptions]](uncaught.exceptions)
#### 17.9.7 Exception propagation [[propagation]](propagation)
#### 17.9.8 nested_exception [[except.nested]](except.nested)
### 17.10 Contract-violation handling [[support.contract]](support.contract)
#### 17.10.1 Header <contracts> synopsis [[contracts.syn]](contracts.syn)
#### 17.10.2 Enumerations [[support.contract.enum]](support.contract.enum)
#### 17.10.3 Class contract_violation [[support.contract.violation]](support.contract.violation)
#### 17.10.4 Invoke default handler [[support.contract.invoke]](support.contract.invoke)
### 17.11 Initializer lists [[support.initlist]](support.initlist)
#### 17.11.1 General [[support.initlist.general]](support.initlist.general)
#### 17.11.2 Header <initializer_list> synopsis [[initializer.list.syn]](initializer.list.syn)
#### 17.11.3 Initializer list constructors [[support.initlist.cons]](support.initlist.cons)
#### 17.11.4 Initializer list access [[support.initlist.access]](support.initlist.access)
#### 17.11.5 Initializer list range access [[support.initlist.range]](support.initlist.range)
### 17.12 Comparisons [[cmp]](cmp)
#### 17.12.1 Header <compare> synopsis [[compare.syn]](compare.syn)
#### 17.12.2 Comparison category types [[cmp.categories]](cmp.categories)
#### 17.12.2.1 Preamble [[cmp.categories.pre]](cmp.categories.pre)
#### 17.12.2.2 Class partial_ordering [[cmp.partialord]](cmp.partialord)
#### 17.12.2.3 Class weak_ordering [[cmp.weakord]](cmp.weakord)
#### 17.12.2.4 Class strong_ordering [[cmp.strongord]](cmp.strongord)
#### 17.12.3 Class template common_comparison_category [[cmp.common]](cmp.common)
#### 17.12.4 Concept three_way_comparable [[cmp.concept]](cmp.concept)
#### 17.12.5 Result of three-way comparison [[cmp.result]](cmp.result)
#### 17.12.6 Comparison algorithms [[cmp.alg]](cmp.alg)
#### 17.12.7 Type Ordering [[compare.type]](compare.type)
### 17.13 Coroutines [[support.coroutine]](support.coroutine)
#### 17.13.1 General [[support.coroutine.general]](support.coroutine.general)
#### 17.13.2 Header <coroutine> synopsis [[coroutine.syn]](coroutine.syn)
#### 17.13.3 Coroutine traits [[coroutine.traits]](coroutine.traits)
#### 17.13.3.1 General [[coroutine.traits.general]](coroutine.traits.general)
#### 17.13.3.2 Class template coroutine_traits [[coroutine.traits.primary]](coroutine.traits.primary)
#### 17.13.4 Class template coroutine_handle [[coroutine.handle]](coroutine.handle)
#### 17.13.4.1 General [[coroutine.handle.general]](coroutine.handle.general)
#### 17.13.4.2 Construct/reset [[coroutine.handle.con]](coroutine.handle.con)
#### 17.13.4.3 Conversion [[coroutine.handle.conv]](coroutine.handle.conv)
#### 17.13.4.4 Export/import [[coroutine.handle.export.import]](coroutine.handle.export.import)
#### 17.13.4.5 Observers [[coroutine.handle.observers]](coroutine.handle.observers)
#### 17.13.4.6 Resumption [[coroutine.handle.resumption]](coroutine.handle.resumption)
#### 17.13.4.7 Promise access [[coroutine.handle.promise]](coroutine.handle.promise)
#### 17.13.4.8 Comparison operators [[coroutine.handle.compare]](coroutine.handle.compare)
#### 17.13.4.9 Hash support [[coroutine.handle.hash]](coroutine.handle.hash)
#### 17.13.5 No-op coroutines [[coroutine.noop]](coroutine.noop)
#### 17.13.5.1 Class noop_coroutine_promise [[coroutine.promise.noop]](coroutine.promise.noop)
#### 17.13.5.2 Class coroutine_handle<noop_coroutine_promise> [[coroutine.handle.noop]](coroutine.handle.noop)
#### 17.13.5.2.1 General [[coroutine.handle.noop.general]](coroutine.handle.noop.general)
#### 17.13.5.2.2 Conversion [[coroutine.handle.noop.conv]](coroutine.handle.noop.conv)
#### 17.13.5.2.3 Observers [[coroutine.handle.noop.observers]](coroutine.handle.noop.observers)
#### 17.13.5.2.4 Resumption [[coroutine.handle.noop.resumption]](coroutine.handle.noop.resumption)
#### 17.13.5.2.5 Promise access [[coroutine.handle.noop.promise]](coroutine.handle.noop.promise)
#### 17.13.5.2.6 Address [[coroutine.handle.noop.address]](coroutine.handle.noop.address)
#### 17.13.5.3 Function noop_coroutine [[coroutine.noop.coroutine]](coroutine.noop.coroutine)
#### 17.13.6 Trivial awaitables [[coroutine.trivial.awaitables]](coroutine.trivial.awaitables)
### 17.14 Other runtime support [[support.runtime]](support.runtime)
#### 17.14.1 General [[support.runtime.general]](support.runtime.general)
#### 17.14.2 Header <cstdarg> synopsis [[cstdarg.syn]](cstdarg.syn)
#### 17.14.3 Header <csetjmp> synopsis [[csetjmp.syn]](csetjmp.syn)
#### 17.14.4 Header <csignal> synopsis [[csignal.syn]](csignal.syn)
#### 17.14.5 Signal handlers [[support.signal]](support.signal)
### 17.15 C headers [[support.c.headers]](support.c.headers)
#### 17.15.1 General [[support.c.headers.general]](support.c.headers.general)
#### 17.15.2 Header <complex.h> synopsis [[complex.h.syn]](complex.h.syn)
#### 17.15.3 Header <iso646.h> synopsis [[iso646.h.syn]](iso646.h.syn)
#### 17.15.4 Header <stdalign.h> synopsis [[stdalign.h.syn]](stdalign.h.syn)
#### 17.15.5 Header <stdbool.h> synopsis [[stdbool.h.syn]](stdbool.h.syn)
#### 17.15.6 Header <tgmath.h> synopsis [[tgmath.h.syn]](tgmath.h.syn)
#### 17.15.7 Other C headers [[support.c.headers.other]](support.c.headers.other)
## 18 Concepts library [[concepts]](#concepts)[[concepts]](concepts)
### 18.1 General [[concepts.general]](concepts.general)
### 18.2 Equality preservation [[concepts.equality]](concepts.equality)
### 18.3 Header <concepts> synopsis [[concepts.syn]](concepts.syn)
### 18.4 Language-related concepts [[concepts.lang]](concepts.lang)
#### 18.4.1 General [[concepts.lang.general]](concepts.lang.general)
#### 18.4.2 Concept same_as [[concept.same]](concept.same)
#### 18.4.3 Concept derived_from [[concept.derived]](concept.derived)
#### 18.4.4 Concept convertible_to [[concept.convertible]](concept.convertible)
#### 18.4.5 Concept common_reference_with [[concept.commonref]](concept.commonref)
#### 18.4.6 Concept common_with [[concept.common]](concept.common)
#### 18.4.7 Arithmetic concepts [[concepts.arithmetic]](concepts.arithmetic)
#### 18.4.8 Concept assignable_from [[concept.assignable]](concept.assignable)
#### 18.4.9 Concept swappable [[concept.swappable]](concept.swappable)
#### 18.4.10 Concept destructible [[concept.destructible]](concept.destructible)
#### 18.4.11 Concept constructible_from [[concept.constructible]](concept.constructible)
#### 18.4.12 Concept default_initializable [[concept.default.init]](concept.default.init)
#### 18.4.13 Concept move_constructible [[concept.moveconstructible]](concept.moveconstructible)
#### 18.4.14 Concept copy_constructible [[concept.copyconstructible]](concept.copyconstructible)
### 18.5 Comparison concepts [[concepts.compare]](concepts.compare)
#### 18.5.1 General [[concepts.compare.general]](concepts.compare.general)
#### 18.5.2 Boolean testability [[concept.booleantestable]](concept.booleantestable)
#### 18.5.3 Comparison common types [[concept.comparisoncommontype]](concept.comparisoncommontype)
#### 18.5.4 Concept equality_comparable [[concept.equalitycomparable]](concept.equalitycomparable)
#### 18.5.5 Concept totally_ordered [[concept.totallyordered]](concept.totallyordered)
### 18.6 Object concepts [[concepts.object]](concepts.object)
### 18.7 Callable concepts [[concepts.callable]](concepts.callable)
#### 18.7.1 General [[concepts.callable.general]](concepts.callable.general)
#### 18.7.2 Concept invocable [[concept.invocable]](concept.invocable)
#### 18.7.3 Concept regular_invocable [[concept.regularinvocable]](concept.regularinvocable)
#### 18.7.4 Concept predicate [[concept.predicate]](concept.predicate)
#### 18.7.5 Concept relation [[concept.relation]](concept.relation)
#### 18.7.6 Concept equivalence_relation [[concept.equiv]](concept.equiv)
#### 18.7.7 Concept strict_weak_order [[concept.strictweakorder]](concept.strictweakorder)
## 19 Diagnostics library [[diagnostics]](#diagnostics)[[diagnostics]](diagnostics)
### 19.1 General [[diagnostics.general]](diagnostics.general)
### 19.2 Exception classes [[std.exceptions]](std.exceptions)
#### 19.2.1 General [[std.exceptions.general]](std.exceptions.general)
#### 19.2.2 Header <stdexcept> synopsis [[stdexcept.syn]](stdexcept.syn)
#### 19.2.3 Class logic_error [[logic.error]](logic.error)
#### 19.2.4 Class domain_error [[domain.error]](domain.error)
#### 19.2.5 Class invalid_argument [[invalid.argument]](invalid.argument)
#### 19.2.6 Class length_error [[length.error]](length.error)
#### 19.2.7 Class out_of_range [[out.of.range]](out.of.range)
#### 19.2.8 Class runtime_error [[runtime.error]](runtime.error)
#### 19.2.9 Class range_error [[range.error]](range.error)
#### 19.2.10 Class overflow_error [[overflow.error]](overflow.error)
#### 19.2.11 Class underflow_error [[underflow.error]](underflow.error)
### 19.3 Assertions [[assertions]](assertions)
#### 19.3.1 General [[assertions.general]](assertions.general)
#### 19.3.2 Header <cassert> synopsis [[cassert.syn]](cassert.syn)
#### 19.3.3 The assert macro [[assertions.assert]](assertions.assert)
### 19.4 Error numbers [[errno]](errno)
#### 19.4.1 General [[errno.general]](errno.general)
#### 19.4.2 Header <cerrno> synopsis [[cerrno.syn]](cerrno.syn)
### 19.5 System error support [[syserr]](syserr)
#### 19.5.1 General [[syserr.general]](syserr.general)
#### 19.5.2 Header <system_error> synopsis [[system.error.syn]](system.error.syn)
#### 19.5.3 Class error_category [[syserr.errcat]](syserr.errcat)
#### 19.5.3.1 Overview [[syserr.errcat.overview]](syserr.errcat.overview)
#### 19.5.3.2 Virtual members [[syserr.errcat.virtuals]](syserr.errcat.virtuals)
#### 19.5.3.3 Non-virtual members [[syserr.errcat.nonvirtuals]](syserr.errcat.nonvirtuals)
#### 19.5.3.4 Program-defined classes derived from error_category [[syserr.errcat.derived]](syserr.errcat.derived)
#### 19.5.3.5 Error category objects [[syserr.errcat.objects]](syserr.errcat.objects)
#### 19.5.4 Class error_code [[syserr.errcode]](syserr.errcode)
#### 19.5.4.1 Overview [[syserr.errcode.overview]](syserr.errcode.overview)
#### 19.5.4.2 Constructors [[syserr.errcode.constructors]](syserr.errcode.constructors)
#### 19.5.4.3 Modifiers [[syserr.errcode.modifiers]](syserr.errcode.modifiers)
#### 19.5.4.4 Observers [[syserr.errcode.observers]](syserr.errcode.observers)
#### 19.5.4.5 Non-member functions [[syserr.errcode.nonmembers]](syserr.errcode.nonmembers)
#### 19.5.5 Class error_condition [[syserr.errcondition]](syserr.errcondition)
#### 19.5.5.1 Overview [[syserr.errcondition.overview]](syserr.errcondition.overview)
#### 19.5.5.2 Constructors [[syserr.errcondition.constructors]](syserr.errcondition.constructors)
#### 19.5.5.3 Modifiers [[syserr.errcondition.modifiers]](syserr.errcondition.modifiers)
#### 19.5.5.4 Observers [[syserr.errcondition.observers]](syserr.errcondition.observers)
#### 19.5.5.5 Non-member functions [[syserr.errcondition.nonmembers]](syserr.errcondition.nonmembers)
#### 19.5.6 Comparison operator functions [[syserr.compare]](syserr.compare)
#### 19.5.7 System error hash support [[syserr.hash]](syserr.hash)
#### 19.5.8 Class system_error [[syserr.syserr]](syserr.syserr)
#### 19.5.8.1 Overview [[syserr.syserr.overview]](syserr.syserr.overview)
#### 19.5.8.2 Members [[syserr.syserr.members]](syserr.syserr.members)
### 19.6 Stacktrace [[stacktrace]](stacktrace)
#### 19.6.1 General [[stacktrace.general]](stacktrace.general)
#### 19.6.2 Header <stacktrace> synopsis [[stacktrace.syn]](stacktrace.syn)
#### 19.6.3 Class stacktrace_entry [[stacktrace.entry]](stacktrace.entry)
#### 19.6.3.1 Overview [[stacktrace.entry.overview]](stacktrace.entry.overview)
#### 19.6.3.2 Constructors [[stacktrace.entry.cons]](stacktrace.entry.cons)
#### 19.6.3.3 Observers [[stacktrace.entry.obs]](stacktrace.entry.obs)
#### 19.6.3.4 Query [[stacktrace.entry.query]](stacktrace.entry.query)
#### 19.6.3.5 Comparison [[stacktrace.entry.cmp]](stacktrace.entry.cmp)
#### 19.6.4 Class template basic_stacktrace [[stacktrace.basic]](stacktrace.basic)
#### 19.6.4.1 Overview [[stacktrace.basic.overview]](stacktrace.basic.overview)
#### 19.6.4.2 Creation and assignment [[stacktrace.basic.cons]](stacktrace.basic.cons)
#### 19.6.4.3 Observers [[stacktrace.basic.obs]](stacktrace.basic.obs)
#### 19.6.4.4 Comparisons [[stacktrace.basic.cmp]](stacktrace.basic.cmp)
#### 19.6.4.5 Modifiers [[stacktrace.basic.mod]](stacktrace.basic.mod)
#### 19.6.4.6 Non-member functions [[stacktrace.basic.nonmem]](stacktrace.basic.nonmem)
#### 19.6.5 Formatting support [[stacktrace.format]](stacktrace.format)
#### 19.6.6 Hash support [[stacktrace.basic.hash]](stacktrace.basic.hash)
### 19.7 Debugging [[debugging]](debugging)
#### 19.7.1 General [[debugging.general]](debugging.general)
#### 19.7.2 Header <debugging> synopsis [[debugging.syn]](debugging.syn)
#### 19.7.3 Utility [[debugging.utility]](debugging.utility)
## 20 Memory management library [[mem]](#mem)[[mem]](mem)
### 20.1 General [[mem.general]](mem.general)
### 20.2 Memory [[memory]](memory)
#### 20.2.1 General [[memory.general]](memory.general)
#### 20.2.2 Header <memory> synopsis [[memory.syn]](memory.syn)
#### 20.2.3 Pointer traits [[pointer.traits]](pointer.traits)
#### 20.2.3.1 General [[pointer.traits.general]](pointer.traits.general)
#### 20.2.3.2 Member types [[pointer.traits.types]](pointer.traits.types)
#### 20.2.3.3 Member functions [[pointer.traits.functions]](pointer.traits.functions)
#### 20.2.3.4 Optional members [[pointer.traits.optmem]](pointer.traits.optmem)
#### 20.2.4 Pointer conversion [[pointer.conversion]](pointer.conversion)
#### 20.2.5 Pointer alignment [[ptr.align]](ptr.align)
#### 20.2.6 Explicit lifetime management [[obj.lifetime]](obj.lifetime)
#### 20.2.7 Allocator argument tag [[allocator.tag]](allocator.tag)
#### 20.2.8 uses_allocator [[allocator.uses]](allocator.uses)
#### 20.2.8.1 uses_allocator trait [[allocator.uses.trait]](allocator.uses.trait)
#### 20.2.8.2 Uses-allocator construction [[allocator.uses.construction]](allocator.uses.construction)
#### 20.2.9 Allocator traits [[allocator.traits]](allocator.traits)
#### 20.2.9.1 General [[allocator.traits.general]](allocator.traits.general)
#### 20.2.9.2 Member types [[allocator.traits.types]](allocator.traits.types)
#### 20.2.9.3 Static member functions [[allocator.traits.members]](allocator.traits.members)
#### 20.2.9.4 Other [[allocator.traits.other]](allocator.traits.other)
#### 20.2.10 The default allocator [[default.allocator]](default.allocator)
#### 20.2.10.1 General [[default.allocator.general]](default.allocator.general)
#### 20.2.10.2 Members [[allocator.members]](allocator.members)
#### 20.2.10.3 Operators [[allocator.globals]](allocator.globals)
#### 20.2.11 addressof [[specialized.addressof]](specialized.addressof)
#### 20.2.12 C library memory allocation [[c.malloc]](c.malloc)
### 20.3 Smart pointers [[smartptr]](smartptr)
#### 20.3.1 Unique-ownership pointers [[unique.ptr]](unique.ptr)
#### 20.3.1.1 General [[unique.ptr.general]](unique.ptr.general)
#### 20.3.1.2 Default deleters [[unique.ptr.dltr]](unique.ptr.dltr)
#### 20.3.1.2.1 General [[unique.ptr.dltr.general]](unique.ptr.dltr.general)
#### 20.3.1.2.2 default_delete [[unique.ptr.dltr.dflt]](unique.ptr.dltr.dflt)
#### 20.3.1.2.3 default_delete<T[]> [[unique.ptr.dltr.dflt1]](unique.ptr.dltr.dflt1)
#### 20.3.1.3 unique_ptr for single objects [[unique.ptr.single]](unique.ptr.single)
#### 20.3.1.3.1 General [[unique.ptr.single.general]](unique.ptr.single.general)
#### 20.3.1.3.2 Constructors [[unique.ptr.single.ctor]](unique.ptr.single.ctor)
#### 20.3.1.3.3 Destructor [[unique.ptr.single.dtor]](unique.ptr.single.dtor)
#### 20.3.1.3.4 Assignment [[unique.ptr.single.asgn]](unique.ptr.single.asgn)
#### 20.3.1.3.5 Observers [[unique.ptr.single.observers]](unique.ptr.single.observers)
#### 20.3.1.3.6 Modifiers [[unique.ptr.single.modifiers]](unique.ptr.single.modifiers)
#### 20.3.1.4 unique_ptr for array objects with a runtime length [[unique.ptr.runtime]](unique.ptr.runtime)
#### 20.3.1.4.1 General [[unique.ptr.runtime.general]](unique.ptr.runtime.general)
#### 20.3.1.4.2 Constructors [[unique.ptr.runtime.ctor]](unique.ptr.runtime.ctor)
#### 20.3.1.4.3 Assignment [[unique.ptr.runtime.asgn]](unique.ptr.runtime.asgn)
#### 20.3.1.4.4 Observers [[unique.ptr.runtime.observers]](unique.ptr.runtime.observers)
#### 20.3.1.4.5 Modifiers [[unique.ptr.runtime.modifiers]](unique.ptr.runtime.modifiers)
#### 20.3.1.5 Creation [[unique.ptr.create]](unique.ptr.create)
#### 20.3.1.6 Specialized algorithms [[unique.ptr.special]](unique.ptr.special)
#### 20.3.1.7 I/O [[unique.ptr.io]](unique.ptr.io)
#### 20.3.2 Shared-ownership pointers [[util.sharedptr]](util.sharedptr)
#### 20.3.2.1 Class bad_weak_ptr [[util.smartptr.weak.bad]](util.smartptr.weak.bad)
#### 20.3.2.2 Class template shared_ptr [[util.smartptr.shared]](util.smartptr.shared)
#### 20.3.2.2.1 General [[util.smartptr.shared.general]](util.smartptr.shared.general)
#### 20.3.2.2.2 Constructors [[util.smartptr.shared.const]](util.smartptr.shared.const)
#### 20.3.2.2.3 Destructor [[util.smartptr.shared.dest]](util.smartptr.shared.dest)
#### 20.3.2.2.4 Assignment [[util.smartptr.shared.assign]](util.smartptr.shared.assign)
#### 20.3.2.2.5 Modifiers [[util.smartptr.shared.mod]](util.smartptr.shared.mod)
#### 20.3.2.2.6 Observers [[util.smartptr.shared.obs]](util.smartptr.shared.obs)
#### 20.3.2.2.7 Creation [[util.smartptr.shared.create]](util.smartptr.shared.create)
#### 20.3.2.2.8 Comparison [[util.smartptr.shared.cmp]](util.smartptr.shared.cmp)
#### 20.3.2.2.9 Specialized algorithms [[util.smartptr.shared.spec]](util.smartptr.shared.spec)
#### 20.3.2.2.10 Casts [[util.smartptr.shared.cast]](util.smartptr.shared.cast)
#### 20.3.2.2.11 get_deleter [[util.smartptr.getdeleter]](util.smartptr.getdeleter)
#### 20.3.2.2.12 I/O [[util.smartptr.shared.io]](util.smartptr.shared.io)
#### 20.3.2.3 Class template weak_ptr [[util.smartptr.weak]](util.smartptr.weak)
#### 20.3.2.3.1 General [[util.smartptr.weak.general]](util.smartptr.weak.general)
#### 20.3.2.3.2 Constructors [[util.smartptr.weak.const]](util.smartptr.weak.const)
#### 20.3.2.3.3 Destructor [[util.smartptr.weak.dest]](util.smartptr.weak.dest)
#### 20.3.2.3.4 Assignment [[util.smartptr.weak.assign]](util.smartptr.weak.assign)
#### 20.3.2.3.5 Modifiers [[util.smartptr.weak.mod]](util.smartptr.weak.mod)
#### 20.3.2.3.6 Observers [[util.smartptr.weak.obs]](util.smartptr.weak.obs)
#### 20.3.2.3.7 Specialized algorithms [[util.smartptr.weak.spec]](util.smartptr.weak.spec)
#### 20.3.2.4 Class template owner_less [[util.smartptr.ownerless]](util.smartptr.ownerless)
#### 20.3.2.5 Struct owner_hash [[util.smartptr.owner.hash]](util.smartptr.owner.hash)
#### 20.3.2.6 Struct owner_equal [[util.smartptr.owner.equal]](util.smartptr.owner.equal)
#### 20.3.2.7 Class template enable_shared_from_this [[util.smartptr.enab]](util.smartptr.enab)
#### 20.3.3 Smart pointer hash support [[util.smartptr.hash]](util.smartptr.hash)
#### 20.3.4 Smart pointer adaptors [[smartptr.adapt]](smartptr.adapt)
#### 20.3.4.1 Class template out_ptr_t [[out.ptr.t]](out.ptr.t)
#### 20.3.4.2 Function template out_ptr [[out.ptr]](out.ptr)
#### 20.3.4.3 Class template inout_ptr_t [[inout.ptr.t]](inout.ptr.t)
#### 20.3.4.4 Function template inout_ptr [[inout.ptr]](inout.ptr)
### 20.4 Types for composite class design [[mem.composite.types]](mem.composite.types)
#### 20.4.1 Class template indirect [[indirect]](indirect)
#### 20.4.1.1 General [[indirect.general]](indirect.general)
#### 20.4.1.2 Synopsis [[indirect.syn]](indirect.syn)
#### 20.4.1.3 Constructors [[indirect.ctor]](indirect.ctor)
#### 20.4.1.4 Destructor [[indirect.dtor]](indirect.dtor)
#### 20.4.1.5 Assignment [[indirect.assign]](indirect.assign)
#### 20.4.1.6 Observers [[indirect.obs]](indirect.obs)
#### 20.4.1.7 Swap [[indirect.swap]](indirect.swap)
#### 20.4.1.8 Relational operators [[indirect.relops]](indirect.relops)
#### 20.4.1.9 Comparison with T [[indirect.comp.with.t]](indirect.comp.with.t)
#### 20.4.1.10 Hash support [[indirect.hash]](indirect.hash)
#### 20.4.2 Class template polymorphic [[polymorphic]](polymorphic)
#### 20.4.2.1 General [[polymorphic.general]](polymorphic.general)
#### 20.4.2.2 Synopsis [[polymorphic.syn]](polymorphic.syn)
#### 20.4.2.3 Constructors [[polymorphic.ctor]](polymorphic.ctor)
#### 20.4.2.4 Destructor [[polymorphic.dtor]](polymorphic.dtor)
#### 20.4.2.5 Assignment [[polymorphic.assign]](polymorphic.assign)
#### 20.4.2.6 Observers [[polymorphic.obs]](polymorphic.obs)
#### 20.4.2.7 Swap [[polymorphic.swap]](polymorphic.swap)
### 20.5 Memory resources [[mem.res]](mem.res)
#### 20.5.1 Header <memory_resource> synopsis [[mem.res.syn]](mem.res.syn)
#### 20.5.2 Class memory_resource [[mem.res.class]](mem.res.class)
#### 20.5.2.1 General [[mem.res.class.general]](mem.res.class.general)
#### 20.5.2.2 Public member functions [[mem.res.public]](mem.res.public)
#### 20.5.2.3 Private virtual member functions [[mem.res.private]](mem.res.private)
#### 20.5.2.4 Equality [[mem.res.eq]](mem.res.eq)
#### 20.5.3 Class template polymorphic_allocator [[mem.poly.allocator.class]](mem.poly.allocator.class)
#### 20.5.3.1 General [[mem.poly.allocator.class.general]](mem.poly.allocator.class.general)
#### 20.5.3.2 Constructors [[mem.poly.allocator.ctor]](mem.poly.allocator.ctor)
#### 20.5.3.3 Member functions [[mem.poly.allocator.mem]](mem.poly.allocator.mem)
#### 20.5.3.4 Equality [[mem.poly.allocator.eq]](mem.poly.allocator.eq)
#### 20.5.4 Access to program-wide memory_resource objects [[mem.res.global]](mem.res.global)
#### 20.5.5 Pool resource classes [[mem.res.pool]](mem.res.pool)
#### 20.5.5.1 Classes synchronized_pool_resource and unsynchronized_pool_resource [[mem.res.pool.overview]](mem.res.pool.overview)
#### 20.5.5.2 pool_options data members [[mem.res.pool.options]](mem.res.pool.options)
#### 20.5.5.3 Constructors and destructors [[mem.res.pool.ctor]](mem.res.pool.ctor)
#### 20.5.5.4 Members [[mem.res.pool.mem]](mem.res.pool.mem)
#### 20.5.6 Class monotonic_buffer_resource [[mem.res.monotonic.buffer]](mem.res.monotonic.buffer)
#### 20.5.6.1 General [[mem.res.monotonic.buffer.general]](mem.res.monotonic.buffer.general)
#### 20.5.6.2 Constructors and destructor [[mem.res.monotonic.buffer.ctor]](mem.res.monotonic.buffer.ctor)
#### 20.5.6.3 Members [[mem.res.monotonic.buffer.mem]](mem.res.monotonic.buffer.mem)
### 20.6 Class template scoped_allocator_adaptor [[allocator.adaptor]](allocator.adaptor)
#### 20.6.1 Header <scoped_allocator> synopsis [[allocator.adaptor.syn]](allocator.adaptor.syn)
#### 20.6.2 Member types [[allocator.adaptor.types]](allocator.adaptor.types)
#### 20.6.3 Constructors [[allocator.adaptor.cnstr]](allocator.adaptor.cnstr)
#### 20.6.4 Members [[allocator.adaptor.members]](allocator.adaptor.members)
#### 20.6.5 Operators [[scoped.adaptor.operators]](scoped.adaptor.operators)
## 21 Metaprogramming library [[meta]](#meta)[[meta]](meta)
### 21.1 General [[meta.general]](meta.general)
### 21.2 Compile-time integer sequences [[intseq]](intseq)
#### 21.2.1 General [[intseq.general]](intseq.general)
#### 21.2.2 Class template integer_sequence [[intseq.intseq]](intseq.intseq)
#### 21.2.3 Alias template make_integer_sequence [[intseq.make]](intseq.make)
### 21.3 Metaprogramming and type traits [[type.traits]](type.traits)
#### 21.3.1 General [[type.traits.general]](type.traits.general)
#### 21.3.2 Requirements [[meta.rqmts]](meta.rqmts)
#### 21.3.3 Header <type_traits> synopsis [[meta.type.synop]](meta.type.synop)
#### 21.3.4 Helper classes [[meta.help]](meta.help)
#### 21.3.5 Class template constant_wrapper [[const.wrap.class]](const.wrap.class)
#### 21.3.6 Unary type traits [[meta.unary]](meta.unary)
#### 21.3.6.1 General [[meta.unary.general]](meta.unary.general)
#### 21.3.6.2 Primary type categories [[meta.unary.cat]](meta.unary.cat)
#### 21.3.6.3 Composite type traits [[meta.unary.comp]](meta.unary.comp)
#### 21.3.6.4 Type properties [[meta.unary.prop]](meta.unary.prop)
#### 21.3.7 Type property queries [[meta.unary.prop.query]](meta.unary.prop.query)
#### 21.3.8 Relationships between types [[meta.rel]](meta.rel)
#### 21.3.9 Transformations between types [[meta.trans]](meta.trans)
#### 21.3.9.1 General [[meta.trans.general]](meta.trans.general)
#### 21.3.9.2 Const-volatile modifications [[meta.trans.cv]](meta.trans.cv)
#### 21.3.9.3 Reference modifications [[meta.trans.ref]](meta.trans.ref)
#### 21.3.9.4 Sign modifications [[meta.trans.sign]](meta.trans.sign)
#### 21.3.9.5 Array modifications [[meta.trans.arr]](meta.trans.arr)
#### 21.3.9.6 Pointer modifications [[meta.trans.ptr]](meta.trans.ptr)
#### 21.3.9.7 Other transformations [[meta.trans.other]](meta.trans.other)
#### 21.3.10 Logical operator traits [[meta.logical]](meta.logical)
#### 21.3.11 Member relationships [[meta.member]](meta.member)
#### 21.3.12 Constant evaluation context [[meta.const.eval]](meta.const.eval)
### 21.4 Reflection [[meta.reflection]](meta.reflection)
#### 21.4.1 Header <meta> synopsis [[meta.syn]](meta.syn)
#### 21.4.2 Checking string literals [[meta.string.literal]](meta.string.literal)
#### 21.4.3 Promoting to static storage strings [[meta.define.static]](meta.define.static)
#### 21.4.4 Class exception [[meta.reflection.exception]](meta.reflection.exception)
#### 21.4.5 Operator representations [[meta.reflection.operators]](meta.reflection.operators)
#### 21.4.6 Reflection names and locations [[meta.reflection.names]](meta.reflection.names)
#### 21.4.7 Reflection queries [[meta.reflection.queries]](meta.reflection.queries)
#### 21.4.8 Access control context [[meta.reflection.access.context]](meta.reflection.access.context)
#### 21.4.9 Member accessibility queries [[meta.reflection.access.queries]](meta.reflection.access.queries)
#### 21.4.10 Reflection member queries [[meta.reflection.member.queries]](meta.reflection.member.queries)
#### 21.4.11 Reflection layout queries [[meta.reflection.layout]](meta.reflection.layout)
#### 21.4.12 Value extraction [[meta.reflection.extract]](meta.reflection.extract)
#### 21.4.13 Reflection substitution [[meta.reflection.substitute]](meta.reflection.substitute)
#### 21.4.14 Expression result reflection [[meta.reflection.result]](meta.reflection.result)
#### 21.4.15 Promoting to static storage arrays [[meta.reflection.array]](meta.reflection.array)
#### 21.4.16 Reflection class definition generation [[meta.reflection.define.aggregate]](meta.reflection.define.aggregate)
#### 21.4.17 Reflection type traits [[meta.reflection.traits]](meta.reflection.traits)
#### 21.4.18 Annotation reflection [[meta.reflection.annotation]](meta.reflection.annotation)
### 21.5 Compile-time rational arithmetic [[ratio]](ratio)
#### 21.5.1 General [[ratio.general]](ratio.general)
#### 21.5.2 Header <ratio> synopsis [[ratio.syn]](ratio.syn)
#### 21.5.3 Class template ratio [[ratio.ratio]](ratio.ratio)
#### 21.5.4 Arithmetic on ratios [[ratio.arithmetic]](ratio.arithmetic)
#### 21.5.5 Comparison of ratios [[ratio.comparison]](ratio.comparison)
#### 21.5.6 SI types for ratio [[ratio.si]](ratio.si)
## 22 General utilities library [[utilities]](#utilities)[[utilities]](utilities)
### 22.1 General [[utilities.general]](utilities.general)
### 22.2 Utility components [[utility]](utility)
#### 22.2.1 Header <utility> synopsis [[utility.syn]](utility.syn)
#### 22.2.2 swap [[utility.swap]](utility.swap)
#### 22.2.3 exchange [[utility.exchange]](utility.exchange)
#### 22.2.4 Forward/move helpers [[forward]](forward)
#### 22.2.5 Function template as_const [[utility.as.const]](utility.as.const)
#### 22.2.6 Function template declval [[declval]](declval)
#### 22.2.7 Integer comparison functions [[utility.intcmp]](utility.intcmp)
#### 22.2.8 Function template to_underlying [[utility.underlying]](utility.underlying)
#### 22.2.9 Undefined behavior [[utility.undefined]](utility.undefined)
### 22.3 Pairs [[pairs]](pairs)
#### 22.3.1 General [[pairs.general]](pairs.general)
#### 22.3.2 Class template pair [[pairs.pair]](pairs.pair)
#### 22.3.3 Specialized algorithms [[pairs.spec]](pairs.spec)
#### 22.3.4 Tuple-like access to pair [[pair.astuple]](pair.astuple)
#### 22.3.5 Piecewise construction [[pair.piecewise]](pair.piecewise)
### 22.4 Tuples [[tuple]](tuple)
#### 22.4.1 General [[tuple.general]](tuple.general)
#### 22.4.2 Header <tuple> synopsis [[tuple.syn]](tuple.syn)
#### 22.4.3 Concept *tuple-like* [[tuple.like]](tuple.like)
#### 22.4.4 Class template tuple [[tuple.tuple]](tuple.tuple)
#### 22.4.4.1 General [[tuple.tuple.general]](tuple.tuple.general)
#### 22.4.4.2 Construction [[tuple.cnstr]](tuple.cnstr)
#### 22.4.4.3 Assignment [[tuple.assign]](tuple.assign)
#### 22.4.4.4 swap [[tuple.swap]](tuple.swap)
#### 22.4.5 Tuple creation functions [[tuple.creation]](tuple.creation)
#### 22.4.6 Calling a function with a tuple of arguments [[tuple.apply]](tuple.apply)
#### 22.4.7 Tuple helper classes [[tuple.helper]](tuple.helper)
#### 22.4.8 Element access [[tuple.elem]](tuple.elem)
#### 22.4.9 Relational operators [[tuple.rel]](tuple.rel)
#### 22.4.10 common_reference related specializations [[tuple.common.ref]](tuple.common.ref)
#### 22.4.11 Tuple traits [[tuple.traits]](tuple.traits)
#### 22.4.12 Tuple specialized algorithms [[tuple.special]](tuple.special)
### 22.5 Optional objects [[optional]](optional)
#### 22.5.1 General [[optional.general]](optional.general)
#### 22.5.2 Header <optional> synopsis [[optional.syn]](optional.syn)
#### 22.5.3 Class template optional [[optional.optional]](optional.optional)
#### 22.5.3.1 General [[optional.optional.general]](optional.optional.general)
#### 22.5.3.2 Constructors [[optional.ctor]](optional.ctor)
#### 22.5.3.3 Destructor [[optional.dtor]](optional.dtor)
#### 22.5.3.4 Assignment [[optional.assign]](optional.assign)
#### 22.5.3.5 Swap [[optional.swap]](optional.swap)
#### 22.5.3.6 Iterator support [[optional.iterators]](optional.iterators)
#### 22.5.3.7 Observers [[optional.observe]](optional.observe)
#### 22.5.3.8 Monadic operations [[optional.monadic]](optional.monadic)
#### 22.5.3.9 Modifiers [[optional.mod]](optional.mod)
#### 22.5.4 Partial specialization of optional for reference types [[optional.optional.ref]](optional.optional.ref)
#### 22.5.4.1 General [[optional.optional.ref.general]](optional.optional.ref.general)
#### 22.5.4.2 Constructors [[optional.ref.ctor]](optional.ref.ctor)
#### 22.5.4.3 Assignment [[optional.ref.assign]](optional.ref.assign)
#### 22.5.4.4 Swap [[optional.ref.swap]](optional.ref.swap)
#### 22.5.4.5 Iterator support [[optional.ref.iterators]](optional.ref.iterators)
#### 22.5.4.6 Observers [[optional.ref.observe]](optional.ref.observe)
#### 22.5.4.7 Monadic operations [[optional.ref.monadic]](optional.ref.monadic)
#### 22.5.4.8 Modifiers [[optional.ref.mod]](optional.ref.mod)
#### 22.5.4.9 Exposition only helper functions [[optional.ref.expos]](optional.ref.expos)
#### 22.5.5 No-value state indicator [[optional.nullopt]](optional.nullopt)
#### 22.5.6 Class bad_optional_access [[optional.bad.access]](optional.bad.access)
#### 22.5.7 Relational operators [[optional.relops]](optional.relops)
#### 22.5.8 Comparison with nullopt [[optional.nullops]](optional.nullops)
#### 22.5.9 Comparison with T [[optional.comp.with.t]](optional.comp.with.t)
#### 22.5.10 Specialized algorithms [[optional.specalg]](optional.specalg)
#### 22.5.11 Hash support [[optional.hash]](optional.hash)
### 22.6 Variants [[variant]](variant)
#### 22.6.1 General [[variant.general]](variant.general)
#### 22.6.2 Header <variant> synopsis [[variant.syn]](variant.syn)
#### 22.6.3 Class template variant [[variant.variant]](variant.variant)
#### 22.6.3.1 General [[variant.variant.general]](variant.variant.general)
#### 22.6.3.2 Constructors [[variant.ctor]](variant.ctor)
#### 22.6.3.3 Destructor [[variant.dtor]](variant.dtor)
#### 22.6.3.4 Assignment [[variant.assign]](variant.assign)
#### 22.6.3.5 Modifiers [[variant.mod]](variant.mod)
#### 22.6.3.6 Value status [[variant.status]](variant.status)
#### 22.6.3.7 Swap [[variant.swap]](variant.swap)
#### 22.6.4 variant helper classes [[variant.helper]](variant.helper)
#### 22.6.5 Value access [[variant.get]](variant.get)
#### 22.6.6 Relational operators [[variant.relops]](variant.relops)
#### 22.6.7 Visitation [[variant.visit]](variant.visit)
#### 22.6.8 Class monostate [[variant.monostate]](variant.monostate)
#### 22.6.9 monostate relational operators [[variant.monostate.relops]](variant.monostate.relops)
#### 22.6.10 Specialized algorithms [[variant.specalg]](variant.specalg)
#### 22.6.11 Class bad_variant_access [[variant.bad.access]](variant.bad.access)
#### 22.6.12 Hash support [[variant.hash]](variant.hash)
### 22.7 Storage for any type [[any]](any)
#### 22.7.1 General [[any.general]](any.general)
#### 22.7.2 Header <any> synopsis [[any.synop]](any.synop)
#### 22.7.3 Class bad_any_cast [[any.bad.any.cast]](any.bad.any.cast)
#### 22.7.4 Class any [[any.class]](any.class)
#### 22.7.4.1 General [[any.class.general]](any.class.general)
#### 22.7.4.2 Construction and destruction [[any.cons]](any.cons)
#### 22.7.4.3 Assignment [[any.assign]](any.assign)
#### 22.7.4.4 Modifiers [[any.modifiers]](any.modifiers)
#### 22.7.4.5 Observers [[any.observers]](any.observers)
#### 22.7.5 Non-member functions [[any.nonmembers]](any.nonmembers)
### 22.8 Expected objects [[expected]](expected)
#### 22.8.1 General [[expected.general]](expected.general)
#### 22.8.2 Header <expected> synopsis [[expected.syn]](expected.syn)
#### 22.8.3 Class template unexpected [[expected.unexpected]](expected.unexpected)
#### 22.8.3.1 General [[expected.un.general]](expected.un.general)
#### 22.8.3.2 Constructors [[expected.un.cons]](expected.un.cons)
#### 22.8.3.3 Observers [[expected.un.obs]](expected.un.obs)
#### 22.8.3.4 Swap [[expected.un.swap]](expected.un.swap)
#### 22.8.3.5 Equality operator [[expected.un.eq]](expected.un.eq)
#### 22.8.4 Class template bad_expected_access [[expected.bad]](expected.bad)
#### 22.8.5 Class template specialization bad_expected_access<void> [[expected.bad.void]](expected.bad.void)
#### 22.8.6 Class template expected [[expected.expected]](expected.expected)
#### 22.8.6.1 General [[expected.object.general]](expected.object.general)
#### 22.8.6.2 Constructors [[expected.object.cons]](expected.object.cons)
#### 22.8.6.3 Destructor [[expected.object.dtor]](expected.object.dtor)
#### 22.8.6.4 Assignment [[expected.object.assign]](expected.object.assign)
#### 22.8.6.5 Swap [[expected.object.swap]](expected.object.swap)
#### 22.8.6.6 Observers [[expected.object.obs]](expected.object.obs)
#### 22.8.6.7 Monadic operations [[expected.object.monadic]](expected.object.monadic)
#### 22.8.6.8 Equality operators [[expected.object.eq]](expected.object.eq)
#### 22.8.7 Partial specialization of expected for void types [[expected.void]](expected.void)
#### 22.8.7.1 General [[expected.void.general]](expected.void.general)
#### 22.8.7.2 Constructors [[expected.void.cons]](expected.void.cons)
#### 22.8.7.3 Destructor [[expected.void.dtor]](expected.void.dtor)
#### 22.8.7.4 Assignment [[expected.void.assign]](expected.void.assign)
#### 22.8.7.5 Swap [[expected.void.swap]](expected.void.swap)
#### 22.8.7.6 Observers [[expected.void.obs]](expected.void.obs)
#### 22.8.7.7 Monadic operations [[expected.void.monadic]](expected.void.monadic)
#### 22.8.7.8 Equality operators [[expected.void.eq]](expected.void.eq)
### 22.9 Bitsets [[bitset]](bitset)
#### 22.9.1 Header <bitset> synopsis [[bitset.syn]](bitset.syn)
#### 22.9.2 Class template bitset [[template.bitset]](template.bitset)
#### 22.9.2.1 General [[template.bitset.general]](template.bitset.general)
#### 22.9.2.2 Constructors [[bitset.cons]](bitset.cons)
#### 22.9.2.3 Members [[bitset.members]](bitset.members)
#### 22.9.3 bitset hash support [[bitset.hash]](bitset.hash)
#### 22.9.4 bitset operators [[bitset.operators]](bitset.operators)
### 22.10 Function objects [[function.objects]](function.objects)
#### 22.10.1 General [[function.objects.general]](function.objects.general)
#### 22.10.2 Header <functional> synopsis [[functional.syn]](functional.syn)
#### 22.10.3 Definitions [[func.def]](func.def)
#### 22.10.4 Requirements [[func.require]](func.require)
#### 22.10.5 invoke functions [[func.invoke]](func.invoke)
#### 22.10.6 Class template reference_wrapper [[refwrap]](refwrap)
#### 22.10.6.1 General [[refwrap.general]](refwrap.general)
#### 22.10.6.2 Constructors [[refwrap.const]](refwrap.const)
#### 22.10.6.3 Assignment [[refwrap.assign]](refwrap.assign)
#### 22.10.6.4 Access [[refwrap.access]](refwrap.access)
#### 22.10.6.5 Invocation [[refwrap.invoke]](refwrap.invoke)
#### 22.10.6.6 Comparisons [[refwrap.comparisons]](refwrap.comparisons)
#### 22.10.6.7 Helper functions [[refwrap.helpers]](refwrap.helpers)
#### 22.10.6.8 common_reference related specializations [[refwrap.common.ref]](refwrap.common.ref)
#### 22.10.7 Arithmetic operations [[arithmetic.operations]](arithmetic.operations)
#### 22.10.7.1 General [[arithmetic.operations.general]](arithmetic.operations.general)
#### 22.10.7.2 Class template plus [[arithmetic.operations.plus]](arithmetic.operations.plus)
#### 22.10.7.3 Class template minus [[arithmetic.operations.minus]](arithmetic.operations.minus)
#### 22.10.7.4 Class template multiplies [[arithmetic.operations.multiplies]](arithmetic.operations.multiplies)
#### 22.10.7.5 Class template divides [[arithmetic.operations.divides]](arithmetic.operations.divides)
#### 22.10.7.6 Class template modulus [[arithmetic.operations.modulus]](arithmetic.operations.modulus)
#### 22.10.7.7 Class template negate [[arithmetic.operations.negate]](arithmetic.operations.negate)
#### 22.10.8 Comparisons [[comparisons]](comparisons)
#### 22.10.8.1 General [[comparisons.general]](comparisons.general)
#### 22.10.8.2 Class template equal_to [[comparisons.equal.to]](comparisons.equal.to)
#### 22.10.8.3 Class template not_equal_to [[comparisons.not.equal.to]](comparisons.not.equal.to)
#### 22.10.8.4 Class template greater [[comparisons.greater]](comparisons.greater)
#### 22.10.8.5 Class template less [[comparisons.less]](comparisons.less)
#### 22.10.8.6 Class template greater_equal [[comparisons.greater.equal]](comparisons.greater.equal)
#### 22.10.8.7 Class template less_equal [[comparisons.less.equal]](comparisons.less.equal)
#### 22.10.8.8 Class compare_three_way [[comparisons.three.way]](comparisons.three.way)
#### 22.10.9 Concept-constrained comparisons [[range.cmp]](range.cmp)
#### 22.10.10 Logical operations [[logical.operations]](logical.operations)
#### 22.10.10.1 General [[logical.operations.general]](logical.operations.general)
#### 22.10.10.2 Class template logical_and [[logical.operations.and]](logical.operations.and)
#### 22.10.10.3 Class template logical_or [[logical.operations.or]](logical.operations.or)
#### 22.10.10.4 Class template logical_not [[logical.operations.not]](logical.operations.not)
#### 22.10.11 Bitwise operations [[bitwise.operations]](bitwise.operations)
#### 22.10.11.1 General [[bitwise.operations.general]](bitwise.operations.general)
#### 22.10.11.2 Class template bit_and [[bitwise.operations.and]](bitwise.operations.and)
#### 22.10.11.3 Class template bit_or [[bitwise.operations.or]](bitwise.operations.or)
#### 22.10.11.4 Class template bit_xor [[bitwise.operations.xor]](bitwise.operations.xor)
#### 22.10.11.5 Class template bit_not [[bitwise.operations.not]](bitwise.operations.not)
#### 22.10.12 Class identity [[func.identity]](func.identity)
#### 22.10.13 Function template not_fn [[func.not.fn]](func.not.fn)
#### 22.10.14 Function templates bind_front and bind_back [[func.bind.partial]](func.bind.partial)
#### 22.10.15 Function object binders [[func.bind]](func.bind)
#### 22.10.15.1 General [[func.bind.general]](func.bind.general)
#### 22.10.15.2 Class template is_bind_expression [[func.bind.isbind]](func.bind.isbind)
#### 22.10.15.3 Class template is_placeholder [[func.bind.isplace]](func.bind.isplace)
#### 22.10.15.4 Function template bind [[func.bind.bind]](func.bind.bind)
#### 22.10.15.5 Placeholders [[func.bind.place]](func.bind.place)
#### 22.10.16 Function template mem_fn [[func.memfn]](func.memfn)
#### 22.10.17 Polymorphic function wrappers [[func.wrap]](func.wrap)
#### 22.10.17.1 General [[func.wrap.general]](func.wrap.general)
#### 22.10.17.2 Class bad_function_call [[func.wrap.badcall]](func.wrap.badcall)
#### 22.10.17.3 Class template function [[func.wrap.func]](func.wrap.func)
#### 22.10.17.3.1 General [[func.wrap.func.general]](func.wrap.func.general)
#### 22.10.17.3.2 Constructors and destructor [[func.wrap.func.con]](func.wrap.func.con)
#### 22.10.17.3.3 Modifiers [[func.wrap.func.mod]](func.wrap.func.mod)
#### 22.10.17.3.4 Capacity [[func.wrap.func.cap]](func.wrap.func.cap)
#### 22.10.17.3.5 Invocation [[func.wrap.func.inv]](func.wrap.func.inv)
#### 22.10.17.3.6 Target access [[func.wrap.func.targ]](func.wrap.func.targ)
#### 22.10.17.3.7 Null pointer comparison operator functions [[func.wrap.func.nullptr]](func.wrap.func.nullptr)
#### 22.10.17.3.8 Specialized algorithms [[func.wrap.func.alg]](func.wrap.func.alg)
#### 22.10.17.4 Move-only wrapper [[func.wrap.move]](func.wrap.move)
#### 22.10.17.4.1 General [[func.wrap.move.general]](func.wrap.move.general)
#### 22.10.17.4.2 Class template move_only_function [[func.wrap.move.class]](func.wrap.move.class)
#### 22.10.17.4.3 Constructors, assignments, and destructor [[func.wrap.move.ctor]](func.wrap.move.ctor)
#### 22.10.17.4.4 Invocation [[func.wrap.move.inv]](func.wrap.move.inv)
#### 22.10.17.4.5 Utility [[func.wrap.move.util]](func.wrap.move.util)
#### 22.10.17.5 Copyable wrapper [[func.wrap.copy]](func.wrap.copy)
#### 22.10.17.5.1 General [[func.wrap.copy.general]](func.wrap.copy.general)
#### 22.10.17.5.2 Class template copyable_function [[func.wrap.copy.class]](func.wrap.copy.class)
#### 22.10.17.5.3 Constructors, assignments, and destructor [[func.wrap.copy.ctor]](func.wrap.copy.ctor)
#### 22.10.17.5.4 Invocation [[func.wrap.copy.inv]](func.wrap.copy.inv)
#### 22.10.17.5.5 Utility [[func.wrap.copy.util]](func.wrap.copy.util)
#### 22.10.17.6 Non-owning wrapper [[func.wrap.ref]](func.wrap.ref)
#### 22.10.17.6.1 General [[func.wrap.ref.general]](func.wrap.ref.general)
#### 22.10.17.6.2 Class template function_ref [[func.wrap.ref.class]](func.wrap.ref.class)
#### 22.10.17.6.3 Constructors and assignment operators [[func.wrap.ref.ctor]](func.wrap.ref.ctor)
#### 22.10.17.6.4 Invocation [[func.wrap.ref.inv]](func.wrap.ref.inv)
#### 22.10.17.6.5 Deduction guides [[func.wrap.ref.deduct]](func.wrap.ref.deduct)
#### 22.10.18 Searchers [[func.search]](func.search)
#### 22.10.18.1 General [[func.search.general]](func.search.general)
#### 22.10.18.2 Class template default_searcher [[func.search.default]](func.search.default)
#### 22.10.18.3 Class template boyer_moore_searcher [[func.search.bm]](func.search.bm)
#### 22.10.18.4 Class template boyer_moore_horspool_searcher [[func.search.bmh]](func.search.bmh)
#### 22.10.19 Class template hash [[unord.hash]](unord.hash)
### 22.11 Bit manipulation [[bit]](bit)
#### 22.11.1 General [[bit.general]](bit.general)
#### 22.11.2 Header <bit> synopsis [[bit.syn]](bit.syn)
#### 22.11.3 Function template bit_cast [[bit.cast]](bit.cast)
#### 22.11.4 byteswap [[bit.byteswap]](bit.byteswap)
#### 22.11.5 Integral powers of 2 [[bit.pow.two]](bit.pow.two)
#### 22.11.6 Rotating [[bit.rotate]](bit.rotate)
#### 22.11.7 Counting [[bit.count]](bit.count)
#### 22.11.8 Endian [[bit.endian]](bit.endian)
### 22.12 Header <stdbit.h> synopsis [[stdbit.h.syn]](stdbit.h.syn)
## 23 Containers library [[containers]](#containers)[[containers]](containers)
### 23.1 General [[containers.general]](containers.general)
### 23.2 Requirements [[container.requirements]](container.requirements)
#### 23.2.1 Preamble [[container.requirements.pre]](container.requirements.pre)
#### 23.2.2 General containers [[container.requirements.general]](container.requirements.general)
#### 23.2.2.1 Introduction [[container.intro.reqmts]](container.intro.reqmts)
#### 23.2.2.2 Container requirements [[container.reqmts]](container.reqmts)
#### 23.2.2.3 Reversible container requirements [[container.rev.reqmts]](container.rev.reqmts)
#### 23.2.2.4 Optional container requirements [[container.opt.reqmts]](container.opt.reqmts)
#### 23.2.2.5 Allocator-aware containers [[container.alloc.reqmts]](container.alloc.reqmts)
#### 23.2.3 Container data races [[container.requirements.dataraces]](container.requirements.dataraces)
#### 23.2.4 Sequence containers [[sequence.reqmts]](sequence.reqmts)
#### 23.2.5 Node handles [[container.node]](container.node)
#### 23.2.5.1 Overview [[container.node.overview]](container.node.overview)
#### 23.2.5.2 Constructors, copy, and assignment [[container.node.cons]](container.node.cons)
#### 23.2.5.3 Destructor [[container.node.dtor]](container.node.dtor)
#### 23.2.5.4 Observers [[container.node.observers]](container.node.observers)
#### 23.2.5.5 Modifiers [[container.node.modifiers]](container.node.modifiers)
#### 23.2.6 Insert return type [[container.insert.return]](container.insert.return)
#### 23.2.7 Associative containers [[associative.reqmts]](associative.reqmts)
#### 23.2.7.1 General [[associative.reqmts.general]](associative.reqmts.general)
#### 23.2.7.2 Exception safety guarantees [[associative.reqmts.except]](associative.reqmts.except)
#### 23.2.8 Unordered associative containers [[unord.req]](unord.req)
#### 23.2.8.1 General [[unord.req.general]](unord.req.general)
#### 23.2.8.2 Exception safety guarantees [[unord.req.except]](unord.req.except)
### 23.3 Sequence containers [[sequences]](sequences)
#### 23.3.1 General [[sequences.general]](sequences.general)
#### 23.3.2 Header <array> synopsis [[array.syn]](array.syn)
#### 23.3.3 Class template array [[array]](array)
#### 23.3.3.1 Overview [[array.overview]](array.overview)
#### 23.3.3.2 Constructors, copy, and assignment [[array.cons]](array.cons)
#### 23.3.3.3 Member functions [[array.members]](array.members)
#### 23.3.3.4 Specialized algorithms [[array.special]](array.special)
#### 23.3.3.5 Zero-sized arrays [[array.zero]](array.zero)
#### 23.3.3.6 Array creation functions [[array.creation]](array.creation)
#### 23.3.3.7 Tuple interface [[array.tuple]](array.tuple)
#### 23.3.4 Header <deque> synopsis [[deque.syn]](deque.syn)
#### 23.3.5 Class template deque [[deque]](deque)
#### 23.3.5.1 Overview [[deque.overview]](deque.overview)
#### 23.3.5.2 Constructors, copy, and assignment [[deque.cons]](deque.cons)
#### 23.3.5.3 Capacity [[deque.capacity]](deque.capacity)
#### 23.3.5.4 Modifiers [[deque.modifiers]](deque.modifiers)
#### 23.3.5.5 Erasure [[deque.erasure]](deque.erasure)
#### 23.3.6 Header <forward_list> synopsis [[forward.list.syn]](forward.list.syn)
#### 23.3.7 Class template forward_list [[forward.list]](forward.list)
#### 23.3.7.1 Overview [[forward.list.overview]](forward.list.overview)
#### 23.3.7.2 Constructors, copy, and assignment [[forward.list.cons]](forward.list.cons)
#### 23.3.7.3 Iterators [[forward.list.iter]](forward.list.iter)
#### 23.3.7.4 Element access [[forward.list.access]](forward.list.access)
#### 23.3.7.5 Modifiers [[forward.list.modifiers]](forward.list.modifiers)
#### 23.3.7.6 Operations [[forward.list.ops]](forward.list.ops)
#### 23.3.7.7 Erasure [[forward.list.erasure]](forward.list.erasure)
#### 23.3.8 Header <hive> synopsis [[hive.syn]](hive.syn)
#### 23.3.9 Class template hive [[hive]](hive)
#### 23.3.9.1 Overview [[hive.overview]](hive.overview)
#### 23.3.9.2 Constructors, copy, and assignment [[hive.cons]](hive.cons)
#### 23.3.9.3 Capacity [[hive.capacity]](hive.capacity)
#### 23.3.9.4 Modifiers [[hive.modifiers]](hive.modifiers)
#### 23.3.9.5 Operations [[hive.operations]](hive.operations)
#### 23.3.9.6 Erasure [[hive.erasure]](hive.erasure)
#### 23.3.10 Header <list> synopsis [[list.syn]](list.syn)
#### 23.3.11 Class template list [[list]](list)
#### 23.3.11.1 Overview [[list.overview]](list.overview)
#### 23.3.11.2 Constructors, copy, and assignment [[list.cons]](list.cons)
#### 23.3.11.3 Capacity [[list.capacity]](list.capacity)
#### 23.3.11.4 Modifiers [[list.modifiers]](list.modifiers)
#### 23.3.11.5 Operations [[list.ops]](list.ops)
#### 23.3.11.6 Erasure [[list.erasure]](list.erasure)
#### 23.3.12 Header <vector> synopsis [[vector.syn]](vector.syn)
#### 23.3.13 Class template vector [[vector]](vector)
#### 23.3.13.1 Overview [[vector.overview]](vector.overview)
#### 23.3.13.2 Constructors [[vector.cons]](vector.cons)
#### 23.3.13.3 Capacity [[vector.capacity]](vector.capacity)
#### 23.3.13.4 Data [[vector.data]](vector.data)
#### 23.3.13.5 Modifiers [[vector.modifiers]](vector.modifiers)
#### 23.3.13.6 Erasure [[vector.erasure]](vector.erasure)
#### 23.3.14 Specialization of vector for bool [[vector.bool]](vector.bool)
#### 23.3.14.1 Partial class template specialization vector<bool, Allocator> [[vector.bool.pspc]](vector.bool.pspc)
#### 23.3.14.2 Formatter specialization for vector<bool> [[vector.bool.fmt]](vector.bool.fmt)
#### 23.3.15 Header <inplace_vector> synopsis [[inplace.vector.syn]](inplace.vector.syn)
#### 23.3.16 Class template inplace_vector [[inplace.vector]](inplace.vector)
#### 23.3.16.1 Overview [[inplace.vector.overview]](inplace.vector.overview)
#### 23.3.16.2 Constructors [[inplace.vector.cons]](inplace.vector.cons)
#### 23.3.16.3 Capacity [[inplace.vector.capacity]](inplace.vector.capacity)
#### 23.3.16.4 Data [[inplace.vector.data]](inplace.vector.data)
#### 23.3.16.5 Modifiers [[inplace.vector.modifiers]](inplace.vector.modifiers)
#### 23.3.16.6 Erasure [[inplace.vector.erasure]](inplace.vector.erasure)
### 23.4 Associative containers [[associative]](associative)
#### 23.4.1 General [[associative.general]](associative.general)
#### 23.4.2 Header <map> synopsis [[associative.map.syn]](associative.map.syn)
#### 23.4.3 Class template map [[map]](map)
#### 23.4.3.1 Overview [[map.overview]](map.overview)
#### 23.4.3.2 Constructors, copy, and assignment [[map.cons]](map.cons)
#### 23.4.3.3 Element access [[map.access]](map.access)
#### 23.4.3.4 Modifiers [[map.modifiers]](map.modifiers)
#### 23.4.3.5 Erasure [[map.erasure]](map.erasure)
#### 23.4.4 Class template multimap [[multimap]](multimap)
#### 23.4.4.1 Overview [[multimap.overview]](multimap.overview)
#### 23.4.4.2 Constructors [[multimap.cons]](multimap.cons)
#### 23.4.4.3 Modifiers [[multimap.modifiers]](multimap.modifiers)
#### 23.4.4.4 Erasure [[multimap.erasure]](multimap.erasure)
#### 23.4.5 Header <set> synopsis [[associative.set.syn]](associative.set.syn)
#### 23.4.6 Class template set [[set]](set)
#### 23.4.6.1 Overview [[set.overview]](set.overview)
#### 23.4.6.2 Constructors, copy, and assignment [[set.cons]](set.cons)
#### 23.4.6.3 Erasure [[set.erasure]](set.erasure)
#### 23.4.6.4 Modifiers [[set.modifiers]](set.modifiers)
#### 23.4.7 Class template multiset [[multiset]](multiset)
#### 23.4.7.1 Overview [[multiset.overview]](multiset.overview)
#### 23.4.7.2 Constructors [[multiset.cons]](multiset.cons)
#### 23.4.7.3 Erasure [[multiset.erasure]](multiset.erasure)
### 23.5 Unordered associative containers [[unord]](unord)
#### 23.5.1 General [[unord.general]](unord.general)
#### 23.5.2 Header <unordered_map> synopsis [[unord.map.syn]](unord.map.syn)
#### 23.5.3 Class template unordered_map [[unord.map]](unord.map)
#### 23.5.3.1 Overview [[unord.map.overview]](unord.map.overview)
#### 23.5.3.2 Constructors [[unord.map.cnstr]](unord.map.cnstr)
#### 23.5.3.3 Element access [[unord.map.elem]](unord.map.elem)
#### 23.5.3.4 Modifiers [[unord.map.modifiers]](unord.map.modifiers)
#### 23.5.3.5 Erasure [[unord.map.erasure]](unord.map.erasure)
#### 23.5.4 Class template unordered_multimap [[unord.multimap]](unord.multimap)
#### 23.5.4.1 Overview [[unord.multimap.overview]](unord.multimap.overview)
#### 23.5.4.2 Constructors [[unord.multimap.cnstr]](unord.multimap.cnstr)
#### 23.5.4.3 Modifiers [[unord.multimap.modifiers]](unord.multimap.modifiers)
#### 23.5.4.4 Erasure [[unord.multimap.erasure]](unord.multimap.erasure)
#### 23.5.5 Header <unordered_set> synopsis [[unord.set.syn]](unord.set.syn)
#### 23.5.6 Class template unordered_set [[unord.set]](unord.set)
#### 23.5.6.1 Overview [[unord.set.overview]](unord.set.overview)
#### 23.5.6.2 Constructors [[unord.set.cnstr]](unord.set.cnstr)
#### 23.5.6.3 Erasure [[unord.set.erasure]](unord.set.erasure)
#### 23.5.6.4 Modifiers [[unord.set.modifiers]](unord.set.modifiers)
#### 23.5.7 Class template unordered_multiset [[unord.multiset]](unord.multiset)
#### 23.5.7.1 Overview [[unord.multiset.overview]](unord.multiset.overview)
#### 23.5.7.2 Constructors [[unord.multiset.cnstr]](unord.multiset.cnstr)
#### 23.5.7.3 Erasure [[unord.multiset.erasure]](unord.multiset.erasure)
### 23.6 Container adaptors [[container.adaptors]](container.adaptors)
#### 23.6.1 General [[container.adaptors.general]](container.adaptors.general)
#### 23.6.2 Header <queue> synopsis [[queue.syn]](queue.syn)
#### 23.6.3 Class template queue [[queue]](queue)
#### 23.6.3.1 Definition [[queue.defn]](queue.defn)
#### 23.6.3.2 Constructors [[queue.cons]](queue.cons)
#### 23.6.3.3 Constructors with allocators [[queue.cons.alloc]](queue.cons.alloc)
#### 23.6.3.4 Modifiers [[queue.mod]](queue.mod)
#### 23.6.3.5 Operators [[queue.ops]](queue.ops)
#### 23.6.3.6 Specialized algorithms [[queue.special]](queue.special)
#### 23.6.4 Class template priority_queue [[priority.queue]](priority.queue)
#### 23.6.4.1 Overview [[priqueue.overview]](priqueue.overview)
#### 23.6.4.2 Constructors [[priqueue.cons]](priqueue.cons)
#### 23.6.4.3 Constructors with allocators [[priqueue.cons.alloc]](priqueue.cons.alloc)
#### 23.6.4.4 Members [[priqueue.members]](priqueue.members)
#### 23.6.4.5 Specialized algorithms [[priqueue.special]](priqueue.special)
#### 23.6.5 Header <stack> synopsis [[stack.syn]](stack.syn)
#### 23.6.6 Class template stack [[stack]](stack)
#### 23.6.6.1 General [[stack.general]](stack.general)
#### 23.6.6.2 Definition [[stack.defn]](stack.defn)
#### 23.6.6.3 Constructors [[stack.cons]](stack.cons)
#### 23.6.6.4 Constructors with allocators [[stack.cons.alloc]](stack.cons.alloc)
#### 23.6.6.5 Modifiers [[stack.mod]](stack.mod)
#### 23.6.6.6 Operators [[stack.ops]](stack.ops)
#### 23.6.6.7 Specialized algorithms [[stack.special]](stack.special)
#### 23.6.7 Header <flat_map> synopsis [[flat.map.syn]](flat.map.syn)
#### 23.6.8 Class template flat_map [[flat.map]](flat.map)
#### 23.6.8.1 Overview [[flat.map.overview]](flat.map.overview)
#### 23.6.8.2 Definition [[flat.map.defn]](flat.map.defn)
#### 23.6.8.3 Constructors [[flat.map.cons]](flat.map.cons)
#### 23.6.8.4 Constructors with allocators [[flat.map.cons.alloc]](flat.map.cons.alloc)
#### 23.6.8.5 Capacity [[flat.map.capacity]](flat.map.capacity)
#### 23.6.8.6 Access [[flat.map.access]](flat.map.access)
#### 23.6.8.7 Modifiers [[flat.map.modifiers]](flat.map.modifiers)
#### 23.6.8.8 Erasure [[flat.map.erasure]](flat.map.erasure)
#### 23.6.9 Class template flat_multimap [[flat.multimap]](flat.multimap)
#### 23.6.9.1 Overview [[flat.multimap.overview]](flat.multimap.overview)
#### 23.6.9.2 Definition [[flat.multimap.defn]](flat.multimap.defn)
#### 23.6.9.3 Constructors [[flat.multimap.cons]](flat.multimap.cons)
#### 23.6.9.4 Constructors with allocators [[flat.multimap.cons.alloc]](flat.multimap.cons.alloc)
#### 23.6.9.5 Erasure [[flat.multimap.erasure]](flat.multimap.erasure)
#### 23.6.10 Header <flat_set> synopsis [[flat.set.syn]](flat.set.syn)
#### 23.6.11 Class template flat_set [[flat.set]](flat.set)
#### 23.6.11.1 Overview [[flat.set.overview]](flat.set.overview)
#### 23.6.11.2 Definition [[flat.set.defn]](flat.set.defn)
#### 23.6.11.3 Constructors [[flat.set.cons]](flat.set.cons)
#### 23.6.11.4 Constructors with allocators [[flat.set.cons.alloc]](flat.set.cons.alloc)
#### 23.6.11.5 Modifiers [[flat.set.modifiers]](flat.set.modifiers)
#### 23.6.11.6 Erasure [[flat.set.erasure]](flat.set.erasure)
#### 23.6.12 Class template flat_multiset [[flat.multiset]](flat.multiset)
#### 23.6.12.1 Overview [[flat.multiset.overview]](flat.multiset.overview)
#### 23.6.12.2 Definition [[flat.multiset.defn]](flat.multiset.defn)
#### 23.6.12.3 Constructors [[flat.multiset.cons]](flat.multiset.cons)
#### 23.6.12.4 Constructors with allocators [[flat.multiset.cons.alloc]](flat.multiset.cons.alloc)
#### 23.6.12.5 Modifiers [[flat.multiset.modifiers]](flat.multiset.modifiers)
#### 23.6.12.6 Erasure [[flat.multiset.erasure]](flat.multiset.erasure)
#### 23.6.13 Container adaptors formatting [[container.adaptors.format]](container.adaptors.format)
### 23.7 Views [[views]](views)
#### 23.7.1 General [[views.general]](views.general)
#### 23.7.2 Contiguous access [[views.contiguous]](views.contiguous)
#### 23.7.2.1 Header <span> synopsis [[span.syn]](span.syn)
#### 23.7.2.2 Class template span [[views.span]](views.span)
#### 23.7.2.2.1 Overview [[span.overview]](span.overview)
#### 23.7.2.2.2 Constructors, copy, and assignment [[span.cons]](span.cons)
#### 23.7.2.2.3 Deduction guides [[span.deduct]](span.deduct)
#### 23.7.2.2.4 Subviews [[span.sub]](span.sub)
#### 23.7.2.2.5 Observers [[span.obs]](span.obs)
#### 23.7.2.2.6 Element access [[span.elem]](span.elem)
#### 23.7.2.2.7 Iterator support [[span.iterators]](span.iterators)
#### 23.7.2.3 Views of object representation [[span.objectrep]](span.objectrep)
#### 23.7.3 Multidimensional access [[views.multidim]](views.multidim)
#### 23.7.3.1 Overview [[mdspan.overview]](mdspan.overview)
#### 23.7.3.2 Header <mdspan> synopsis [[mdspan.syn]](mdspan.syn)
#### 23.7.3.3 Class template extents [[mdspan.extents]](mdspan.extents)
#### 23.7.3.3.1 Overview [[mdspan.extents.overview]](mdspan.extents.overview)
#### 23.7.3.3.2 Exposition-only helpers [[mdspan.extents.expo]](mdspan.extents.expo)
#### 23.7.3.3.3 Constructors [[mdspan.extents.cons]](mdspan.extents.cons)
#### 23.7.3.3.4 Observers of the multidimensional index space [[mdspan.extents.obs]](mdspan.extents.obs)
#### 23.7.3.3.5 Comparison operators [[mdspan.extents.cmp]](mdspan.extents.cmp)
#### 23.7.3.3.6 Alias template dextents [[mdspan.extents.dextents]](mdspan.extents.dextents)
#### 23.7.3.3.7 Alias template dims [[mdspan.extents.dims]](mdspan.extents.dims)
#### 23.7.3.4 Layout mapping [[mdspan.layout]](mdspan.layout)
#### 23.7.3.4.1 General [[mdspan.layout.general]](mdspan.layout.general)
#### 23.7.3.4.2 Requirements [[mdspan.layout.reqmts]](mdspan.layout.reqmts)
#### 23.7.3.4.3 Layout mapping policy requirements [[mdspan.layout.policy.reqmts]](mdspan.layout.policy.reqmts)
#### 23.7.3.4.4 Layout mapping policies [[mdspan.layout.policy.overview]](mdspan.layout.policy.overview)
#### 23.7.3.4.5 Class template layout_left::mapping [[mdspan.layout.left]](mdspan.layout.left)
#### 23.7.3.4.5.1 Overview [[mdspan.layout.left.overview]](mdspan.layout.left.overview)
#### 23.7.3.4.5.2 Constructors [[mdspan.layout.left.cons]](mdspan.layout.left.cons)
#### 23.7.3.4.5.3 Observers [[mdspan.layout.left.obs]](mdspan.layout.left.obs)
#### 23.7.3.4.6 Class template layout_right::mapping [[mdspan.layout.right]](mdspan.layout.right)
#### 23.7.3.4.6.1 Overview [[mdspan.layout.right.overview]](mdspan.layout.right.overview)
#### 23.7.3.4.6.2 Constructors [[mdspan.layout.right.cons]](mdspan.layout.right.cons)
#### 23.7.3.4.6.3 Observers [[mdspan.layout.right.obs]](mdspan.layout.right.obs)
#### 23.7.3.4.7 Class template layout_stride::mapping [[mdspan.layout.stride]](mdspan.layout.stride)
#### 23.7.3.4.7.1 Overview [[mdspan.layout.stride.overview]](mdspan.layout.stride.overview)
#### 23.7.3.4.7.2 Exposition-only helpers [[mdspan.layout.stride.expo]](mdspan.layout.stride.expo)
#### 23.7.3.4.7.3 Constructors [[mdspan.layout.stride.cons]](mdspan.layout.stride.cons)
#### 23.7.3.4.7.4 Observers [[mdspan.layout.stride.obs]](mdspan.layout.stride.obs)
#### 23.7.3.4.8 Class template layout_left_padded::mapping [[mdspan.layout.leftpad]](mdspan.layout.leftpad)
#### 23.7.3.4.8.1 Overview [[mdspan.layout.leftpad.overview]](mdspan.layout.leftpad.overview)
#### 23.7.3.4.8.2 Exposition-only members [[mdspan.layout.leftpad.expo]](mdspan.layout.leftpad.expo)
#### 23.7.3.4.8.3 Constructors [[mdspan.layout.leftpad.cons]](mdspan.layout.leftpad.cons)
#### 23.7.3.4.8.4 Observers [[mdspan.layout.leftpad.obs]](mdspan.layout.leftpad.obs)
#### 23.7.3.4.9 Class template layout_right_padded::mapping [[mdspan.layout.rightpad]](mdspan.layout.rightpad)
#### 23.7.3.4.9.1 Overview [[mdspan.layout.rightpad.overview]](mdspan.layout.rightpad.overview)
#### 23.7.3.4.9.2 Exposition-only members [[mdspan.layout.rightpad.expo]](mdspan.layout.rightpad.expo)
#### 23.7.3.4.9.3 Constructors [[mdspan.layout.rightpad.cons]](mdspan.layout.rightpad.cons)
#### 23.7.3.4.9.4 Observers [[mdspan.layout.rightpad.obs]](mdspan.layout.rightpad.obs)
#### 23.7.3.5 Accessor policy [[mdspan.accessor]](mdspan.accessor)
#### 23.7.3.5.1 General [[mdspan.accessor.general]](mdspan.accessor.general)
#### 23.7.3.5.2 Requirements [[mdspan.accessor.reqmts]](mdspan.accessor.reqmts)
#### 23.7.3.5.3 Class template default_accessor [[mdspan.accessor.default]](mdspan.accessor.default)
#### 23.7.3.5.3.1 Overview [[mdspan.accessor.default.overview]](mdspan.accessor.default.overview)
#### 23.7.3.5.3.2 Members [[mdspan.accessor.default.members]](mdspan.accessor.default.members)
#### 23.7.3.5.4 Class template aligned_accessor [[mdspan.accessor.aligned]](mdspan.accessor.aligned)
#### 23.7.3.5.4.1 Overview [[mdspan.accessor.aligned.overview]](mdspan.accessor.aligned.overview)
#### 23.7.3.5.4.2 Members [[mdspan.accessor.aligned.members]](mdspan.accessor.aligned.members)
#### 23.7.3.6 Class template mdspan [[mdspan.mdspan]](mdspan.mdspan)
#### 23.7.3.6.1 Overview [[mdspan.mdspan.overview]](mdspan.mdspan.overview)
#### 23.7.3.6.2 Constructors [[mdspan.mdspan.cons]](mdspan.mdspan.cons)
#### 23.7.3.6.3 Members [[mdspan.mdspan.members]](mdspan.mdspan.members)
#### 23.7.3.7 submdspan [[mdspan.sub]](mdspan.sub)
#### 23.7.3.7.1 Overview [[mdspan.sub.overview]](mdspan.sub.overview)
#### 23.7.3.7.2 strided_slice [[mdspan.sub.strided.slice]](mdspan.sub.strided.slice)
#### 23.7.3.7.3 submdspan_mapping_result [[mdspan.sub.map.result]](mdspan.sub.map.result)
#### 23.7.3.7.4 Exposition-only helpers [[mdspan.sub.helpers]](mdspan.sub.helpers)
#### 23.7.3.7.5 submdspan_extents function [[mdspan.sub.extents]](mdspan.sub.extents)
#### 23.7.3.7.6 Specializations of submdspan_mapping [[mdspan.sub.map]](mdspan.sub.map)
#### 23.7.3.7.6.1 Common [[mdspan.sub.map.common]](mdspan.sub.map.common)
#### 23.7.3.7.6.2 layout_left specialization of submdspan_mapping [[mdspan.sub.map.left]](mdspan.sub.map.left)
#### 23.7.3.7.6.3 layout_right specialization of submdspan_mapping [[mdspan.sub.map.right]](mdspan.sub.map.right)
#### 23.7.3.7.6.4 layout_stride specialization of submdspan_mapping [[mdspan.sub.map.stride]](mdspan.sub.map.stride)
#### 23.7.3.7.6.5 layout_left_padded specialization of submdspan_mapping [[mdspan.sub.map.leftpad]](mdspan.sub.map.leftpad)
#### 23.7.3.7.6.6 layout_right_padded specialization of submdspan_mapping [[mdspan.sub.map.rightpad]](mdspan.sub.map.rightpad)
#### 23.7.3.7.7 submdspan function template [[mdspan.sub.sub]](mdspan.sub.sub)
## 24 Iterators library [[iterators]](#iterators)[[iterators]](iterators)
### 24.1 General [[iterators.general]](iterators.general)
### 24.2 Header <iterator> synopsis [[iterator.synopsis]](iterator.synopsis)
### 24.3 Iterator requirements [[iterator.requirements]](iterator.requirements)
#### 24.3.1 General [[iterator.requirements.general]](iterator.requirements.general)
#### 24.3.2 Associated types [[iterator.assoc.types]](iterator.assoc.types)
#### 24.3.2.1 Incrementable traits [[incrementable.traits]](incrementable.traits)
#### 24.3.2.2 Indirectly readable traits [[readable.traits]](readable.traits)
#### 24.3.2.3 Iterator traits [[iterator.traits]](iterator.traits)
#### 24.3.3 Customization point objects [[iterator.cust]](iterator.cust)
#### 24.3.3.1 ranges::iter_move [[iterator.cust.move]](iterator.cust.move)
#### 24.3.3.2 ranges::iter_swap [[iterator.cust.swap]](iterator.cust.swap)
#### 24.3.4 Iterator concepts [[iterator.concepts]](iterator.concepts)
#### 24.3.4.1 General [[iterator.concepts.general]](iterator.concepts.general)
#### 24.3.4.2 Concept indirectly_readable [[iterator.concept.readable]](iterator.concept.readable)
#### 24.3.4.3 Concept indirectly_writable [[iterator.concept.writable]](iterator.concept.writable)
#### 24.3.4.4 Concept weakly_incrementable [[iterator.concept.winc]](iterator.concept.winc)
#### 24.3.4.5 Concept incrementable [[iterator.concept.inc]](iterator.concept.inc)
#### 24.3.4.6 Concept input_or_output_iterator [[iterator.concept.iterator]](iterator.concept.iterator)
#### 24.3.4.7 Concept sentinel_for [[iterator.concept.sentinel]](iterator.concept.sentinel)
#### 24.3.4.8 Concept sized_sentinel_for [[iterator.concept.sizedsentinel]](iterator.concept.sizedsentinel)
#### 24.3.4.9 Concept input_iterator [[iterator.concept.input]](iterator.concept.input)
#### 24.3.4.10 Concept output_iterator [[iterator.concept.output]](iterator.concept.output)
#### 24.3.4.11 Concept forward_iterator [[iterator.concept.forward]](iterator.concept.forward)
#### 24.3.4.12 Concept bidirectional_iterator [[iterator.concept.bidir]](iterator.concept.bidir)
#### 24.3.4.13 Concept random_access_iterator [[iterator.concept.random.access]](iterator.concept.random.access)
#### 24.3.4.14 Concept contiguous_iterator [[iterator.concept.contiguous]](iterator.concept.contiguous)
#### 24.3.5 C++17 iterator requirements [[iterator.cpp17]](iterator.cpp17)
#### 24.3.5.1 General [[iterator.cpp17.general]](iterator.cpp17.general)
#### 24.3.5.2 *Cpp17Iterator* [[iterator.iterators]](iterator.iterators)
#### 24.3.5.3 Input iterators [[input.iterators]](input.iterators)
#### 24.3.5.4 Output iterators [[output.iterators]](output.iterators)
#### 24.3.5.5 Forward iterators [[forward.iterators]](forward.iterators)
#### 24.3.5.6 Bidirectional iterators [[bidirectional.iterators]](bidirectional.iterators)
#### 24.3.5.7 Random access iterators [[random.access.iterators]](random.access.iterators)
#### 24.3.6 Indirect callable requirements [[indirectcallable]](indirectcallable)
#### 24.3.6.1 General [[indirectcallable.general]](indirectcallable.general)
#### 24.3.6.2 Indirect callable traits [[indirectcallable.traits]](indirectcallable.traits)
#### 24.3.6.3 Indirect callables [[indirectcallable.indirectinvocable]](indirectcallable.indirectinvocable)
#### 24.3.6.4 Alias template projected [[projected]](projected)
#### 24.3.7 Common algorithm requirements [[alg.req]](alg.req)
#### 24.3.7.1 General [[alg.req.general]](alg.req.general)
#### 24.3.7.2 Concept indirectly_movable [[alg.req.ind.move]](alg.req.ind.move)
#### 24.3.7.3 Concept indirectly_copyable [[alg.req.ind.copy]](alg.req.ind.copy)
#### 24.3.7.4 Concept indirectly_swappable [[alg.req.ind.swap]](alg.req.ind.swap)
#### 24.3.7.5 Concept indirectly_comparable [[alg.req.ind.cmp]](alg.req.ind.cmp)
#### 24.3.7.6 Concept permutable [[alg.req.permutable]](alg.req.permutable)
#### 24.3.7.7 Concept mergeable [[alg.req.mergeable]](alg.req.mergeable)
#### 24.3.7.8 Concept sortable [[alg.req.sortable]](alg.req.sortable)
### 24.4 Iterator primitives [[iterator.primitives]](iterator.primitives)
#### 24.4.1 General [[iterator.primitives.general]](iterator.primitives.general)
#### 24.4.2 Standard iterator tags [[std.iterator.tags]](std.iterator.tags)
#### 24.4.3 Iterator operations [[iterator.operations]](iterator.operations)
#### 24.4.4 Range iterator operations [[range.iter.ops]](range.iter.ops)
#### 24.4.4.1 General [[range.iter.ops.general]](range.iter.ops.general)
#### 24.4.4.2 ranges::advance [[range.iter.op.advance]](range.iter.op.advance)
#### 24.4.4.3 ranges::distance [[range.iter.op.distance]](range.iter.op.distance)
#### 24.4.4.4 ranges::next [[range.iter.op.next]](range.iter.op.next)
#### 24.4.4.5 ranges::prev [[range.iter.op.prev]](range.iter.op.prev)
### 24.5 Iterator adaptors [[predef.iterators]](predef.iterators)
#### 24.5.1 Reverse iterators [[reverse.iterators]](reverse.iterators)
#### 24.5.1.1 General [[reverse.iterators.general]](reverse.iterators.general)
#### 24.5.1.2 Class template reverse_iterator [[reverse.iterator]](reverse.iterator)
#### 24.5.1.3 Requirements [[reverse.iter.requirements]](reverse.iter.requirements)
#### 24.5.1.4 Construction and assignment [[reverse.iter.cons]](reverse.iter.cons)
#### 24.5.1.5 Conversion [[reverse.iter.conv]](reverse.iter.conv)
#### 24.5.1.6 Element access [[reverse.iter.elem]](reverse.iter.elem)
#### 24.5.1.7 Navigation [[reverse.iter.nav]](reverse.iter.nav)
#### 24.5.1.8 Comparisons [[reverse.iter.cmp]](reverse.iter.cmp)
#### 24.5.1.9 Non-member functions [[reverse.iter.nonmember]](reverse.iter.nonmember)
#### 24.5.2 Insert iterators [[insert.iterators]](insert.iterators)
#### 24.5.2.1 General [[insert.iterators.general]](insert.iterators.general)
#### 24.5.2.2 Class template back_insert_iterator [[back.insert.iterator]](back.insert.iterator)
#### 24.5.2.2.1 General [[back.insert.iter.general]](back.insert.iter.general)
#### 24.5.2.2.2 Operations [[back.insert.iter.ops]](back.insert.iter.ops)
#### 24.5.2.2.3 back_inserter [[back.inserter]](back.inserter)
#### 24.5.2.3 Class template front_insert_iterator [[front.insert.iterator]](front.insert.iterator)
#### 24.5.2.3.1 General [[front.insert.iter.general]](front.insert.iter.general)
#### 24.5.2.3.2 Operations [[front.insert.iter.ops]](front.insert.iter.ops)
#### 24.5.2.3.3 front_inserter [[front.inserter]](front.inserter)
#### 24.5.2.4 Class template insert_iterator [[insert.iterator]](insert.iterator)
#### 24.5.2.4.1 General [[insert.iter.general]](insert.iter.general)
#### 24.5.2.4.2 Operations [[insert.iter.ops]](insert.iter.ops)
#### 24.5.2.4.3 inserter [[inserter]](inserter)
#### 24.5.3 Constant iterators and sentinels [[const.iterators]](const.iterators)
#### 24.5.3.1 General [[const.iterators.general]](const.iterators.general)
#### 24.5.3.2 Alias templates [[const.iterators.alias]](const.iterators.alias)
#### 24.5.3.3 Class template basic_const_iterator [[const.iterators.iterator]](const.iterators.iterator)
#### 24.5.3.4 Member types [[const.iterators.types]](const.iterators.types)
#### 24.5.3.5 Operations [[const.iterators.ops]](const.iterators.ops)
#### 24.5.4 Move iterators and sentinels [[move.iterators]](move.iterators)
#### 24.5.4.1 General [[move.iterators.general]](move.iterators.general)
#### 24.5.4.2 Class template move_iterator [[move.iterator]](move.iterator)
#### 24.5.4.3 Requirements [[move.iter.requirements]](move.iter.requirements)
#### 24.5.4.4 Construction and assignment [[move.iter.cons]](move.iter.cons)
#### 24.5.4.5 Conversion [[move.iter.op.conv]](move.iter.op.conv)
#### 24.5.4.6 Element access [[move.iter.elem]](move.iter.elem)
#### 24.5.4.7 Navigation [[move.iter.nav]](move.iter.nav)
#### 24.5.4.8 Comparisons [[move.iter.op.comp]](move.iter.op.comp)
#### 24.5.4.9 Non-member functions [[move.iter.nonmember]](move.iter.nonmember)
#### 24.5.4.10 Class template move_sentinel [[move.sentinel]](move.sentinel)
#### 24.5.4.11 Operations [[move.sent.ops]](move.sent.ops)
#### 24.5.5 Common iterators [[iterators.common]](iterators.common)
#### 24.5.5.1 Class template common_iterator [[common.iterator]](common.iterator)
#### 24.5.5.2 Associated types [[common.iter.types]](common.iter.types)
#### 24.5.5.3 Constructors and conversions [[common.iter.const]](common.iter.const)
#### 24.5.5.4 Accessors [[common.iter.access]](common.iter.access)
#### 24.5.5.5 Navigation [[common.iter.nav]](common.iter.nav)
#### 24.5.5.6 Comparisons [[common.iter.cmp]](common.iter.cmp)
#### 24.5.5.7 Customizations [[common.iter.cust]](common.iter.cust)
#### 24.5.6 Default sentinel [[default.sentinel]](default.sentinel)
#### 24.5.7 Counted iterators [[iterators.counted]](iterators.counted)
#### 24.5.7.1 Class template counted_iterator [[counted.iterator]](counted.iterator)
#### 24.5.7.2 Constructors and conversions [[counted.iter.const]](counted.iter.const)
#### 24.5.7.3 Accessors [[counted.iter.access]](counted.iter.access)
#### 24.5.7.4 Element access [[counted.iter.elem]](counted.iter.elem)
#### 24.5.7.5 Navigation [[counted.iter.nav]](counted.iter.nav)
#### 24.5.7.6 Comparisons [[counted.iter.cmp]](counted.iter.cmp)
#### 24.5.7.7 Customizations [[counted.iter.cust]](counted.iter.cust)
#### 24.5.8 Unreachable sentinel [[unreachable.sentinel]](unreachable.sentinel)
### 24.6 Stream iterators [[stream.iterators]](stream.iterators)
#### 24.6.1 General [[stream.iterators.general]](stream.iterators.general)
#### 24.6.2 Class template istream_iterator [[istream.iterator]](istream.iterator)
#### 24.6.2.1 General [[istream.iterator.general]](istream.iterator.general)
#### 24.6.2.2 Constructors and destructor [[istream.iterator.cons]](istream.iterator.cons)
#### 24.6.2.3 Operations [[istream.iterator.ops]](istream.iterator.ops)
#### 24.6.3 Class template ostream_iterator [[ostream.iterator]](ostream.iterator)
#### 24.6.3.1 General [[ostream.iterator.general]](ostream.iterator.general)
#### 24.6.3.2 Constructors and destructor [[ostream.iterator.cons.des]](ostream.iterator.cons.des)
#### 24.6.3.3 Operations [[ostream.iterator.ops]](ostream.iterator.ops)
#### 24.6.4 Class template istreambuf_iterator [[istreambuf.iterator]](istreambuf.iterator)
#### 24.6.4.1 General [[istreambuf.iterator.general]](istreambuf.iterator.general)
#### 24.6.4.2 Class istreambuf_iterator::*proxy* [[istreambuf.iterator.proxy]](istreambuf.iterator.proxy)
#### 24.6.4.3 Constructors [[istreambuf.iterator.cons]](istreambuf.iterator.cons)
#### 24.6.4.4 Operations [[istreambuf.iterator.ops]](istreambuf.iterator.ops)
#### 24.6.5 Class template ostreambuf_iterator [[ostreambuf.iterator]](ostreambuf.iterator)
#### 24.6.5.1 General [[ostreambuf.iterator.general]](ostreambuf.iterator.general)
#### 24.6.5.2 Constructors [[ostreambuf.iter.cons]](ostreambuf.iter.cons)
#### 24.6.5.3 Operations [[ostreambuf.iter.ops]](ostreambuf.iter.ops)
### 24.7 Range access [[iterator.range]](iterator.range)
## 25 Ranges library [[ranges]](#ranges)[[ranges]](ranges)
### 25.1 General [[ranges.general]](ranges.general)
### 25.2 Header <ranges> synopsis [[ranges.syn]](ranges.syn)
### 25.3 Range access [[range.access]](range.access)
#### 25.3.1 General [[range.access.general]](range.access.general)
#### 25.3.2 ranges::begin [[range.access.begin]](range.access.begin)
#### 25.3.3 ranges::end [[range.access.end]](range.access.end)
#### 25.3.4 ranges::cbegin [[range.access.cbegin]](range.access.cbegin)
#### 25.3.5 ranges::cend [[range.access.cend]](range.access.cend)
#### 25.3.6 ranges::rbegin [[range.access.rbegin]](range.access.rbegin)
#### 25.3.7 ranges::rend [[range.access.rend]](range.access.rend)
#### 25.3.8 ranges::crbegin [[range.access.crbegin]](range.access.crbegin)
#### 25.3.9 ranges::crend [[range.access.crend]](range.access.crend)
#### 25.3.10 ranges::size [[range.prim.size]](range.prim.size)
#### 25.3.11 ranges::ssize [[range.prim.ssize]](range.prim.ssize)
#### 25.3.12 ranges::reserve_hint [[range.prim.size.hint]](range.prim.size.hint)
#### 25.3.13 ranges::empty [[range.prim.empty]](range.prim.empty)
#### 25.3.14 ranges::data [[range.prim.data]](range.prim.data)
#### 25.3.15 ranges::cdata [[range.prim.cdata]](range.prim.cdata)
### 25.4 Range requirements [[range.req]](range.req)
#### 25.4.1 General [[range.req.general]](range.req.general)
#### 25.4.2 Ranges [[range.range]](range.range)
#### 25.4.3 Approximately sized ranges [[range.approximately.sized]](range.approximately.sized)
#### 25.4.4 Sized ranges [[range.sized]](range.sized)
#### 25.4.5 Views [[range.view]](range.view)
#### 25.4.6 Other range refinements [[range.refinements]](range.refinements)
### 25.5 Range utilities [[range.utility]](range.utility)
#### 25.5.1 General [[range.utility.general]](range.utility.general)
#### 25.5.2 Helper concepts [[range.utility.helpers]](range.utility.helpers)
#### 25.5.3 View interface [[view.interface]](view.interface)
#### 25.5.3.1 General [[view.interface.general]](view.interface.general)
#### 25.5.3.2 Members [[view.interface.members]](view.interface.members)
#### 25.5.4 Sub-ranges [[range.subrange]](range.subrange)
#### 25.5.4.1 General [[range.subrange.general]](range.subrange.general)
#### 25.5.4.2 Constructors and conversions [[range.subrange.ctor]](range.subrange.ctor)
#### 25.5.4.3 Accessors [[range.subrange.access]](range.subrange.access)
#### 25.5.5 Dangling iterator handling [[range.dangling]](range.dangling)
#### 25.5.6 Class template elements_of [[range.elementsof]](range.elementsof)
#### 25.5.7 Range conversions [[range.utility.conv]](range.utility.conv)
#### 25.5.7.1 General [[range.utility.conv.general]](range.utility.conv.general)
#### 25.5.7.2 ranges::to [[range.utility.conv.to]](range.utility.conv.to)
#### 25.5.7.3 ranges::to adaptors [[range.utility.conv.adaptors]](range.utility.conv.adaptors)
### 25.6 Range factories [[range.factories]](range.factories)
#### 25.6.1 General [[range.factories.general]](range.factories.general)
#### 25.6.2 Empty view [[range.empty]](range.empty)
#### 25.6.2.1 Overview [[range.empty.overview]](range.empty.overview)
#### 25.6.2.2 Class template empty_view [[range.empty.view]](range.empty.view)
#### 25.6.3 Single view [[range.single]](range.single)
#### 25.6.3.1 Overview [[range.single.overview]](range.single.overview)
#### 25.6.3.2 Class template single_view [[range.single.view]](range.single.view)
#### 25.6.4 Iota view [[range.iota]](range.iota)
#### 25.6.4.1 Overview [[range.iota.overview]](range.iota.overview)
#### 25.6.4.2 Class template iota_view [[range.iota.view]](range.iota.view)
#### 25.6.4.3 Class iota_view::*iterator* [[range.iota.iterator]](range.iota.iterator)
#### 25.6.4.4 Class iota_view::*sentinel* [[range.iota.sentinel]](range.iota.sentinel)
#### 25.6.5 Repeat view [[range.repeat]](range.repeat)
#### 25.6.5.1 Overview [[range.repeat.overview]](range.repeat.overview)
#### 25.6.5.2 Class template repeat_view [[range.repeat.view]](range.repeat.view)
#### 25.6.5.3 Class repeat_view::*iterator* [[range.repeat.iterator]](range.repeat.iterator)
#### 25.6.6 Istream view [[range.istream]](range.istream)
#### 25.6.6.1 Overview [[range.istream.overview]](range.istream.overview)
#### 25.6.6.2 Class template basic_istream_view [[range.istream.view]](range.istream.view)
#### 25.6.6.3 Class basic_istream_view::*iterator* [[range.istream.iterator]](range.istream.iterator)
### 25.7 Range adaptors [[range.adaptors]](range.adaptors)
#### 25.7.1 General [[range.adaptors.general]](range.adaptors.general)
#### 25.7.2 Range adaptor objects [[range.adaptor.object]](range.adaptor.object)
#### 25.7.3 Movable wrapper [[range.move.wrap]](range.move.wrap)
#### 25.7.4 Non-propagating cache [[range.nonprop.cache]](range.nonprop.cache)
#### 25.7.5 Range adaptor helpers [[range.adaptor.helpers]](range.adaptor.helpers)
#### 25.7.6 All view [[range.all]](range.all)
#### 25.7.6.1 General [[range.all.general]](range.all.general)
#### 25.7.6.2 Class template ref_view [[range.ref.view]](range.ref.view)
#### 25.7.6.3 Class template owning_view [[range.owning.view]](range.owning.view)
#### 25.7.7 As rvalue view [[range.as.rvalue]](range.as.rvalue)
#### 25.7.7.1 Overview [[range.as.rvalue.overview]](range.as.rvalue.overview)
#### 25.7.7.2 Class template as_rvalue_view [[range.as.rvalue.view]](range.as.rvalue.view)
#### 25.7.8 Filter view [[range.filter]](range.filter)
#### 25.7.8.1 Overview [[range.filter.overview]](range.filter.overview)
#### 25.7.8.2 Class template filter_view [[range.filter.view]](range.filter.view)
#### 25.7.8.3 Class filter_view::*iterator* [[range.filter.iterator]](range.filter.iterator)
#### 25.7.8.4 Class filter_view::*sentinel* [[range.filter.sentinel]](range.filter.sentinel)
#### 25.7.9 Transform view [[range.transform]](range.transform)
#### 25.7.9.1 Overview [[range.transform.overview]](range.transform.overview)
#### 25.7.9.2 Class template transform_view [[range.transform.view]](range.transform.view)
#### 25.7.9.3 Class template transform_view::*iterator* [[range.transform.iterator]](range.transform.iterator)
#### 25.7.9.4 Class template transform_view::*sentinel* [[range.transform.sentinel]](range.transform.sentinel)
#### 25.7.10 Take view [[range.take]](range.take)
#### 25.7.10.1 Overview [[range.take.overview]](range.take.overview)
#### 25.7.10.2 Class template take_view [[range.take.view]](range.take.view)
#### 25.7.10.3 Class template take_view::*sentinel* [[range.take.sentinel]](range.take.sentinel)
#### 25.7.11 Take while view [[range.take.while]](range.take.while)
#### 25.7.11.1 Overview [[range.take.while.overview]](range.take.while.overview)
#### 25.7.11.2 Class template take_while_view [[range.take.while.view]](range.take.while.view)
#### 25.7.11.3 Class template take_while_view::*sentinel* [[range.take.while.sentinel]](range.take.while.sentinel)
#### 25.7.12 Drop view [[range.drop]](range.drop)
#### 25.7.12.1 Overview [[range.drop.overview]](range.drop.overview)
#### 25.7.12.2 Class template drop_view [[range.drop.view]](range.drop.view)
#### 25.7.13 Drop while view [[range.drop.while]](range.drop.while)
#### 25.7.13.1 Overview [[range.drop.while.overview]](range.drop.while.overview)
#### 25.7.13.2 Class template drop_while_view [[range.drop.while.view]](range.drop.while.view)
#### 25.7.14 Join view [[range.join]](range.join)
#### 25.7.14.1 Overview [[range.join.overview]](range.join.overview)
#### 25.7.14.2 Class template join_view [[range.join.view]](range.join.view)
#### 25.7.14.3 Class template join_view::*iterator* [[range.join.iterator]](range.join.iterator)
#### 25.7.14.4 Class template join_view::*sentinel* [[range.join.sentinel]](range.join.sentinel)
#### 25.7.15 Join with view [[range.join.with]](range.join.with)
#### 25.7.15.1 Overview [[range.join.with.overview]](range.join.with.overview)
#### 25.7.15.2 Class template join_with_view [[range.join.with.view]](range.join.with.view)
#### 25.7.15.3 Class template join_with_view::*iterator* [[range.join.with.iterator]](range.join.with.iterator)
#### 25.7.15.4 Class template join_with_view::*sentinel* [[range.join.with.sentinel]](range.join.with.sentinel)
#### 25.7.16 Lazy split view [[range.lazy.split]](range.lazy.split)
#### 25.7.16.1 Overview [[range.lazy.split.overview]](range.lazy.split.overview)
#### 25.7.16.2 Class template lazy_split_view [[range.lazy.split.view]](range.lazy.split.view)
#### 25.7.16.3 Class template lazy_split_view::*outer-iterator* [[range.lazy.split.outer]](range.lazy.split.outer)
#### 25.7.16.4 Class lazy_split_view::*outer-iterator*::value_type [[range.lazy.split.outer.value]](range.lazy.split.outer.value)
#### 25.7.16.5 Class template lazy_split_view::*inner-iterator* [[range.lazy.split.inner]](range.lazy.split.inner)
#### 25.7.17 Split view [[range.split]](range.split)
#### 25.7.17.1 Overview [[range.split.overview]](range.split.overview)
#### 25.7.17.2 Class template split_view [[range.split.view]](range.split.view)
#### 25.7.17.3 Class split_view::*iterator* [[range.split.iterator]](range.split.iterator)
#### 25.7.17.4 Class split_view::*sentinel* [[range.split.sentinel]](range.split.sentinel)
#### 25.7.18 Concat view [[range.concat]](range.concat)
#### 25.7.18.1 Overview [[range.concat.overview]](range.concat.overview)
#### 25.7.18.2 Class template concat_view [[range.concat.view]](range.concat.view)
#### 25.7.18.3 Class concat_view::*iterator* [[range.concat.iterator]](range.concat.iterator)
#### 25.7.19 Counted view [[range.counted]](range.counted)
#### 25.7.20 Common view [[range.common]](range.common)
#### 25.7.20.1 Overview [[range.common.overview]](range.common.overview)
#### 25.7.20.2 Class template common_view [[range.common.view]](range.common.view)
#### 25.7.21 Reverse view [[range.reverse]](range.reverse)
#### 25.7.21.1 Overview [[range.reverse.overview]](range.reverse.overview)
#### 25.7.21.2 Class template reverse_view [[range.reverse.view]](range.reverse.view)
#### 25.7.22 As const view [[range.as.const]](range.as.const)
#### 25.7.22.1 Overview [[range.as.const.overview]](range.as.const.overview)
#### 25.7.22.2 Class template as_const_view [[range.as.const.view]](range.as.const.view)
#### 25.7.23 Elements view [[range.elements]](range.elements)
#### 25.7.23.1 Overview [[range.elements.overview]](range.elements.overview)
#### 25.7.23.2 Class template elements_view [[range.elements.view]](range.elements.view)
#### 25.7.23.3 Class template elements_view::*iterator* [[range.elements.iterator]](range.elements.iterator)
#### 25.7.23.4 Class template elements_view::*sentinel* [[range.elements.sentinel]](range.elements.sentinel)
#### 25.7.24 Enumerate view [[range.enumerate]](range.enumerate)
#### 25.7.24.1 Overview [[range.enumerate.overview]](range.enumerate.overview)
#### 25.7.24.2 Class template enumerate_view [[range.enumerate.view]](range.enumerate.view)
#### 25.7.24.3 Class template enumerate_view::*iterator* [[range.enumerate.iterator]](range.enumerate.iterator)
#### 25.7.24.4 Class template enumerate_view::*sentinel* [[range.enumerate.sentinel]](range.enumerate.sentinel)
#### 25.7.25 Zip view [[range.zip]](range.zip)
#### 25.7.25.1 Overview [[range.zip.overview]](range.zip.overview)
#### 25.7.25.2 Class template zip_view [[range.zip.view]](range.zip.view)
#### 25.7.25.3 Class template zip_view::*iterator* [[range.zip.iterator]](range.zip.iterator)
#### 25.7.25.4 Class template zip_view::*sentinel* [[range.zip.sentinel]](range.zip.sentinel)
#### 25.7.26 Zip transform view [[range.zip.transform]](range.zip.transform)
#### 25.7.26.1 Overview [[range.zip.transform.overview]](range.zip.transform.overview)
#### 25.7.26.2 Class template zip_transform_view [[range.zip.transform.view]](range.zip.transform.view)
#### 25.7.26.3 Class template zip_transform_view::*iterator* [[range.zip.transform.iterator]](range.zip.transform.iterator)
#### 25.7.26.4 Class template zip_transform_view::*sentinel* [[range.zip.transform.sentinel]](range.zip.transform.sentinel)
#### 25.7.27 Adjacent view [[range.adjacent]](range.adjacent)
#### 25.7.27.1 Overview [[range.adjacent.overview]](range.adjacent.overview)
#### 25.7.27.2 Class template adjacent_view [[range.adjacent.view]](range.adjacent.view)
#### 25.7.27.3 Class template adjacent_view::*iterator* [[range.adjacent.iterator]](range.adjacent.iterator)
#### 25.7.27.4 Class template adjacent_view::*sentinel* [[range.adjacent.sentinel]](range.adjacent.sentinel)
#### 25.7.28 Adjacent transform view [[range.adjacent.transform]](range.adjacent.transform)
#### 25.7.28.1 Overview [[range.adjacent.transform.overview]](range.adjacent.transform.overview)
#### 25.7.28.2 Class template adjacent_transform_view [[range.adjacent.transform.view]](range.adjacent.transform.view)
#### 25.7.28.3 Class template adjacent_transform_view::*iterator* [[range.adjacent.transform.iterator]](range.adjacent.transform.iterator)
#### 25.7.28.4 Class template adjacent_transform_view::*sentinel* [[range.adjacent.transform.sentinel]](range.adjacent.transform.sentinel)
#### 25.7.29 Chunk view [[range.chunk]](range.chunk)
#### 25.7.29.1 Overview [[range.chunk.overview]](range.chunk.overview)
#### 25.7.29.2 Class template chunk_view for input ranges [[range.chunk.view.input]](range.chunk.view.input)
#### 25.7.29.3 Class chunk_view::*outer-iterator* [[range.chunk.outer.iter]](range.chunk.outer.iter)
#### 25.7.29.4 Class chunk_view::*outer-iterator*::value_type [[range.chunk.outer.value]](range.chunk.outer.value)
#### 25.7.29.5 Class chunk_view::*inner-iterator* [[range.chunk.inner.iter]](range.chunk.inner.iter)
#### 25.7.29.6 Class template chunk_view for forward ranges [[range.chunk.view.fwd]](range.chunk.view.fwd)
#### 25.7.29.7 Class template chunk_view::*iterator* for forward ranges [[range.chunk.fwd.iter]](range.chunk.fwd.iter)
#### 25.7.30 Slide view [[range.slide]](range.slide)
#### 25.7.30.1 Overview [[range.slide.overview]](range.slide.overview)
#### 25.7.30.2 Class template slide_view [[range.slide.view]](range.slide.view)
#### 25.7.30.3 Class template slide_view::*iterator* [[range.slide.iterator]](range.slide.iterator)
#### 25.7.30.4 Class slide_view::*sentinel* [[range.slide.sentinel]](range.slide.sentinel)
#### 25.7.31 Chunk by view [[range.chunk.by]](range.chunk.by)
#### 25.7.31.1 Overview [[range.chunk.by.overview]](range.chunk.by.overview)
#### 25.7.31.2 Class template chunk_by_view [[range.chunk.by.view]](range.chunk.by.view)
#### 25.7.31.3 Class chunk_by_view::*iterator* [[range.chunk.by.iter]](range.chunk.by.iter)
#### 25.7.32 Stride view [[range.stride]](range.stride)
#### 25.7.32.1 Overview [[range.stride.overview]](range.stride.overview)
#### 25.7.32.2 Class template stride_view [[range.stride.view]](range.stride.view)
#### 25.7.32.3 Class template stride_view::*iterator* [[range.stride.iterator]](range.stride.iterator)
#### 25.7.33 Cartesian product view [[range.cartesian]](range.cartesian)
#### 25.7.33.1 Overview [[range.cartesian.overview]](range.cartesian.overview)
#### 25.7.33.2 Class template cartesian_product_view [[range.cartesian.view]](range.cartesian.view)
#### 25.7.33.3 Class template cartesian_product_view::*iterator* [[range.cartesian.iterator]](range.cartesian.iterator)
#### 25.7.34 Cache latest view [[range.cache.latest]](range.cache.latest)
#### 25.7.34.1 Overview [[range.cache.latest.overview]](range.cache.latest.overview)
#### 25.7.34.2 Class template cache_latest_view [[range.cache.latest.view]](range.cache.latest.view)
#### 25.7.34.3 Class cache_latest_view::*iterator* [[range.cache.latest.iterator]](range.cache.latest.iterator)
#### 25.7.34.4 Class cache_latest_view::*sentinel* [[range.cache.latest.sentinel]](range.cache.latest.sentinel)
#### 25.7.35 To input view [[range.to.input]](range.to.input)
#### 25.7.35.1 Overview [[range.to.input.overview]](range.to.input.overview)
#### 25.7.35.2 Class template to_input_view [[range.to.input.view]](range.to.input.view)
#### 25.7.35.3 Class template to_input_view::*iterator* [[range.to.input.iterator]](range.to.input.iterator)
### 25.8 Range generators [[coro.generator]](coro.generator)
#### 25.8.1 Overview [[coroutine.generator.overview]](coroutine.generator.overview)
#### 25.8.2 Header <generator> synopsis [[generator.syn]](generator.syn)
#### 25.8.3 Class template generator [[coro.generator.class]](coro.generator.class)
#### 25.8.4 Members [[coro.generator.members]](coro.generator.members)
#### 25.8.5 Class generator::promise_type [[coro.generator.promise]](coro.generator.promise)
#### 25.8.6 Class generator::*iterator* [[coro.generator.iterator]](coro.generator.iterator)
## 26 Algorithms library [[algorithms]](#algorithms)[[algorithms]](algorithms)
### 26.1 General [[algorithms.general]](algorithms.general)
### 26.2 Algorithms requirements [[algorithms.requirements]](algorithms.requirements)
### 26.3 Parallel algorithms [[algorithms.parallel]](algorithms.parallel)
#### 26.3.1 Preamble [[algorithms.parallel.defns]](algorithms.parallel.defns)
#### 26.3.2 Requirements on user-provided function objects [[algorithms.parallel.user]](algorithms.parallel.user)
#### 26.3.3 Effect of execution policies on algorithm execution [[algorithms.parallel.exec]](algorithms.parallel.exec)
#### 26.3.4 Parallel algorithm exceptions [[algorithms.parallel.exceptions]](algorithms.parallel.exceptions)
#### 26.3.5 Parallel algorithm overloads [[algorithms.parallel.overloads]](algorithms.parallel.overloads)
#### 26.3.6 Execution policies [[execpol]](execpol)
#### 26.3.6.1 General [[execpol.general]](execpol.general)
#### 26.3.6.2 Execution policy type trait [[execpol.type]](execpol.type)
#### 26.3.6.3 Sequenced execution policy [[execpol.seq]](execpol.seq)
#### 26.3.6.4 Parallel execution policy [[execpol.par]](execpol.par)
#### 26.3.6.5 Parallel and unsequenced execution policy [[execpol.parunseq]](execpol.parunseq)
#### 26.3.6.6 Unsequenced execution policy [[execpol.unseq]](execpol.unseq)
#### 26.3.6.7 Execution policy objects [[execpol.objects]](execpol.objects)
### 26.4 Header <algorithm> synopsis [[algorithm.syn]](algorithm.syn)
### 26.5 Algorithm result types [[algorithms.results]](algorithms.results)
### 26.6 Non-modifying sequence operations [[alg.nonmodifying]](alg.nonmodifying)
#### 26.6.1 All of [[alg.all.of]](alg.all.of)
#### 26.6.2 Any of [[alg.any.of]](alg.any.of)
#### 26.6.3 None of [[alg.none.of]](alg.none.of)
#### 26.6.4 Contains [[alg.contains]](alg.contains)
#### 26.6.5 For each [[alg.foreach]](alg.foreach)
#### 26.6.6 Find [[alg.find]](alg.find)
#### 26.6.7 Find last [[alg.find.last]](alg.find.last)
#### 26.6.8 Find end [[alg.find.end]](alg.find.end)
#### 26.6.9 Find first [[alg.find.first.of]](alg.find.first.of)
#### 26.6.10 Adjacent find [[alg.adjacent.find]](alg.adjacent.find)
#### 26.6.11 Count [[alg.count]](alg.count)
#### 26.6.12 Mismatch [[alg.mismatch]](alg.mismatch)
#### 26.6.13 Equal [[alg.equal]](alg.equal)
#### 26.6.14 Is permutation [[alg.is.permutation]](alg.is.permutation)
#### 26.6.15 Search [[alg.search]](alg.search)
#### 26.6.16 Starts with [[alg.starts.with]](alg.starts.with)
#### 26.6.17 Ends with [[alg.ends.with]](alg.ends.with)
#### 26.6.18 Fold [[alg.fold]](alg.fold)
### 26.7 Mutating sequence operations [[alg.modifying.operations]](alg.modifying.operations)
#### 26.7.1 Copy [[alg.copy]](alg.copy)
#### 26.7.2 Move [[alg.move]](alg.move)
#### 26.7.3 Swap [[alg.swap]](alg.swap)
#### 26.7.4 Transform [[alg.transform]](alg.transform)
#### 26.7.5 Replace [[alg.replace]](alg.replace)
#### 26.7.6 Fill [[alg.fill]](alg.fill)
#### 26.7.7 Generate [[alg.generate]](alg.generate)
#### 26.7.8 Remove [[alg.remove]](alg.remove)
#### 26.7.9 Unique [[alg.unique]](alg.unique)
#### 26.7.10 Reverse [[alg.reverse]](alg.reverse)
#### 26.7.11 Rotate [[alg.rotate]](alg.rotate)
#### 26.7.12 Sample [[alg.random.sample]](alg.random.sample)
#### 26.7.13 Shuffle [[alg.random.shuffle]](alg.random.shuffle)
#### 26.7.14 Shift [[alg.shift]](alg.shift)
### 26.8 Sorting and related operations [[alg.sorting]](alg.sorting)
#### 26.8.1 General [[alg.sorting.general]](alg.sorting.general)
#### 26.8.2 Sorting [[alg.sort]](alg.sort)
#### 26.8.2.1 sort [[sort]](sort)
#### 26.8.2.2 stable_sort [[stable.sort]](stable.sort)
#### 26.8.2.3 partial_sort [[partial.sort]](partial.sort)
#### 26.8.2.4 partial_sort_copy [[partial.sort.copy]](partial.sort.copy)
#### 26.8.2.5 is_sorted [[is.sorted]](is.sorted)
#### 26.8.3 Nth element [[alg.nth.element]](alg.nth.element)
#### 26.8.4 Binary search [[alg.binary.search]](alg.binary.search)
#### 26.8.4.1 General [[alg.binary.search.general]](alg.binary.search.general)
#### 26.8.4.2 lower_bound [[lower.bound]](lower.bound)
#### 26.8.4.3 upper_bound [[upper.bound]](upper.bound)
#### 26.8.4.4 equal_range [[equal.range]](equal.range)
#### 26.8.4.5 binary_search [[binary.search]](binary.search)
#### 26.8.5 Partitions [[alg.partitions]](alg.partitions)
#### 26.8.6 Merge [[alg.merge]](alg.merge)
#### 26.8.7 Set operations on sorted structures [[alg.set.operations]](alg.set.operations)
#### 26.8.7.1 General [[alg.set.operations.general]](alg.set.operations.general)
#### 26.8.7.2 includes [[includes]](includes)
#### 26.8.7.3 set_union [[set.union]](set.union)
#### 26.8.7.4 set_intersection [[set.intersection]](set.intersection)
#### 26.8.7.5 set_difference [[set.difference]](set.difference)
#### 26.8.7.6 set_symmetric_difference [[set.symmetric.difference]](set.symmetric.difference)
#### 26.8.8 Heap operations [[alg.heap.operations]](alg.heap.operations)
#### 26.8.8.1 General [[alg.heap.operations.general]](alg.heap.operations.general)
#### 26.8.8.2 push_heap [[push.heap]](push.heap)
#### 26.8.8.3 pop_heap [[pop.heap]](pop.heap)
#### 26.8.8.4 make_heap [[make.heap]](make.heap)
#### 26.8.8.5 sort_heap [[sort.heap]](sort.heap)
#### 26.8.8.6 is_heap [[is.heap]](is.heap)
#### 26.8.9 Minimum and maximum [[alg.min.max]](alg.min.max)
#### 26.8.10 Bounded value [[alg.clamp]](alg.clamp)
#### 26.8.11 Lexicographical comparison [[alg.lex.comparison]](alg.lex.comparison)
#### 26.8.12 Three-way comparison algorithms [[alg.three.way]](alg.three.way)
#### 26.8.13 Permutation generators [[alg.permutation.generators]](alg.permutation.generators)
### 26.9 Header <numeric> synopsis [[numeric.ops.overview]](numeric.ops.overview)
### 26.10 Generalized numeric operations [[numeric.ops]](numeric.ops)
#### 26.10.1 General [[numeric.ops.general]](numeric.ops.general)
#### 26.10.2 Definitions [[numerics.defns]](numerics.defns)
#### 26.10.3 Accumulate [[accumulate]](accumulate)
#### 26.10.4 Reduce [[reduce]](reduce)
#### 26.10.5 Inner product [[inner.product]](inner.product)
#### 26.10.6 Transform reduce [[transform.reduce]](transform.reduce)
#### 26.10.7 Partial sum [[partial.sum]](partial.sum)
#### 26.10.8 Exclusive scan [[exclusive.scan]](exclusive.scan)
#### 26.10.9 Inclusive scan [[inclusive.scan]](inclusive.scan)
#### 26.10.10 Transform exclusive scan [[transform.exclusive.scan]](transform.exclusive.scan)
#### 26.10.11 Transform inclusive scan [[transform.inclusive.scan]](transform.inclusive.scan)
#### 26.10.12 Adjacent difference [[adjacent.difference]](adjacent.difference)
#### 26.10.13 Iota [[numeric.iota]](numeric.iota)
#### 26.10.14 Greatest common divisor [[numeric.ops.gcd]](numeric.ops.gcd)
#### 26.10.15 Least common multiple [[numeric.ops.lcm]](numeric.ops.lcm)
#### 26.10.16 Midpoint [[numeric.ops.midpoint]](numeric.ops.midpoint)
#### 26.10.17 Saturation arithmetic [[numeric.sat]](numeric.sat)
#### 26.10.17.1 Arithmetic functions [[numeric.sat.func]](numeric.sat.func)
#### 26.10.17.2 Casting [[numeric.sat.cast]](numeric.sat.cast)
### 26.11 Specialized <memory> algorithms [[specialized.algorithms]](specialized.algorithms)
#### 26.11.1 General [[specialized.algorithms.general]](specialized.algorithms.general)
#### 26.11.2 Special memory concepts [[special.mem.concepts]](special.mem.concepts)
#### 26.11.3 uninitialized_default_construct [[uninitialized.construct.default]](uninitialized.construct.default)
#### 26.11.4 uninitialized_value_construct [[uninitialized.construct.value]](uninitialized.construct.value)
#### 26.11.5 uninitialized_copy [[uninitialized.copy]](uninitialized.copy)
#### 26.11.6 uninitialized_move [[uninitialized.move]](uninitialized.move)
#### 26.11.7 uninitialized_fill [[uninitialized.fill]](uninitialized.fill)
#### 26.11.8 construct_at [[specialized.construct]](specialized.construct)
#### 26.11.9 destroy [[specialized.destroy]](specialized.destroy)
### 26.12 Specialized <random> algorithms [[alg.rand]](alg.rand)
#### 26.12.1 General [[alg.rand.general]](alg.rand.general)
#### 26.12.2 generate_random [[alg.rand.generate]](alg.rand.generate)
### 26.13 C library algorithms [[alg.c.library]](alg.c.library)
## 27 Strings library [[strings]](#strings)[[strings]](strings)
### 27.1 General [[strings.general]](strings.general)
### 27.2 Character traits [[char.traits]](char.traits)
#### 27.2.1 General [[char.traits.general]](char.traits.general)
#### 27.2.2 Character traits requirements [[char.traits.require]](char.traits.require)
#### 27.2.3 Traits typedefs [[char.traits.typedefs]](char.traits.typedefs)
#### 27.2.4 char_traits specializations [[char.traits.specializations]](char.traits.specializations)
#### 27.2.4.1 General [[char.traits.specializations.general]](char.traits.specializations.general)
#### 27.2.4.2 struct char_traits<char> [[char.traits.specializations.char]](char.traits.specializations.char)
#### 27.2.4.3 struct char_traits<char8_t> [[char.traits.specializations.char8.t]](char.traits.specializations.char8.t)
#### 27.2.4.4 struct char_traits<char16_t> [[char.traits.specializations.char16.t]](char.traits.specializations.char16.t)
#### 27.2.4.5 struct char_traits<char32_t> [[char.traits.specializations.char32.t]](char.traits.specializations.char32.t)
#### 27.2.4.6 struct char_traits<wchar_t> [[char.traits.specializations.wchar.t]](char.traits.specializations.wchar.t)
### 27.3 String view classes [[string.view]](string.view)
#### 27.3.1 General [[string.view.general]](string.view.general)
#### 27.3.2 Header <string_view> synopsis [[string.view.synop]](string.view.synop)
#### 27.3.3 Class template basic_string_view [[string.view.template]](string.view.template)
#### 27.3.3.1 General [[string.view.template.general]](string.view.template.general)
#### 27.3.3.2 Construction and assignment [[string.view.cons]](string.view.cons)
#### 27.3.3.3 Deduction guides [[string.view.deduct]](string.view.deduct)
#### 27.3.3.4 Iterator support [[string.view.iterators]](string.view.iterators)
#### 27.3.3.5 Capacity [[string.view.capacity]](string.view.capacity)
#### 27.3.3.6 Element access [[string.view.access]](string.view.access)
#### 27.3.3.7 Modifiers [[string.view.modifiers]](string.view.modifiers)
#### 27.3.3.8 String operations [[string.view.ops]](string.view.ops)
#### 27.3.3.9 Searching [[string.view.find]](string.view.find)
#### 27.3.4 Non-member comparison functions [[string.view.comparison]](string.view.comparison)
#### 27.3.5 Inserters and extractors [[string.view.io]](string.view.io)
#### 27.3.6 Hash support [[string.view.hash]](string.view.hash)
#### 27.3.7 Suffix for basic_string_view literals [[string.view.literals]](string.view.literals)
### 27.4 String classes [[string.classes]](string.classes)
#### 27.4.1 General [[string.classes.general]](string.classes.general)
#### 27.4.2 Header <string> synopsis [[string.syn]](string.syn)
#### 27.4.3 Class template basic_string [[basic.string]](basic.string)
#### 27.4.3.1 General [[basic.string.general]](basic.string.general)
#### 27.4.3.2 General requirements [[string.require]](string.require)
#### 27.4.3.3 Constructors and assignment operators [[string.cons]](string.cons)
#### 27.4.3.4 Iterator support [[string.iterators]](string.iterators)
#### 27.4.3.5 Capacity [[string.capacity]](string.capacity)
#### 27.4.3.6 Element access [[string.access]](string.access)
#### 27.4.3.7 Modifiers [[string.modifiers]](string.modifiers)
#### 27.4.3.7.1 basic_string::operator+= [[string.op.append]](string.op.append)
#### 27.4.3.7.2 basic_string::append [[string.append]](string.append)
#### 27.4.3.7.3 basic_string::assign [[string.assign]](string.assign)
#### 27.4.3.7.4 basic_string::insert [[string.insert]](string.insert)
#### 27.4.3.7.5 basic_string::erase [[string.erase]](string.erase)
#### 27.4.3.7.6 basic_string::replace [[string.replace]](string.replace)
#### 27.4.3.7.7 basic_string::copy [[string.copy]](string.copy)
#### 27.4.3.7.8 basic_string::swap [[string.swap]](string.swap)
#### 27.4.3.8 String operations [[string.ops]](string.ops)
#### 27.4.3.8.1 Accessors [[string.accessors]](string.accessors)
#### 27.4.3.8.2 Searching [[string.find]](string.find)
#### 27.4.3.8.3 basic_string::substr [[string.substr]](string.substr)
#### 27.4.3.8.4 basic_string::compare [[string.compare]](string.compare)
#### 27.4.3.8.5 basic_string::starts_with [[string.starts.with]](string.starts.with)
#### 27.4.3.8.6 basic_string::ends_with [[string.ends.with]](string.ends.with)
#### 27.4.3.8.7 basic_string::contains [[string.contains]](string.contains)
#### 27.4.4 Non-member functions [[string.nonmembers]](string.nonmembers)
#### 27.4.4.1 operator+ [[string.op.plus]](string.op.plus)
#### 27.4.4.2 Non-member comparison operator functions [[string.cmp]](string.cmp)
#### 27.4.4.3 swap [[string.special]](string.special)
#### 27.4.4.4 Inserters and extractors [[string.io]](string.io)
#### 27.4.4.5 Erasure [[string.erasure]](string.erasure)
#### 27.4.5 Numeric conversions [[string.conversions]](string.conversions)
#### 27.4.6 Hash support [[basic.string.hash]](basic.string.hash)
#### 27.4.7 Suffix for basic_string literals [[basic.string.literals]](basic.string.literals)
### 27.5 Null-terminated sequence utilities [[c.strings]](c.strings)
#### 27.5.1 Header <cstring> synopsis [[cstring.syn]](cstring.syn)
## 28 Text processing library [[text]](#text)[[text]](text)
### 28.1 General [[text.general]](text.general)
### 28.2 Primitive numeric conversions [[charconv]](charconv)
#### 28.2.1 Header <charconv> synopsis [[charconv.syn]](charconv.syn)
#### 28.2.2 Primitive numeric output conversion [[charconv.to.chars]](charconv.to.chars)
#### 28.2.3 Primitive numeric input conversion [[charconv.from.chars]](charconv.from.chars)
### 28.3 Localization library [[localization]](localization)
#### 28.3.1 General [[localization.general]](localization.general)
#### 28.3.2 Header <locale> synopsis [[locale.syn]](locale.syn)
#### 28.3.3 Locales [[locales]](locales)
#### 28.3.3.1 Class locale [[locale]](locale)
#### 28.3.3.1.1 General [[locale.general]](locale.general)
#### 28.3.3.1.2 Types [[locale.types]](locale.types)
#### 28.3.3.1.2.1 Type locale::category [[locale.category]](locale.category)
#### 28.3.3.1.2.2 Class locale::facet [[locale.facet]](locale.facet)
#### 28.3.3.1.2.3 Class locale::id [[locale.id]](locale.id)
#### 28.3.3.1.3 Constructors and destructor [[locale.cons]](locale.cons)
#### 28.3.3.1.4 Members [[locale.members]](locale.members)
#### 28.3.3.1.5 Operators [[locale.operators]](locale.operators)
#### 28.3.3.1.6 Static members [[locale.statics]](locale.statics)
#### 28.3.3.2 locale globals [[locale.global.templates]](locale.global.templates)
#### 28.3.3.3 Convenience interfaces [[locale.convenience]](locale.convenience)
#### 28.3.3.3.1 Character classification [[classification]](classification)
#### 28.3.3.3.2 Character conversions [[conversions.character]](conversions.character)
#### 28.3.4 Standard locale categories [[locale.categories]](locale.categories)
#### 28.3.4.1 General [[locale.categories.general]](locale.categories.general)
#### 28.3.4.2 The ctype category [[category.ctype]](category.ctype)
#### 28.3.4.2.1 General [[category.ctype.general]](category.ctype.general)
#### 28.3.4.2.2 Class template ctype [[locale.ctype]](locale.ctype)
#### 28.3.4.2.2.1 General [[locale.ctype.general]](locale.ctype.general)
#### 28.3.4.2.2.2 ctype members [[locale.ctype.members]](locale.ctype.members)
#### 28.3.4.2.2.3 ctype virtual functions [[locale.ctype.virtuals]](locale.ctype.virtuals)
#### 28.3.4.2.3 Class template ctype_byname [[locale.ctype.byname]](locale.ctype.byname)
#### 28.3.4.2.4 ctype<char> specialization [[facet.ctype.special]](facet.ctype.special)
#### 28.3.4.2.4.1 General [[facet.ctype.special.general]](facet.ctype.special.general)
#### 28.3.4.2.4.2 Destructor [[facet.ctype.char.dtor]](facet.ctype.char.dtor)
#### 28.3.4.2.4.3 Members [[facet.ctype.char.members]](facet.ctype.char.members)
#### 28.3.4.2.4.4 Static members [[facet.ctype.char.statics]](facet.ctype.char.statics)
#### 28.3.4.2.4.5 Virtual functions [[facet.ctype.char.virtuals]](facet.ctype.char.virtuals)
#### 28.3.4.2.5 Class template codecvt [[locale.codecvt]](locale.codecvt)
#### 28.3.4.2.5.1 General [[locale.codecvt.general]](locale.codecvt.general)
#### 28.3.4.2.5.2 Members [[locale.codecvt.members]](locale.codecvt.members)
#### 28.3.4.2.5.3 Virtual functions [[locale.codecvt.virtuals]](locale.codecvt.virtuals)
#### 28.3.4.2.6 Class template codecvt_byname [[locale.codecvt.byname]](locale.codecvt.byname)
#### 28.3.4.3 The numeric category [[category.numeric]](category.numeric)
#### 28.3.4.3.1 General [[category.numeric.general]](category.numeric.general)
#### 28.3.4.3.2 Class template num_get [[locale.num.get]](locale.num.get)
#### 28.3.4.3.2.1 General [[locale.num.get.general]](locale.num.get.general)
#### 28.3.4.3.2.2 Members [[facet.num.get.members]](facet.num.get.members)
#### 28.3.4.3.2.3 Virtual functions [[facet.num.get.virtuals]](facet.num.get.virtuals)
#### 28.3.4.3.3 Class template num_put [[locale.nm.put]](locale.nm.put)
#### 28.3.4.3.3.1 General [[locale.nm.put.general]](locale.nm.put.general)
#### 28.3.4.3.3.2 Members [[facet.num.put.members]](facet.num.put.members)
#### 28.3.4.3.3.3 Virtual functions [[facet.num.put.virtuals]](facet.num.put.virtuals)
#### 28.3.4.4 The numeric punctuation facet [[facet.numpunct]](facet.numpunct)
#### 28.3.4.4.1 Class template numpunct [[locale.numpunct]](locale.numpunct)
#### 28.3.4.4.1.1 General [[locale.numpunct.general]](locale.numpunct.general)
#### 28.3.4.4.1.2 Members [[facet.numpunct.members]](facet.numpunct.members)
#### 28.3.4.4.1.3 Virtual functions [[facet.numpunct.virtuals]](facet.numpunct.virtuals)
#### 28.3.4.4.2 Class template numpunct_byname [[locale.numpunct.byname]](locale.numpunct.byname)
#### 28.3.4.5 The collate category [[category.collate]](category.collate)
#### 28.3.4.5.1 Class template collate [[locale.collate]](locale.collate)
#### 28.3.4.5.1.1 General [[locale.collate.general]](locale.collate.general)
#### 28.3.4.5.1.2 Members [[locale.collate.members]](locale.collate.members)
#### 28.3.4.5.1.3 Virtual functions [[locale.collate.virtuals]](locale.collate.virtuals)
#### 28.3.4.5.2 Class template collate_byname [[locale.collate.byname]](locale.collate.byname)
#### 28.3.4.6 The time category [[category.time]](category.time)
#### 28.3.4.6.1 General [[category.time.general]](category.time.general)
#### 28.3.4.6.2 Class template time_get [[locale.time.get]](locale.time.get)
#### 28.3.4.6.2.1 General [[locale.time.get.general]](locale.time.get.general)
#### 28.3.4.6.2.2 Members [[locale.time.get.members]](locale.time.get.members)
#### 28.3.4.6.2.3 Virtual functions [[locale.time.get.virtuals]](locale.time.get.virtuals)
#### 28.3.4.6.3 Class template time_get_byname [[locale.time.get.byname]](locale.time.get.byname)
#### 28.3.4.6.4 Class template time_put [[locale.time.put]](locale.time.put)
#### 28.3.4.6.4.1 General [[locale.time.put.general]](locale.time.put.general)
#### 28.3.4.6.4.2 Members [[locale.time.put.members]](locale.time.put.members)
#### 28.3.4.6.4.3 Virtual functions [[locale.time.put.virtuals]](locale.time.put.virtuals)
#### 28.3.4.6.5 Class template time_put_byname [[locale.time.put.byname]](locale.time.put.byname)
#### 28.3.4.7 The monetary category [[category.monetary]](category.monetary)
#### 28.3.4.7.1 General [[category.monetary.general]](category.monetary.general)
#### 28.3.4.7.2 Class template money_get [[locale.money.get]](locale.money.get)
#### 28.3.4.7.2.1 General [[locale.money.get.general]](locale.money.get.general)
#### 28.3.4.7.2.2 Members [[locale.money.get.members]](locale.money.get.members)
#### 28.3.4.7.2.3 Virtual functions [[locale.money.get.virtuals]](locale.money.get.virtuals)
#### 28.3.4.7.3 Class template money_put [[locale.money.put]](locale.money.put)
#### 28.3.4.7.3.1 General [[locale.money.put.general]](locale.money.put.general)
#### 28.3.4.7.3.2 Members [[locale.money.put.members]](locale.money.put.members)
#### 28.3.4.7.3.3 Virtual functions [[locale.money.put.virtuals]](locale.money.put.virtuals)
#### 28.3.4.7.4 Class template moneypunct [[locale.moneypunct]](locale.moneypunct)
#### 28.3.4.7.4.1 General [[locale.moneypunct.general]](locale.moneypunct.general)
#### 28.3.4.7.4.2 Members [[locale.moneypunct.members]](locale.moneypunct.members)
#### 28.3.4.7.4.3 Virtual functions [[locale.moneypunct.virtuals]](locale.moneypunct.virtuals)
#### 28.3.4.7.5 Class template moneypunct_byname [[locale.moneypunct.byname]](locale.moneypunct.byname)
#### 28.3.4.8 The message retrieval category [[category.messages]](category.messages)
#### 28.3.4.8.1 General [[category.messages.general]](category.messages.general)
#### 28.3.4.8.2 Class template messages [[locale.messages]](locale.messages)
#### 28.3.4.8.2.1 General [[locale.messages.general]](locale.messages.general)
#### 28.3.4.8.2.2 Members [[locale.messages.members]](locale.messages.members)
#### 28.3.4.8.2.3 Virtual functions [[locale.messages.virtuals]](locale.messages.virtuals)
#### 28.3.4.8.3 Class template messages_byname [[locale.messages.byname]](locale.messages.byname)
#### 28.3.5 C library locales [[c.locales]](c.locales)
#### 28.3.5.1 Header <clocale> synopsis [[clocale.syn]](clocale.syn)
#### 28.3.5.2 Data races [[clocale.data.races]](clocale.data.races)
### 28.4 Text encodings identification [[text.encoding]](text.encoding)
#### 28.4.1 Header <text_encoding> synopsis [[text.encoding.syn]](text.encoding.syn)
#### 28.4.2 Class text_encoding [[text.encoding.class]](text.encoding.class)
#### 28.4.2.1 Overview [[text.encoding.overview]](text.encoding.overview)
#### 28.4.2.2 General [[text.encoding.general]](text.encoding.general)
#### 28.4.2.3 Members [[text.encoding.members]](text.encoding.members)
#### 28.4.2.4 Comparison functions [[text.encoding.cmp]](text.encoding.cmp)
#### 28.4.2.5 Class text_encoding::aliases_view [[text.encoding.aliases]](text.encoding.aliases)
#### 28.4.2.6 Enumeration text_encoding::id [[text.encoding.id]](text.encoding.id)
#### 28.4.2.7 Hash support [[text.encoding.hash]](text.encoding.hash)
### 28.5 Formatting [[format]](format)
#### 28.5.1 Header <format> synopsis [[format.syn]](format.syn)
#### 28.5.2 Format string [[format.string]](format.string)
#### 28.5.2.1 General [[format.string.general]](format.string.general)
#### 28.5.2.2 Standard format specifiers [[format.string.std]](format.string.std)
#### 28.5.3 Error reporting [[format.err.report]](format.err.report)
#### 28.5.4 Class template basic_format_string [[format.fmt.string]](format.fmt.string)
#### 28.5.5 Formatting functions [[format.functions]](format.functions)
#### 28.5.6 Formatter [[format.formatter]](format.formatter)
#### 28.5.6.1 Formatter requirements [[formatter.requirements]](formatter.requirements)
#### 28.5.6.2 Formatter locking [[format.formatter.locking]](format.formatter.locking)
#### 28.5.6.3 Concept formattable [[format.formattable]](format.formattable)
#### 28.5.6.4 Formatter specializations [[format.formatter.spec]](format.formatter.spec)
#### 28.5.6.5 Formatting escaped characters and strings [[format.string.escaped]](format.string.escaped)
#### 28.5.6.6 Class template basic_format_parse_context [[format.parse.ctx]](format.parse.ctx)
#### 28.5.6.7 Class template basic_format_context [[format.context]](format.context)
#### 28.5.7 Formatting of ranges [[format.range]](format.range)
#### 28.5.7.1 Variable template format_kind [[format.range.fmtkind]](format.range.fmtkind)
#### 28.5.7.2 Class template range_formatter [[format.range.formatter]](format.range.formatter)
#### 28.5.7.3 Class template *range-default-formatter* [[format.range.fmtdef]](format.range.fmtdef)
#### 28.5.7.4 Specialization of *range-default-formatter* for maps [[format.range.fmtmap]](format.range.fmtmap)
#### 28.5.7.5 Specialization of *range-default-formatter* for sets [[format.range.fmtset]](format.range.fmtset)
#### 28.5.7.6 Specialization of *range-default-formatter* for strings [[format.range.fmtstr]](format.range.fmtstr)
#### 28.5.8 Arguments [[format.arguments]](format.arguments)
#### 28.5.8.1 Class template basic_format_arg [[format.arg]](format.arg)
#### 28.5.8.2 Class template *format-arg-store* [[format.arg.store]](format.arg.store)
#### 28.5.8.3 Class template basic_format_args [[format.args]](format.args)
#### 28.5.9 Tuple formatter [[format.tuple]](format.tuple)
#### 28.5.10 Class format_error [[format.error]](format.error)
### 28.6 Regular expressions library [[re]](re)
#### 28.6.1 General [[re.general]](re.general)
#### 28.6.2 Requirements [[re.req]](re.req)
#### 28.6.3 Header <regex> synopsis [[re.syn]](re.syn)
#### 28.6.4 Namespace std::regex_constants [[re.const]](re.const)
#### 28.6.4.1 General [[re.const.general]](re.const.general)
#### 28.6.4.2 Bitmask type syntax_option_type [[re.synopt]](re.synopt)
#### 28.6.4.3 Bitmask type match_flag_type [[re.matchflag]](re.matchflag)
#### 28.6.4.4 Implementation-defined error_type [[re.err]](re.err)
#### 28.6.5 Class regex_error [[re.badexp]](re.badexp)
#### 28.6.6 Class template regex_traits [[re.traits]](re.traits)
#### 28.6.7 Class template basic_regex [[re.regex]](re.regex)
#### 28.6.7.1 General [[re.regex.general]](re.regex.general)
#### 28.6.7.2 Constructors [[re.regex.construct]](re.regex.construct)
#### 28.6.7.3 Assignment [[re.regex.assign]](re.regex.assign)
#### 28.6.7.4 Constant operations [[re.regex.operations]](re.regex.operations)
#### 28.6.7.5 Locale [[re.regex.locale]](re.regex.locale)
#### 28.6.7.6 Swap [[re.regex.swap]](re.regex.swap)
#### 28.6.7.7 Non-member functions [[re.regex.nonmemb]](re.regex.nonmemb)
#### 28.6.8 Class template sub_match [[re.submatch]](re.submatch)
#### 28.6.8.1 General [[re.submatch.general]](re.submatch.general)
#### 28.6.8.2 Members [[re.submatch.members]](re.submatch.members)
#### 28.6.8.3 Non-member operators [[re.submatch.op]](re.submatch.op)
#### 28.6.9 Class template match_results [[re.results]](re.results)
#### 28.6.9.1 General [[re.results.general]](re.results.general)
#### 28.6.9.2 Constructors [[re.results.const]](re.results.const)
#### 28.6.9.3 State [[re.results.state]](re.results.state)
#### 28.6.9.4 Size [[re.results.size]](re.results.size)
#### 28.6.9.5 Element access [[re.results.acc]](re.results.acc)
#### 28.6.9.6 Formatting [[re.results.form]](re.results.form)
#### 28.6.9.7 Allocator [[re.results.all]](re.results.all)
#### 28.6.9.8 Swap [[re.results.swap]](re.results.swap)
#### 28.6.9.9 Non-member functions [[re.results.nonmember]](re.results.nonmember)
#### 28.6.10 Regular expression algorithms [[re.alg]](re.alg)
#### 28.6.10.1 Exceptions [[re.except]](re.except)
#### 28.6.10.2 regex_match [[re.alg.match]](re.alg.match)
#### 28.6.10.3 regex_search [[re.alg.search]](re.alg.search)
#### 28.6.10.4 regex_replace [[re.alg.replace]](re.alg.replace)
#### 28.6.11 Regular expression iterators [[re.iter]](re.iter)
#### 28.6.11.1 Class template regex_iterator [[re.regiter]](re.regiter)
#### 28.6.11.1.1 General [[re.regiter.general]](re.regiter.general)
#### 28.6.11.1.2 Constructors [[re.regiter.cnstr]](re.regiter.cnstr)
#### 28.6.11.1.3 Comparisons [[re.regiter.comp]](re.regiter.comp)
#### 28.6.11.1.4 Indirection [[re.regiter.deref]](re.regiter.deref)
#### 28.6.11.1.5 Increment [[re.regiter.incr]](re.regiter.incr)
#### 28.6.11.2 Class template regex_token_iterator [[re.tokiter]](re.tokiter)
#### 28.6.11.2.1 General [[re.tokiter.general]](re.tokiter.general)
#### 28.6.11.2.2 Constructors [[re.tokiter.cnstr]](re.tokiter.cnstr)
#### 28.6.11.2.3 Comparisons [[re.tokiter.comp]](re.tokiter.comp)
#### 28.6.11.2.4 Indirection [[re.tokiter.deref]](re.tokiter.deref)
#### 28.6.11.2.5 Increment [[re.tokiter.incr]](re.tokiter.incr)
#### 28.6.12 Modified ECMAScript regular expression grammar [[re.grammar]](re.grammar)
### 28.7 Null-terminated sequence utilities [[text.c.strings]](text.c.strings)
#### 28.7.1 Header <cctype> synopsis [[cctype.syn]](cctype.syn)
#### 28.7.2 Header <cwctype> synopsis [[cwctype.syn]](cwctype.syn)
#### 28.7.3 Header <cwchar> synopsis [[cwchar.syn]](cwchar.syn)
#### 28.7.4 Header <cuchar> synopsis [[cuchar.syn]](cuchar.syn)
#### 28.7.5 Multibyte / wide string and character conversion functions [[c.mb.wcs]](c.mb.wcs)
## 29 Numerics library [[numerics]](#numerics)[[numerics]](numerics)
### 29.1 General [[numerics.general]](numerics.general)
### 29.2 Numeric type requirements [[numeric.requirements]](numeric.requirements)
### 29.3 The floating-point environment [[cfenv]](cfenv)
#### 29.3.1 Header <cfenv> synopsis [[cfenv.syn]](cfenv.syn)
#### 29.3.2 Threads [[cfenv.thread]](cfenv.thread)
### 29.4 Complex numbers [[complex.numbers]](complex.numbers)
#### 29.4.1 General [[complex.numbers.general]](complex.numbers.general)
#### 29.4.2 Header <complex> synopsis [[complex.syn]](complex.syn)
#### 29.4.3 Class template complex [[complex]](complex)
#### 29.4.4 Member functions [[complex.members]](complex.members)
#### 29.4.5 Member operators [[complex.member.ops]](complex.member.ops)
#### 29.4.6 Non-member operations [[complex.ops]](complex.ops)
#### 29.4.7 Value operations [[complex.value.ops]](complex.value.ops)
#### 29.4.8 Transcendentals [[complex.transcendentals]](complex.transcendentals)
#### 29.4.9 Tuple interface [[complex.tuple]](complex.tuple)
#### 29.4.10 Additional overloads [[cmplx.over]](cmplx.over)
#### 29.4.11 Suffixes for complex number literals [[complex.literals]](complex.literals)
### 29.5 Random number generation [[rand]](rand)
#### 29.5.1 General [[rand.general]](rand.general)
#### 29.5.2 Header <random> synopsis [[rand.synopsis]](rand.synopsis)
#### 29.5.3 Requirements [[rand.req]](rand.req)
#### 29.5.3.1 General requirements [[rand.req.genl]](rand.req.genl)
#### 29.5.3.2 Seed sequence requirements [[rand.req.seedseq]](rand.req.seedseq)
#### 29.5.3.3 Uniform random bit generator requirements [[rand.req.urng]](rand.req.urng)
#### 29.5.3.4 Random number engine requirements [[rand.req.eng]](rand.req.eng)
#### 29.5.3.5 Random number engine adaptor requirements [[rand.req.adapt]](rand.req.adapt)
#### 29.5.3.6 Random number distribution requirements [[rand.req.dist]](rand.req.dist)
#### 29.5.4 Random number engine class templates [[rand.eng]](rand.eng)
#### 29.5.4.1 General [[rand.eng.general]](rand.eng.general)
#### 29.5.4.2 Class template linear_congruential_engine [[rand.eng.lcong]](rand.eng.lcong)
#### 29.5.4.3 Class template mersenne_twister_engine [[rand.eng.mers]](rand.eng.mers)
#### 29.5.4.4 Class template subtract_with_carry_engine [[rand.eng.sub]](rand.eng.sub)
#### 29.5.4.5 Class template philox_engine [[rand.eng.philox]](rand.eng.philox)
#### 29.5.5 Random number engine adaptor class templates [[rand.adapt]](rand.adapt)
#### 29.5.5.1 General [[rand.adapt.general]](rand.adapt.general)
#### 29.5.5.2 Class template discard_block_engine [[rand.adapt.disc]](rand.adapt.disc)
#### 29.5.5.3 Class template independent_bits_engine [[rand.adapt.ibits]](rand.adapt.ibits)
#### 29.5.5.4 Class template shuffle_order_engine [[rand.adapt.shuf]](rand.adapt.shuf)
#### 29.5.6 Engines and engine adaptors with predefined parameters [[rand.predef]](rand.predef)
#### 29.5.7 Class random_device [[rand.device]](rand.device)
#### 29.5.8 Utilities [[rand.util]](rand.util)
#### 29.5.8.1 Class seed_seq [[rand.util.seedseq]](rand.util.seedseq)
#### 29.5.8.2 Function template generate_canonical [[rand.util.canonical]](rand.util.canonical)
#### 29.5.9 Random number distribution class templates [[rand.dist]](rand.dist)
#### 29.5.9.1 General [[rand.dist.general]](rand.dist.general)
#### 29.5.9.2 Uniform distributions [[rand.dist.uni]](rand.dist.uni)
#### 29.5.9.2.1 Class template uniform_int_distribution [[rand.dist.uni.int]](rand.dist.uni.int)
#### 29.5.9.2.2 Class template uniform_real_distribution [[rand.dist.uni.real]](rand.dist.uni.real)
#### 29.5.9.3 Bernoulli distributions [[rand.dist.bern]](rand.dist.bern)
#### 29.5.9.3.1 Class bernoulli_distribution [[rand.dist.bern.bernoulli]](rand.dist.bern.bernoulli)
#### 29.5.9.3.2 Class template binomial_distribution [[rand.dist.bern.bin]](rand.dist.bern.bin)
#### 29.5.9.3.3 Class template geometric_distribution [[rand.dist.bern.geo]](rand.dist.bern.geo)
#### 29.5.9.3.4 Class template negative_binomial_distribution [[rand.dist.bern.negbin]](rand.dist.bern.negbin)
#### 29.5.9.4 Poisson distributions [[rand.dist.pois]](rand.dist.pois)
#### 29.5.9.4.1 Class template poisson_distribution [[rand.dist.pois.poisson]](rand.dist.pois.poisson)
#### 29.5.9.4.2 Class template exponential_distribution [[rand.dist.pois.exp]](rand.dist.pois.exp)
#### 29.5.9.4.3 Class template gamma_distribution [[rand.dist.pois.gamma]](rand.dist.pois.gamma)
#### 29.5.9.4.4 Class template weibull_distribution [[rand.dist.pois.weibull]](rand.dist.pois.weibull)
#### 29.5.9.4.5 Class template extreme_value_distribution [[rand.dist.pois.extreme]](rand.dist.pois.extreme)
#### 29.5.9.5 Normal distributions [[rand.dist.norm]](rand.dist.norm)
#### 29.5.9.5.1 Class template normal_distribution [[rand.dist.norm.normal]](rand.dist.norm.normal)
#### 29.5.9.5.2 Class template lognormal_distribution [[rand.dist.norm.lognormal]](rand.dist.norm.lognormal)
#### 29.5.9.5.3 Class template chi_squared_distribution [[rand.dist.norm.chisq]](rand.dist.norm.chisq)
#### 29.5.9.5.4 Class template cauchy_distribution [[rand.dist.norm.cauchy]](rand.dist.norm.cauchy)
#### 29.5.9.5.5 Class template fisher_f_distribution [[rand.dist.norm.f]](rand.dist.norm.f)
#### 29.5.9.5.6 Class template student_t_distribution [[rand.dist.norm.t]](rand.dist.norm.t)
#### 29.5.9.6 Sampling distributions [[rand.dist.samp]](rand.dist.samp)
#### 29.5.9.6.1 Class template discrete_distribution [[rand.dist.samp.discrete]](rand.dist.samp.discrete)
#### 29.5.9.6.2 Class template piecewise_constant_distribution [[rand.dist.samp.pconst]](rand.dist.samp.pconst)
#### 29.5.9.6.3 Class template piecewise_linear_distribution [[rand.dist.samp.plinear]](rand.dist.samp.plinear)
#### 29.5.10 Low-quality random number generation [[c.math.rand]](c.math.rand)
### 29.6 Numeric arrays [[numarray]](numarray)
#### 29.6.1 Header <valarray> synopsis [[valarray.syn]](valarray.syn)
#### 29.6.2 Class template valarray [[template.valarray]](template.valarray)
#### 29.6.2.1 Overview [[template.valarray.overview]](template.valarray.overview)
#### 29.6.2.2 Constructors [[valarray.cons]](valarray.cons)
#### 29.6.2.3 Assignment [[valarray.assign]](valarray.assign)
#### 29.6.2.4 Element access [[valarray.access]](valarray.access)
#### 29.6.2.5 Subset operations [[valarray.sub]](valarray.sub)
#### 29.6.2.6 Unary operators [[valarray.unary]](valarray.unary)
#### 29.6.2.7 Compound assignment [[valarray.cassign]](valarray.cassign)
#### 29.6.2.8 Member functions [[valarray.members]](valarray.members)
#### 29.6.3 valarray non-member operations [[valarray.nonmembers]](valarray.nonmembers)
#### 29.6.3.1 Binary operators [[valarray.binary]](valarray.binary)
#### 29.6.3.2 Logical operators [[valarray.comparison]](valarray.comparison)
#### 29.6.3.3 Transcendentals [[valarray.transcend]](valarray.transcend)
#### 29.6.3.4 Specialized algorithms [[valarray.special]](valarray.special)
#### 29.6.4 Class slice [[class.slice]](class.slice)
#### 29.6.4.1 Overview [[class.slice.overview]](class.slice.overview)
#### 29.6.4.2 Constructors [[cons.slice]](cons.slice)
#### 29.6.4.3 Access functions [[slice.access]](slice.access)
#### 29.6.4.4 Operators [[slice.ops]](slice.ops)
#### 29.6.5 Class template slice_array [[template.slice.array]](template.slice.array)
#### 29.6.5.1 Overview [[template.slice.array.overview]](template.slice.array.overview)
#### 29.6.5.2 Assignment [[slice.arr.assign]](slice.arr.assign)
#### 29.6.5.3 Compound assignment [[slice.arr.comp.assign]](slice.arr.comp.assign)
#### 29.6.5.4 Fill function [[slice.arr.fill]](slice.arr.fill)
#### 29.6.6 The gslice class [[class.gslice]](class.gslice)
#### 29.6.6.1 Overview [[class.gslice.overview]](class.gslice.overview)
#### 29.6.6.2 Constructors [[gslice.cons]](gslice.cons)
#### 29.6.6.3 Access functions [[gslice.access]](gslice.access)
#### 29.6.7 Class template gslice_array [[template.gslice.array]](template.gslice.array)
#### 29.6.7.1 Overview [[template.gslice.array.overview]](template.gslice.array.overview)
#### 29.6.7.2 Assignment [[gslice.array.assign]](gslice.array.assign)
#### 29.6.7.3 Compound assignment [[gslice.array.comp.assign]](gslice.array.comp.assign)
#### 29.6.7.4 Fill function [[gslice.array.fill]](gslice.array.fill)
#### 29.6.8 Class template mask_array [[template.mask.array]](template.mask.array)
#### 29.6.8.1 Overview [[template.mask.array.overview]](template.mask.array.overview)
#### 29.6.8.2 Assignment [[mask.array.assign]](mask.array.assign)
#### 29.6.8.3 Compound assignment [[mask.array.comp.assign]](mask.array.comp.assign)
#### 29.6.8.4 Fill function [[mask.array.fill]](mask.array.fill)
#### 29.6.9 Class template indirect_array [[template.indirect.array]](template.indirect.array)
#### 29.6.9.1 Overview [[template.indirect.array.overview]](template.indirect.array.overview)
#### 29.6.9.2 Assignment [[indirect.array.assign]](indirect.array.assign)
#### 29.6.9.3 Compound assignment [[indirect.array.comp.assign]](indirect.array.comp.assign)
#### 29.6.9.4 Fill function [[indirect.array.fill]](indirect.array.fill)
#### 29.6.10 valarray range access [[valarray.range]](valarray.range)
### 29.7 Mathematical functions for floating-point types [[c.math]](c.math)
#### 29.7.1 Header <cmath> synopsis [[cmath.syn]](cmath.syn)
#### 29.7.2 Absolute values [[c.math.abs]](c.math.abs)
#### 29.7.3 Three-dimensional hypotenuse [[c.math.hypot3]](c.math.hypot3)
#### 29.7.4 Linear interpolation [[c.math.lerp]](c.math.lerp)
#### 29.7.5 Classification / comparison functions [[c.math.fpclass]](c.math.fpclass)
#### 29.7.6 Mathematical special functions [[sf.cmath]](sf.cmath)
#### 29.7.6.1 General [[sf.cmath.general]](sf.cmath.general)
#### 29.7.6.2 Associated Laguerre polynomials [[sf.cmath.assoc.laguerre]](sf.cmath.assoc.laguerre)
#### 29.7.6.3 Associated Legendre functions [[sf.cmath.assoc.legendre]](sf.cmath.assoc.legendre)
#### 29.7.6.4 Beta function [[sf.cmath.beta]](sf.cmath.beta)
#### 29.7.6.5 Complete elliptic integral of the first kind [[sf.cmath.comp.ellint.1]](sf.cmath.comp.ellint.1)
#### 29.7.6.6 Complete elliptic integral of the second kind [[sf.cmath.comp.ellint.2]](sf.cmath.comp.ellint.2)
#### 29.7.6.7 Complete elliptic integral of the third kind [[sf.cmath.comp.ellint.3]](sf.cmath.comp.ellint.3)
#### 29.7.6.8 Regular modified cylindrical Bessel functions [[sf.cmath.cyl.bessel.i]](sf.cmath.cyl.bessel.i)
#### 29.7.6.9 Cylindrical Bessel functions of the first kind [[sf.cmath.cyl.bessel.j]](sf.cmath.cyl.bessel.j)
#### 29.7.6.10 Irregular modified cylindrical Bessel functions [[sf.cmath.cyl.bessel.k]](sf.cmath.cyl.bessel.k)
#### 29.7.6.11 Cylindrical Neumann functions [[sf.cmath.cyl.neumann]](sf.cmath.cyl.neumann)
#### 29.7.6.12 Incomplete elliptic integral of the first kind [[sf.cmath.ellint.1]](sf.cmath.ellint.1)
#### 29.7.6.13 Incomplete elliptic integral of the second kind [[sf.cmath.ellint.2]](sf.cmath.ellint.2)
#### 29.7.6.14 Incomplete elliptic integral of the third kind [[sf.cmath.ellint.3]](sf.cmath.ellint.3)
#### 29.7.6.15 Exponential integral [[sf.cmath.expint]](sf.cmath.expint)
#### 29.7.6.16 Hermite polynomials [[sf.cmath.hermite]](sf.cmath.hermite)
#### 29.7.6.17 Laguerre polynomials [[sf.cmath.laguerre]](sf.cmath.laguerre)
#### 29.7.6.18 Legendre polynomials [[sf.cmath.legendre]](sf.cmath.legendre)
#### 29.7.6.19 Riemann zeta function [[sf.cmath.riemann.zeta]](sf.cmath.riemann.zeta)
#### 29.7.6.20 Spherical Bessel functions of the first kind [[sf.cmath.sph.bessel]](sf.cmath.sph.bessel)
#### 29.7.6.21 Spherical associated Legendre functions [[sf.cmath.sph.legendre]](sf.cmath.sph.legendre)
#### 29.7.6.22 Spherical Neumann functions [[sf.cmath.sph.neumann]](sf.cmath.sph.neumann)
### 29.8 Numbers [[numbers]](numbers)
#### 29.8.1 Header <numbers> synopsis [[numbers.syn]](numbers.syn)
#### 29.8.2 Mathematical constants [[math.constants]](math.constants)
### 29.9 Basic linear algebra algorithms [[linalg]](linalg)
#### 29.9.1 Overview [[linalg.overview]](linalg.overview)
#### 29.9.2 Header <linalg> synopsis [[linalg.syn]](linalg.syn)
#### 29.9.3 General [[linalg.general]](linalg.general)
#### 29.9.4 Requirements [[linalg.reqs]](linalg.reqs)
#### 29.9.4.1 Linear algebra value types [[linalg.reqs.val]](linalg.reqs.val)
#### 29.9.4.2 Algorithm and class requirements [[linalg.reqs.alg]](linalg.reqs.alg)
#### 29.9.5 Tag classes [[linalg.tags]](linalg.tags)
#### 29.9.5.1 Storage order tags [[linalg.tags.order]](linalg.tags.order)
#### 29.9.5.2 Triangle tags [[linalg.tags.triangle]](linalg.tags.triangle)
#### 29.9.5.3 Diagonal tags [[linalg.tags.diagonal]](linalg.tags.diagonal)
#### 29.9.6 Layouts for packed matrix types [[linalg.layout.packed]](linalg.layout.packed)
#### 29.9.6.1 Overview [[linalg.layout.packed.overview]](linalg.layout.packed.overview)
#### 29.9.6.2 Constructors [[linalg.layout.packed.cons]](linalg.layout.packed.cons)
#### 29.9.6.3 Observers [[linalg.layout.packed.obs]](linalg.layout.packed.obs)
#### 29.9.7 Exposition-only helpers [[linalg.helpers]](linalg.helpers)
#### 29.9.7.1 *abs-if-needed* [[linalg.helpers.abs]](linalg.helpers.abs)
#### 29.9.7.2 *conj-if-needed* [[linalg.helpers.conj]](linalg.helpers.conj)
#### 29.9.7.3 *real-if-needed* [[linalg.helpers.real]](linalg.helpers.real)
#### 29.9.7.4 *imag-if-needed* [[linalg.helpers.imag]](linalg.helpers.imag)
#### 29.9.7.5 Argument concepts [[linalg.helpers.concepts]](linalg.helpers.concepts)
#### 29.9.7.6 Mandates [[linalg.helpers.mandates]](linalg.helpers.mandates)
#### 29.9.7.7 Preconditions [[linalg.helpers.precond]](linalg.helpers.precond)
#### 29.9.8 Scaled in-place transformation [[linalg.scaled]](linalg.scaled)
#### 29.9.8.1 Introduction [[linalg.scaled.intro]](linalg.scaled.intro)
#### 29.9.8.2 Class template scaled_accessor [[linalg.scaled.scaledaccessor]](linalg.scaled.scaledaccessor)
#### 29.9.8.3 Function template scaled [[linalg.scaled.scaled]](linalg.scaled.scaled)
#### 29.9.9 Conjugated in-place transformation [[linalg.conj]](linalg.conj)
#### 29.9.9.1 Introduction [[linalg.conj.intro]](linalg.conj.intro)
#### 29.9.9.2 Class template conjugated_accessor [[linalg.conj.conjugatedaccessor]](linalg.conj.conjugatedaccessor)
#### 29.9.9.3 Function template conjugated [[linalg.conj.conjugated]](linalg.conj.conjugated)
#### 29.9.10 Transpose in-place transformation [[linalg.transp]](linalg.transp)
#### 29.9.10.1 Introduction [[linalg.transp.intro]](linalg.transp.intro)
#### 29.9.10.2 Exposition-only helpers for layout_transpose and transposed [[linalg.transp.helpers]](linalg.transp.helpers)
#### 29.9.10.3 Class template layout_transpose [[linalg.transp.layout.transpose]](linalg.transp.layout.transpose)
#### 29.9.10.4 Function template transposed [[linalg.transp.transposed]](linalg.transp.transposed)
#### 29.9.11 Conjugate transpose in-place transform [[linalg.conjtransposed]](linalg.conjtransposed)
#### 29.9.12 Algorithm requirements based on template parameter name [[linalg.algs.reqs]](linalg.algs.reqs)
#### 29.9.13 BLAS 1 algorithms [[linalg.algs.blas1]](linalg.algs.blas1)
#### 29.9.13.1 Complexity [[linalg.algs.blas1.complexity]](linalg.algs.blas1.complexity)
#### 29.9.13.2 Givens rotations [[linalg.algs.blas1.givens]](linalg.algs.blas1.givens)
#### 29.9.13.2.1 Compute Givens rotation [[linalg.algs.blas1.givens.lartg]](linalg.algs.blas1.givens.lartg)
#### 29.9.13.2.2 Apply a computed Givens rotation to vectors [[linalg.algs.blas1.givens.rot]](linalg.algs.blas1.givens.rot)
#### 29.9.13.3 Swap matrix or vector elements [[linalg.algs.blas1.swap]](linalg.algs.blas1.swap)
#### 29.9.13.4 Multiply the elements of an object in place by a scalar [[linalg.algs.blas1.scal]](linalg.algs.blas1.scal)
#### 29.9.13.5 Copy elements of one matrix or vector into another [[linalg.algs.blas1.copy]](linalg.algs.blas1.copy)
#### 29.9.13.6 Add vectors or matrices elementwise [[linalg.algs.blas1.add]](linalg.algs.blas1.add)
#### 29.9.13.7 Dot product of two vectors [[linalg.algs.blas1.dot]](linalg.algs.blas1.dot)
#### 29.9.13.8 Scaled sum of squares of a vector's elements [[linalg.algs.blas1.ssq]](linalg.algs.blas1.ssq)
#### 29.9.13.9 Euclidean norm of a vector [[linalg.algs.blas1.nrm2]](linalg.algs.blas1.nrm2)
#### 29.9.13.10 Sum of absolute values of vector elements [[linalg.algs.blas1.asum]](linalg.algs.blas1.asum)
#### 29.9.13.11 Index of maximum absolute value of vector elements [[linalg.algs.blas1.iamax]](linalg.algs.blas1.iamax)
#### 29.9.13.12 Frobenius norm of a matrix [[linalg.algs.blas1.matfrobnorm]](linalg.algs.blas1.matfrobnorm)
#### 29.9.13.13 One norm of a matrix [[linalg.algs.blas1.matonenorm]](linalg.algs.blas1.matonenorm)
#### 29.9.13.14 Infinity norm of a matrix [[linalg.algs.blas1.matinfnorm]](linalg.algs.blas1.matinfnorm)
#### 29.9.14 BLAS 2 algorithms [[linalg.algs.blas2]](linalg.algs.blas2)
#### 29.9.14.1 General matrix-vector product [[linalg.algs.blas2.gemv]](linalg.algs.blas2.gemv)
#### 29.9.14.2 Symmetric matrix-vector product [[linalg.algs.blas2.symv]](linalg.algs.blas2.symv)
#### 29.9.14.3 Hermitian matrix-vector product [[linalg.algs.blas2.hemv]](linalg.algs.blas2.hemv)
#### 29.9.14.4 Triangular matrix-vector product [[linalg.algs.blas2.trmv]](linalg.algs.blas2.trmv)
#### 29.9.14.5 Solve a triangular linear system [[linalg.algs.blas2.trsv]](linalg.algs.blas2.trsv)
#### 29.9.14.6 Rank-1 (outer product) update of a matrix [[linalg.algs.blas2.rank1]](linalg.algs.blas2.rank1)
#### 29.9.14.7 Symmetric or Hermitian Rank-1 (outer product) update of a matrix [[linalg.algs.blas2.symherrank1]](linalg.algs.blas2.symherrank1)
#### 29.9.14.8 Symmetric and Hermitian rank-2 matrix updates [[linalg.algs.blas2.rank2]](linalg.algs.blas2.rank2)
#### 29.9.15 BLAS 3 algorithms [[linalg.algs.blas3]](linalg.algs.blas3)
#### 29.9.15.1 General matrix-matrix product [[linalg.algs.blas3.gemm]](linalg.algs.blas3.gemm)
#### 29.9.15.2 Symmetric, Hermitian, and triangular matrix-matrix product [[linalg.algs.blas3.xxmm]](linalg.algs.blas3.xxmm)
#### 29.9.15.3 In-place triangular matrix-matrix product [[linalg.algs.blas3.trmm]](linalg.algs.blas3.trmm)
#### 29.9.15.4 Rank-k update of a symmetric or Hermitian matrix [[linalg.algs.blas3.rankk]](linalg.algs.blas3.rankk)
#### 29.9.15.5 Rank-2k update of a symmetric or Hermitian matrix [[linalg.algs.blas3.rank2k]](linalg.algs.blas3.rank2k)
#### 29.9.15.6 Solve multiple triangular linear systems [[linalg.algs.blas3.trsm]](linalg.algs.blas3.trsm)
#### 29.9.15.7 Solve multiple triangular linear systems in-place [[linalg.algs.blas3.inplacetrsm]](linalg.algs.blas3.inplacetrsm)
### 29.10 Data-parallel types [[simd]](simd)
#### 29.10.1 General [[simd.general]](simd.general)
#### 29.10.2 Exposition-only types, variables, and concepts [[simd.expos]](simd.expos)
#### 29.10.2.1 Exposition-only helpers [[simd.expos.defn]](simd.expos.defn)
#### 29.10.2.2 simd ABI tags [[simd.expos.abi]](simd.expos.abi)
#### 29.10.3 Header <simd> synopsis [[simd.syn]](simd.syn)
#### 29.10.4 Type traits [[simd.traits]](simd.traits)
#### 29.10.5 Load and store flags [[simd.flags]](simd.flags)
#### 29.10.5.1 Class template flags overview [[simd.flags.overview]](simd.flags.overview)
#### 29.10.5.2 flags operators [[simd.flags.oper]](simd.flags.oper)
#### 29.10.6 Class template *simd-iterator* [[simd.iterator]](simd.iterator)
#### 29.10.7 Class template basic_vec [[simd.class]](simd.class)
#### 29.10.7.1 Class template basic_vec overview [[simd.overview]](simd.overview)
#### 29.10.7.2 basic_vec constructors [[simd.ctor]](simd.ctor)
#### 29.10.7.3 basic_vec subscript operator [[simd.subscr]](simd.subscr)
#### 29.10.7.4 basic_vec complex accessors [[simd.complex.access]](simd.complex.access)
#### 29.10.7.5 basic_vec unary operators [[simd.unary]](simd.unary)
#### 29.10.8 basic_vec non-member operations [[simd.nonmembers]](simd.nonmembers)
#### 29.10.8.1 basic_vec binary operators [[simd.binary]](simd.binary)
#### 29.10.8.2 basic_vec compound assignment [[simd.cassign]](simd.cassign)
#### 29.10.8.3 basic_vec compare operators [[simd.comparison]](simd.comparison)
#### 29.10.8.4 basic_vec exposition only conditional operators [[simd.cond]](simd.cond)
#### 29.10.8.5 basic_vec reductions [[simd.reductions]](simd.reductions)
#### 29.10.8.6 basic_vec load and store functions [[simd.loadstore]](simd.loadstore)
#### 29.10.8.7 vec static permute [[simd.permute.static]](simd.permute.static)
#### 29.10.8.8 vec dynamic permute [[simd.permute.dynamic]](simd.permute.dynamic)
#### 29.10.8.9 vec mask permute [[simd.permute.mask]](simd.permute.mask)
#### 29.10.8.10 simd memory permute [[simd.permute.memory]](simd.permute.memory)
#### 29.10.8.11 basic_vec and basic_mask creation [[simd.creation]](simd.creation)
#### 29.10.8.12 Algorithms [[simd.alg]](simd.alg)
#### 29.10.8.13 Mathematical functions [[simd.math]](simd.math)
#### 29.10.8.14 basic_vec bit library [[simd.bit]](simd.bit)
#### 29.10.8.15 vec complex math [[simd.complex.math]](simd.complex.math)
#### 29.10.9 Class template basic_mask [[simd.mask.class]](simd.mask.class)
#### 29.10.9.1 Class template basic_mask overview [[simd.mask.overview]](simd.mask.overview)
#### 29.10.9.2 basic_mask constructors [[simd.mask.ctor]](simd.mask.ctor)
#### 29.10.9.3 basic_mask subscript operator [[simd.mask.subscr]](simd.mask.subscr)
#### 29.10.9.4 basic_mask unary operators [[simd.mask.unary]](simd.mask.unary)
#### 29.10.9.5 basic_mask conversions [[simd.mask.conv]](simd.mask.conv)
#### 29.10.10 basic_mask non-member operations [[simd.mask.nonmembers]](simd.mask.nonmembers)
#### 29.10.10.1 basic_mask binary operators [[simd.mask.binary]](simd.mask.binary)
#### 29.10.10.2 basic_mask compound assignment [[simd.mask.cassign]](simd.mask.cassign)
#### 29.10.10.3 basic_mask comparisons [[simd.mask.comparison]](simd.mask.comparison)
#### 29.10.10.4 basic_mask exposition only conditional operators [[simd.mask.cond]](simd.mask.cond)
#### 29.10.10.5 basic_mask reductions [[simd.mask.reductions]](simd.mask.reductions)
### 29.11 C compatibility [[numerics.c]](numerics.c)
#### 29.11.1 Header <stdckdint.h> synopsis [[stdckdint.h.syn]](stdckdint.h.syn)
#### 29.11.2 Checked integer operations [[numerics.c.ckdint]](numerics.c.ckdint)
## 30 Time library [[time]](#time)[[time]](time)
### 30.1 General [[time.general]](time.general)
### 30.2 Header <chrono> synopsis [[time.syn]](time.syn)
### 30.3 *Cpp17Clock* requirements [[time.clock.req]](time.clock.req)
### 30.4 Time-related traits [[time.traits]](time.traits)
#### 30.4.1 treat_as_floating_point [[time.traits.is.fp]](time.traits.is.fp)
#### 30.4.2 duration_values [[time.traits.duration.values]](time.traits.duration.values)
#### 30.4.3 Specializations of common_type [[time.traits.specializations]](time.traits.specializations)
#### 30.4.4 Class template is_clock [[time.traits.is.clock]](time.traits.is.clock)
### 30.5 Class template duration [[time.duration]](time.duration)
#### 30.5.1 General [[time.duration.general]](time.duration.general)
#### 30.5.2 Constructors [[time.duration.cons]](time.duration.cons)
#### 30.5.3 Observer [[time.duration.observer]](time.duration.observer)
#### 30.5.4 Arithmetic [[time.duration.arithmetic]](time.duration.arithmetic)
#### 30.5.5 Special values [[time.duration.special]](time.duration.special)
#### 30.5.6 Non-member arithmetic [[time.duration.nonmember]](time.duration.nonmember)
#### 30.5.7 Comparisons [[time.duration.comparisons]](time.duration.comparisons)
#### 30.5.8 Conversions [[time.duration.cast]](time.duration.cast)
#### 30.5.9 Suffixes for duration literals [[time.duration.literals]](time.duration.literals)
#### 30.5.10 Algorithms [[time.duration.alg]](time.duration.alg)
#### 30.5.11 I/O [[time.duration.io]](time.duration.io)
### 30.6 Class template time_point [[time.point]](time.point)
#### 30.6.1 General [[time.point.general]](time.point.general)
#### 30.6.2 Constructors [[time.point.cons]](time.point.cons)
#### 30.6.3 Observer [[time.point.observer]](time.point.observer)
#### 30.6.4 Arithmetic [[time.point.arithmetic]](time.point.arithmetic)
#### 30.6.5 Special values [[time.point.special]](time.point.special)
#### 30.6.6 Non-member arithmetic [[time.point.nonmember]](time.point.nonmember)
#### 30.6.7 Comparisons [[time.point.comparisons]](time.point.comparisons)
#### 30.6.8 Conversions [[time.point.cast]](time.point.cast)
### 30.7 Clocks [[time.clock]](time.clock)
#### 30.7.1 General [[time.clock.general]](time.clock.general)
#### 30.7.2 Class system_clock [[time.clock.system]](time.clock.system)
#### 30.7.2.1 Overview [[time.clock.system.overview]](time.clock.system.overview)
#### 30.7.2.2 Members [[time.clock.system.members]](time.clock.system.members)
#### 30.7.2.3 Non-member functions [[time.clock.system.nonmembers]](time.clock.system.nonmembers)
#### 30.7.3 Class utc_clock [[time.clock.utc]](time.clock.utc)
#### 30.7.3.1 Overview [[time.clock.utc.overview]](time.clock.utc.overview)
#### 30.7.3.2 Member functions [[time.clock.utc.members]](time.clock.utc.members)
#### 30.7.3.3 Non-member functions [[time.clock.utc.nonmembers]](time.clock.utc.nonmembers)
#### 30.7.4 Class tai_clock [[time.clock.tai]](time.clock.tai)
#### 30.7.4.1 Overview [[time.clock.tai.overview]](time.clock.tai.overview)
#### 30.7.4.2 Member functions [[time.clock.tai.members]](time.clock.tai.members)
#### 30.7.4.3 Non-member functions [[time.clock.tai.nonmembers]](time.clock.tai.nonmembers)
#### 30.7.5 Class gps_clock [[time.clock.gps]](time.clock.gps)
#### 30.7.5.1 Overview [[time.clock.gps.overview]](time.clock.gps.overview)
#### 30.7.5.2 Member functions [[time.clock.gps.members]](time.clock.gps.members)
#### 30.7.5.3 Non-member functions [[time.clock.gps.nonmembers]](time.clock.gps.nonmembers)
#### 30.7.6 Type file_clock [[time.clock.file]](time.clock.file)
#### 30.7.6.1 Overview [[time.clock.file.overview]](time.clock.file.overview)
#### 30.7.6.2 Member functions [[time.clock.file.members]](time.clock.file.members)
#### 30.7.6.3 Non-member functions [[time.clock.file.nonmembers]](time.clock.file.nonmembers)
#### 30.7.7 Class steady_clock [[time.clock.steady]](time.clock.steady)
#### 30.7.8 Class high_resolution_clock [[time.clock.hires]](time.clock.hires)
#### 30.7.9 Local time [[time.clock.local]](time.clock.local)
#### 30.7.10 time_point conversions [[time.clock.cast]](time.clock.cast)
#### 30.7.10.1 Class template clock_time_conversion [[time.clock.conv]](time.clock.conv)
#### 30.7.10.2 Identity conversions [[time.clock.cast.id]](time.clock.cast.id)
#### 30.7.10.3 Conversions between system_clock and utc_clock [[time.clock.cast.sys.utc]](time.clock.cast.sys.utc)
#### 30.7.10.4 Conversions between system_clock and other clocks [[time.clock.cast.sys]](time.clock.cast.sys)
#### 30.7.10.5 Conversions between utc_clock and other clocks [[time.clock.cast.utc]](time.clock.cast.utc)
#### 30.7.10.6 Function template clock_cast [[time.clock.cast.fn]](time.clock.cast.fn)
### 30.8 The civil calendar [[time.cal]](time.cal)
#### 30.8.1 General [[time.cal.general]](time.cal.general)
#### 30.8.2 Class last_spec [[time.cal.last]](time.cal.last)
#### 30.8.3 Class day [[time.cal.day]](time.cal.day)
#### 30.8.3.1 Overview [[time.cal.day.overview]](time.cal.day.overview)
#### 30.8.3.2 Member functions [[time.cal.day.members]](time.cal.day.members)
#### 30.8.3.3 Non-member functions [[time.cal.day.nonmembers]](time.cal.day.nonmembers)
#### 30.8.4 Class month [[time.cal.month]](time.cal.month)
#### 30.8.4.1 Overview [[time.cal.month.overview]](time.cal.month.overview)
#### 30.8.4.2 Member functions [[time.cal.month.members]](time.cal.month.members)
#### 30.8.4.3 Non-member functions [[time.cal.month.nonmembers]](time.cal.month.nonmembers)
#### 30.8.5 Class year [[time.cal.year]](time.cal.year)
#### 30.8.5.1 Overview [[time.cal.year.overview]](time.cal.year.overview)
#### 30.8.5.2 Member functions [[time.cal.year.members]](time.cal.year.members)
#### 30.8.5.3 Non-member functions [[time.cal.year.nonmembers]](time.cal.year.nonmembers)
#### 30.8.6 Class weekday [[time.cal.wd]](time.cal.wd)
#### 30.8.6.1 Overview [[time.cal.wd.overview]](time.cal.wd.overview)
#### 30.8.6.2 Member functions [[time.cal.wd.members]](time.cal.wd.members)
#### 30.8.6.3 Non-member functions [[time.cal.wd.nonmembers]](time.cal.wd.nonmembers)
#### 30.8.7 Class weekday_indexed [[time.cal.wdidx]](time.cal.wdidx)
#### 30.8.7.1 Overview [[time.cal.wdidx.overview]](time.cal.wdidx.overview)
#### 30.8.7.2 Member functions [[time.cal.wdidx.members]](time.cal.wdidx.members)
#### 30.8.7.3 Non-member functions [[time.cal.wdidx.nonmembers]](time.cal.wdidx.nonmembers)
#### 30.8.8 Class weekday_last [[time.cal.wdlast]](time.cal.wdlast)
#### 30.8.8.1 Overview [[time.cal.wdlast.overview]](time.cal.wdlast.overview)
#### 30.8.8.2 Member functions [[time.cal.wdlast.members]](time.cal.wdlast.members)
#### 30.8.8.3 Non-member functions [[time.cal.wdlast.nonmembers]](time.cal.wdlast.nonmembers)
#### 30.8.9 Class month_day [[time.cal.md]](time.cal.md)
#### 30.8.9.1 Overview [[time.cal.md.overview]](time.cal.md.overview)
#### 30.8.9.2 Member functions [[time.cal.md.members]](time.cal.md.members)
#### 30.8.9.3 Non-member functions [[time.cal.md.nonmembers]](time.cal.md.nonmembers)
#### 30.8.10 Class month_day_last [[time.cal.mdlast]](time.cal.mdlast)
#### 30.8.11 Class month_weekday [[time.cal.mwd]](time.cal.mwd)
#### 30.8.11.1 Overview [[time.cal.mwd.overview]](time.cal.mwd.overview)
#### 30.8.11.2 Member functions [[time.cal.mwd.members]](time.cal.mwd.members)
#### 30.8.11.3 Non-member functions [[time.cal.mwd.nonmembers]](time.cal.mwd.nonmembers)
#### 30.8.12 Class month_weekday_last [[time.cal.mwdlast]](time.cal.mwdlast)
#### 30.8.12.1 Overview [[time.cal.mwdlast.overview]](time.cal.mwdlast.overview)
#### 30.8.12.2 Member functions [[time.cal.mwdlast.members]](time.cal.mwdlast.members)
#### 30.8.12.3 Non-member functions [[time.cal.mwdlast.nonmembers]](time.cal.mwdlast.nonmembers)
#### 30.8.13 Class year_month [[time.cal.ym]](time.cal.ym)
#### 30.8.13.1 Overview [[time.cal.ym.overview]](time.cal.ym.overview)
#### 30.8.13.2 Member functions [[time.cal.ym.members]](time.cal.ym.members)
#### 30.8.13.3 Non-member functions [[time.cal.ym.nonmembers]](time.cal.ym.nonmembers)
#### 30.8.14 Class year_month_day [[time.cal.ymd]](time.cal.ymd)
#### 30.8.14.1 Overview [[time.cal.ymd.overview]](time.cal.ymd.overview)
#### 30.8.14.2 Member functions [[time.cal.ymd.members]](time.cal.ymd.members)
#### 30.8.14.3 Non-member functions [[time.cal.ymd.nonmembers]](time.cal.ymd.nonmembers)
#### 30.8.15 Class year_month_day_last [[time.cal.ymdlast]](time.cal.ymdlast)
#### 30.8.15.1 Overview [[time.cal.ymdlast.overview]](time.cal.ymdlast.overview)
#### 30.8.15.2 Member functions [[time.cal.ymdlast.members]](time.cal.ymdlast.members)
#### 30.8.15.3 Non-member functions [[time.cal.ymdlast.nonmembers]](time.cal.ymdlast.nonmembers)
#### 30.8.16 Class year_month_weekday [[time.cal.ymwd]](time.cal.ymwd)
#### 30.8.16.1 Overview [[time.cal.ymwd.overview]](time.cal.ymwd.overview)
#### 30.8.16.2 Member functions [[time.cal.ymwd.members]](time.cal.ymwd.members)
#### 30.8.16.3 Non-member functions [[time.cal.ymwd.nonmembers]](time.cal.ymwd.nonmembers)
#### 30.8.17 Class year_month_weekday_last [[time.cal.ymwdlast]](time.cal.ymwdlast)
#### 30.8.17.1 Overview [[time.cal.ymwdlast.overview]](time.cal.ymwdlast.overview)
#### 30.8.17.2 Member functions [[time.cal.ymwdlast.members]](time.cal.ymwdlast.members)
#### 30.8.17.3 Non-member functions [[time.cal.ymwdlast.nonmembers]](time.cal.ymwdlast.nonmembers)
#### 30.8.18 Conventional syntax operators [[time.cal.operators]](time.cal.operators)
### 30.9 Class template hh_mm_ss [[time.hms]](time.hms)
#### 30.9.1 Overview [[time.hms.overview]](time.hms.overview)
#### 30.9.2 Members [[time.hms.members]](time.hms.members)
#### 30.9.3 Non-members [[time.hms.nonmembers]](time.hms.nonmembers)
### 30.10 12/24 hours functions [[time.12]](time.12)
### 30.11 Time zones [[time.zone]](time.zone)
#### 30.11.1 General [[time.zone.general]](time.zone.general)
#### 30.11.2 Time zone database [[time.zone.db]](time.zone.db)
#### 30.11.2.1 Class tzdb [[time.zone.db.tzdb]](time.zone.db.tzdb)
#### 30.11.2.2 Class tzdb_list [[time.zone.db.list]](time.zone.db.list)
#### 30.11.2.3 Time zone database access [[time.zone.db.access]](time.zone.db.access)
#### 30.11.2.4 Remote time zone database support [[time.zone.db.remote]](time.zone.db.remote)
#### 30.11.3 Exception classes [[time.zone.exception]](time.zone.exception)
#### 30.11.3.1 Class nonexistent_local_time [[time.zone.exception.nonexist]](time.zone.exception.nonexist)
#### 30.11.3.2 Class ambiguous_local_time [[time.zone.exception.ambig]](time.zone.exception.ambig)
#### 30.11.4 Information classes [[time.zone.info]](time.zone.info)
#### 30.11.4.1 Class sys_info [[time.zone.info.sys]](time.zone.info.sys)
#### 30.11.4.2 Class local_info [[time.zone.info.local]](time.zone.info.local)
#### 30.11.5 Class time_zone [[time.zone.timezone]](time.zone.timezone)
#### 30.11.5.1 Overview [[time.zone.overview]](time.zone.overview)
#### 30.11.5.2 Member functions [[time.zone.members]](time.zone.members)
#### 30.11.5.3 Non-member functions [[time.zone.nonmembers]](time.zone.nonmembers)
#### 30.11.6 Class template zoned_traits [[time.zone.zonedtraits]](time.zone.zonedtraits)
#### 30.11.7 Class template zoned_time [[time.zone.zonedtime]](time.zone.zonedtime)
#### 30.11.7.1 Overview [[time.zone.zonedtime.overview]](time.zone.zonedtime.overview)
#### 30.11.7.2 Constructors [[time.zone.zonedtime.ctor]](time.zone.zonedtime.ctor)
#### 30.11.7.3 Member functions [[time.zone.zonedtime.members]](time.zone.zonedtime.members)
#### 30.11.7.4 Non-member functions [[time.zone.zonedtime.nonmembers]](time.zone.zonedtime.nonmembers)
#### 30.11.8 Class leap_second [[time.zone.leap]](time.zone.leap)
#### 30.11.8.1 Overview [[time.zone.leap.overview]](time.zone.leap.overview)
#### 30.11.8.2 Member functions [[time.zone.leap.members]](time.zone.leap.members)
#### 30.11.8.3 Non-member functions [[time.zone.leap.nonmembers]](time.zone.leap.nonmembers)
#### 30.11.9 Class time_zone_link [[time.zone.link]](time.zone.link)
#### 30.11.9.1 Overview [[time.zone.link.overview]](time.zone.link.overview)
#### 30.11.9.2 Member functions [[time.zone.link.members]](time.zone.link.members)
#### 30.11.9.3 Non-member functions [[time.zone.link.nonmembers]](time.zone.link.nonmembers)
### 30.12 Formatting [[time.format]](time.format)
### 30.13 Parsing [[time.parse]](time.parse)
### 30.14 Hash support [[time.hash]](time.hash)
### 30.15 Header <ctime> synopsis [[ctime.syn]](ctime.syn)
## 31 Input/output library [[input.output]](#input.output)[[input.output]](input.output)
### 31.1 General [[input.output.general]](input.output.general)
### 31.2 Iostreams requirements [[iostreams.requirements]](iostreams.requirements)
#### 31.2.1 Imbue limitations [[iostream.limits.imbue]](iostream.limits.imbue)
#### 31.2.2 Types [[stream.types]](stream.types)
#### 31.2.3 Positioning type limitations [[iostreams.limits.pos]](iostreams.limits.pos)
#### 31.2.4 Thread safety [[iostreams.threadsafety]](iostreams.threadsafety)
### 31.3 Forward declarations [[iostream.forward]](iostream.forward)
#### 31.3.1 Header <iosfwd> synopsis [[iosfwd.syn]](iosfwd.syn)
#### 31.3.2 Overview [[iostream.forward.overview]](iostream.forward.overview)
### 31.4 Standard iostream objects [[iostream.objects]](iostream.objects)
#### 31.4.1 Header <iostream> synopsis [[iostream.syn]](iostream.syn)
#### 31.4.2 Overview [[iostream.objects.overview]](iostream.objects.overview)
#### 31.4.3 Narrow stream objects [[narrow.stream.objects]](narrow.stream.objects)
#### 31.4.4 Wide stream objects [[wide.stream.objects]](wide.stream.objects)
### 31.5 Iostreams base classes [[iostreams.base]](iostreams.base)
#### 31.5.1 Header <ios> synopsis [[ios.syn]](ios.syn)
#### 31.5.2 Class ios_base [[ios.base]](ios.base)
#### 31.5.2.1 General [[ios.base.general]](ios.base.general)
#### 31.5.2.2 Types [[ios.types]](ios.types)
#### 31.5.2.2.1 Class ios_base::failure [[ios.failure]](ios.failure)
#### 31.5.2.2.2 Type ios_base::fmtflags [[ios.fmtflags]](ios.fmtflags)
#### 31.5.2.2.3 Type ios_base::iostate [[ios.iostate]](ios.iostate)
#### 31.5.2.2.4 Type ios_base::openmode [[ios.openmode]](ios.openmode)
#### 31.5.2.2.5 Type ios_base::seekdir [[ios.seekdir]](ios.seekdir)
#### 31.5.2.2.6 Class ios_base::Init [[ios.init]](ios.init)
#### 31.5.2.3 State functions [[fmtflags.state]](fmtflags.state)
#### 31.5.2.4 Functions [[ios.base.locales]](ios.base.locales)
#### 31.5.2.5 Static members [[ios.members.static]](ios.members.static)
#### 31.5.2.6 Storage functions [[ios.base.storage]](ios.base.storage)
#### 31.5.2.7 Callbacks [[ios.base.callback]](ios.base.callback)
#### 31.5.2.8 Constructors and destructor [[ios.base.cons]](ios.base.cons)
#### 31.5.3 Class template fpos [[fpos]](fpos)
#### 31.5.3.1 General [[fpos.general]](fpos.general)
#### 31.5.3.2 Members [[fpos.members]](fpos.members)
#### 31.5.3.3 Requirements [[fpos.operations]](fpos.operations)
#### 31.5.4 Class template basic_ios [[ios]](ios)
#### 31.5.4.1 Overview [[ios.overview]](ios.overview)
#### 31.5.4.2 Constructors [[basic.ios.cons]](basic.ios.cons)
#### 31.5.4.3 Member functions [[basic.ios.members]](basic.ios.members)
#### 31.5.4.4 Flags functions [[iostate.flags]](iostate.flags)
#### 31.5.5 ios_base manipulators [[std.ios.manip]](std.ios.manip)
#### 31.5.5.1 fmtflags manipulators [[fmtflags.manip]](fmtflags.manip)
#### 31.5.5.2 adjustfield manipulators [[adjustfield.manip]](adjustfield.manip)
#### 31.5.5.3 basefield manipulators [[basefield.manip]](basefield.manip)
#### 31.5.5.4 floatfield manipulators [[floatfield.manip]](floatfield.manip)
#### 31.5.6 Error reporting [[error.reporting]](error.reporting)
### 31.6 Stream buffers [[stream.buffers]](stream.buffers)
#### 31.6.1 Header <streambuf> synopsis [[streambuf.syn]](streambuf.syn)
#### 31.6.2 Stream buffer requirements [[streambuf.reqts]](streambuf.reqts)
#### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf)
#### 31.6.3.1 General [[streambuf.general]](streambuf.general)
#### 31.6.3.2 Constructors [[streambuf.cons]](streambuf.cons)
#### 31.6.3.3 Public member functions [[streambuf.members]](streambuf.members)
#### 31.6.3.3.1 Locales [[streambuf.locales]](streambuf.locales)
#### 31.6.3.3.2 Buffer management and positioning [[streambuf.buffer]](streambuf.buffer)
#### 31.6.3.3.3 Get area [[streambuf.pub.get]](streambuf.pub.get)
#### 31.6.3.3.4 Putback [[streambuf.pub.pback]](streambuf.pub.pback)
#### 31.6.3.3.5 Put area [[streambuf.pub.put]](streambuf.pub.put)
#### 31.6.3.4 Protected member functions [[streambuf.protected]](streambuf.protected)
#### 31.6.3.4.1 Assignment [[streambuf.assign]](streambuf.assign)
#### 31.6.3.4.2 Get area access [[streambuf.get.area]](streambuf.get.area)
#### 31.6.3.4.3 Put area access [[streambuf.put.area]](streambuf.put.area)
#### 31.6.3.5 Virtual functions [[streambuf.virtuals]](streambuf.virtuals)
#### 31.6.3.5.1 Locales [[streambuf.virt.locales]](streambuf.virt.locales)
#### 31.6.3.5.2 Buffer management and positioning [[streambuf.virt.buffer]](streambuf.virt.buffer)
#### 31.6.3.5.3 Get area [[streambuf.virt.get]](streambuf.virt.get)
#### 31.6.3.5.4 Putback [[streambuf.virt.pback]](streambuf.virt.pback)
#### 31.6.3.5.5 Put area [[streambuf.virt.put]](streambuf.virt.put)
### 31.7 Formatting and manipulators [[iostream.format]](iostream.format)
#### 31.7.1 Header <istream> synopsis [[istream.syn]](istream.syn)
#### 31.7.2 Header <ostream> synopsis [[ostream.syn]](ostream.syn)
#### 31.7.3 Header <iomanip> synopsis [[iomanip.syn]](iomanip.syn)
#### 31.7.4 Header <print> synopsis [[print.syn]](print.syn)
#### 31.7.5 Input streams [[input.streams]](input.streams)
#### 31.7.5.1 General [[input.streams.general]](input.streams.general)
#### 31.7.5.2 Class template basic_istream [[istream]](istream)
#### 31.7.5.2.1 General [[istream.general]](istream.general)
#### 31.7.5.2.2 Constructors [[istream.cons]](istream.cons)
#### 31.7.5.2.3 Assignment and swap [[istream.assign]](istream.assign)
#### 31.7.5.2.4 Class basic_istream::sentry [[istream.sentry]](istream.sentry)
#### 31.7.5.3 Formatted input functions [[istream.formatted]](istream.formatted)
#### 31.7.5.3.1 Common requirements [[istream.formatted.reqmts]](istream.formatted.reqmts)
#### 31.7.5.3.2 Arithmetic extractors [[istream.formatted.arithmetic]](istream.formatted.arithmetic)
#### 31.7.5.3.3 basic_istream::operator>> [[istream.extractors]](istream.extractors)
#### 31.7.5.4 Unformatted input functions [[istream.unformatted]](istream.unformatted)
#### 31.7.5.5 Standard basic_istream manipulators [[istream.manip]](istream.manip)
#### 31.7.5.6 Rvalue stream extraction [[istream.rvalue]](istream.rvalue)
#### 31.7.5.7 Class template basic_iostream [[iostreamclass]](iostreamclass)
#### 31.7.5.7.1 General [[iostreamclass.general]](iostreamclass.general)
#### 31.7.5.7.2 Constructors [[iostream.cons]](iostream.cons)
#### 31.7.5.7.3 Destructor [[iostream.dest]](iostream.dest)
#### 31.7.5.7.4 Assignment and swap [[iostream.assign]](iostream.assign)
#### 31.7.6 Output streams [[output.streams]](output.streams)
#### 31.7.6.1 General [[output.streams.general]](output.streams.general)
#### 31.7.6.2 Class template basic_ostream [[ostream]](ostream)
#### 31.7.6.2.1 General [[ostream.general]](ostream.general)
#### 31.7.6.2.2 Constructors [[ostream.cons]](ostream.cons)
#### 31.7.6.2.3 Assignment and swap [[ostream.assign]](ostream.assign)
#### 31.7.6.2.4 Class basic_ostream::sentry [[ostream.sentry]](ostream.sentry)
#### 31.7.6.2.5 Seek members [[ostream.seeks]](ostream.seeks)
#### 31.7.6.3 Formatted output functions [[ostream.formatted]](ostream.formatted)
#### 31.7.6.3.1 Common requirements [[ostream.formatted.reqmts]](ostream.formatted.reqmts)
#### 31.7.6.3.2 Arithmetic inserters [[ostream.inserters.arithmetic]](ostream.inserters.arithmetic)
#### 31.7.6.3.3 basic_ostream::operator<< [[ostream.inserters]](ostream.inserters)
#### 31.7.6.3.4 Character inserter function templates [[ostream.inserters.character]](ostream.inserters.character)
#### 31.7.6.3.5 Print [[ostream.formatted.print]](ostream.formatted.print)
#### 31.7.6.4 Unformatted output functions [[ostream.unformatted]](ostream.unformatted)
#### 31.7.6.5 Standard basic_ostream manipulators [[ostream.manip]](ostream.manip)
#### 31.7.6.6 Rvalue stream insertion [[ostream.rvalue]](ostream.rvalue)
#### 31.7.7 Standard manipulators [[std.manip]](std.manip)
#### 31.7.8 Extended manipulators [[ext.manip]](ext.manip)
#### 31.7.9 Quoted manipulators [[quoted.manip]](quoted.manip)
#### 31.7.10 Print functions [[print.fun]](print.fun)
### 31.8 String-based streams [[string.streams]](string.streams)
#### 31.8.1 Header <sstream> synopsis [[sstream.syn]](sstream.syn)
#### 31.8.2 Class template basic_stringbuf [[stringbuf]](stringbuf)
#### 31.8.2.1 General [[stringbuf.general]](stringbuf.general)
#### 31.8.2.2 Constructors [[stringbuf.cons]](stringbuf.cons)
#### 31.8.2.3 Assignment and swap [[stringbuf.assign]](stringbuf.assign)
#### 31.8.2.4 Member functions [[stringbuf.members]](stringbuf.members)
#### 31.8.2.5 Overridden virtual functions [[stringbuf.virtuals]](stringbuf.virtuals)
#### 31.8.3 Class template basic_istringstream [[istringstream]](istringstream)
#### 31.8.3.1 General [[istringstream.general]](istringstream.general)
#### 31.8.3.2 Constructors [[istringstream.cons]](istringstream.cons)
#### 31.8.3.3 Swap [[istringstream.swap]](istringstream.swap)
#### 31.8.3.4 Member functions [[istringstream.members]](istringstream.members)
#### 31.8.4 Class template basic_ostringstream [[ostringstream]](ostringstream)
#### 31.8.4.1 General [[ostringstream.general]](ostringstream.general)
#### 31.8.4.2 Constructors [[ostringstream.cons]](ostringstream.cons)
#### 31.8.4.3 Swap [[ostringstream.swap]](ostringstream.swap)
#### 31.8.4.4 Member functions [[ostringstream.members]](ostringstream.members)
#### 31.8.5 Class template basic_stringstream [[stringstream]](stringstream)
#### 31.8.5.1 General [[stringstream.general]](stringstream.general)
#### 31.8.5.2 Constructors [[stringstream.cons]](stringstream.cons)
#### 31.8.5.3 Swap [[stringstream.swap]](stringstream.swap)
#### 31.8.5.4 Member functions [[stringstream.members]](stringstream.members)
### 31.9 Span-based streams [[span.streams]](span.streams)
#### 31.9.1 Overview [[span.streams.overview]](span.streams.overview)
#### 31.9.2 Header <spanstream> synopsis [[spanstream.syn]](spanstream.syn)
#### 31.9.3 Class template basic_spanbuf [[spanbuf]](spanbuf)
#### 31.9.3.1 General [[spanbuf.general]](spanbuf.general)
#### 31.9.3.2 Constructors [[spanbuf.cons]](spanbuf.cons)
#### 31.9.3.3 Assignment and swap [[spanbuf.assign]](spanbuf.assign)
#### 31.9.3.4 Member functions [[spanbuf.members]](spanbuf.members)
#### 31.9.3.5 Overridden virtual functions [[spanbuf.virtuals]](spanbuf.virtuals)
#### 31.9.4 Class template basic_ispanstream [[ispanstream]](ispanstream)
#### 31.9.4.1 General [[ispanstream.general]](ispanstream.general)
#### 31.9.4.2 Constructors [[ispanstream.cons]](ispanstream.cons)
#### 31.9.4.3 Swap [[ispanstream.swap]](ispanstream.swap)
#### 31.9.4.4 Member functions [[ispanstream.members]](ispanstream.members)
#### 31.9.5 Class template basic_ospanstream [[ospanstream]](ospanstream)
#### 31.9.5.1 General [[ospanstream.general]](ospanstream.general)
#### 31.9.5.2 Constructors [[ospanstream.cons]](ospanstream.cons)
#### 31.9.5.3 Swap [[ospanstream.swap]](ospanstream.swap)
#### 31.9.5.4 Member functions [[ospanstream.members]](ospanstream.members)
#### 31.9.6 Class template basic_spanstream [[spanstream]](spanstream)
#### 31.9.6.1 General [[spanstream.general]](spanstream.general)
#### 31.9.6.2 Constructors [[spanstream.cons]](spanstream.cons)
#### 31.9.6.3 Swap [[spanstream.swap]](spanstream.swap)
#### 31.9.6.4 Member functions [[spanstream.members]](spanstream.members)
### 31.10 File-based streams [[file.streams]](file.streams)
#### 31.10.1 Header <fstream> synopsis [[fstream.syn]](fstream.syn)
#### 31.10.2 Native handles [[file.native]](file.native)
#### 31.10.3 Class template basic_filebuf [[filebuf]](filebuf)
#### 31.10.3.1 General [[filebuf.general]](filebuf.general)
#### 31.10.3.2 Constructors [[filebuf.cons]](filebuf.cons)
#### 31.10.3.3 Assignment and swap [[filebuf.assign]](filebuf.assign)
#### 31.10.3.4 Member functions [[filebuf.members]](filebuf.members)
#### 31.10.3.5 Overridden virtual functions [[filebuf.virtuals]](filebuf.virtuals)
#### 31.10.4 Class template basic_ifstream [[ifstream]](ifstream)
#### 31.10.4.1 General [[ifstream.general]](ifstream.general)
#### 31.10.4.2 Constructors [[ifstream.cons]](ifstream.cons)
#### 31.10.4.3 Swap [[ifstream.swap]](ifstream.swap)
#### 31.10.4.4 Member functions [[ifstream.members]](ifstream.members)
#### 31.10.5 Class template basic_ofstream [[ofstream]](ofstream)
#### 31.10.5.1 General [[ofstream.general]](ofstream.general)
#### 31.10.5.2 Constructors [[ofstream.cons]](ofstream.cons)
#### 31.10.5.3 Swap [[ofstream.swap]](ofstream.swap)
#### 31.10.5.4 Member functions [[ofstream.members]](ofstream.members)
#### 31.10.6 Class template basic_fstream [[fstream]](fstream)
#### 31.10.6.1 General [[fstream.general]](fstream.general)
#### 31.10.6.2 Constructors [[fstream.cons]](fstream.cons)
#### 31.10.6.3 Swap [[fstream.swap]](fstream.swap)
#### 31.10.6.4 Member functions [[fstream.members]](fstream.members)
### 31.11 Synchronized output streams [[syncstream]](syncstream)
#### 31.11.1 Header <syncstream> synopsis [[syncstream.syn]](syncstream.syn)
#### 31.11.2 Class template basic_syncbuf [[syncstream.syncbuf]](syncstream.syncbuf)
#### 31.11.2.1 Overview [[syncstream.syncbuf.overview]](syncstream.syncbuf.overview)
#### 31.11.2.2 Construction and destruction [[syncstream.syncbuf.cons]](syncstream.syncbuf.cons)
#### 31.11.2.3 Assignment and swap [[syncstream.syncbuf.assign]](syncstream.syncbuf.assign)
#### 31.11.2.4 Member functions [[syncstream.syncbuf.members]](syncstream.syncbuf.members)
#### 31.11.2.5 Overridden virtual functions [[syncstream.syncbuf.virtuals]](syncstream.syncbuf.virtuals)
#### 31.11.2.6 Specialized algorithms [[syncstream.syncbuf.special]](syncstream.syncbuf.special)
#### 31.11.3 Class template basic_osyncstream [[syncstream.osyncstream]](syncstream.osyncstream)
#### 31.11.3.1 Overview [[syncstream.osyncstream.overview]](syncstream.osyncstream.overview)
#### 31.11.3.2 Construction and destruction [[syncstream.osyncstream.cons]](syncstream.osyncstream.cons)
#### 31.11.3.3 Member functions [[syncstream.osyncstream.members]](syncstream.osyncstream.members)
### 31.12 File systems [[filesystems]](filesystems)
#### 31.12.1 General [[fs.general]](fs.general)
#### 31.12.2 Conformance [[fs.conformance]](fs.conformance)
#### 31.12.2.1 General [[fs.conformance.general]](fs.conformance.general)
#### 31.12.2.2 POSIX conformance [[fs.conform.9945]](fs.conform.9945)
#### 31.12.2.3 Operating system dependent behavior conformance [[fs.conform.os]](fs.conform.os)
#### 31.12.2.4 File system race behavior [[fs.race.behavior]](fs.race.behavior)
#### 31.12.3 Requirements [[fs.req]](fs.req)
#### 31.12.4 Header <filesystem> synopsis [[fs.filesystem.syn]](fs.filesystem.syn)
#### 31.12.5 Error reporting [[fs.err.report]](fs.err.report)
#### 31.12.6 Class path [[fs.class.path]](fs.class.path)
#### 31.12.6.1 General [[fs.class.path.general]](fs.class.path.general)
#### 31.12.6.2 Generic pathname format [[fs.path.generic]](fs.path.generic)
#### 31.12.6.3 Conversions [[fs.path.cvt]](fs.path.cvt)
#### 31.12.6.3.1 Argument format conversions [[fs.path.fmt.cvt]](fs.path.fmt.cvt)
#### 31.12.6.3.2 Type and encoding conversions [[fs.path.type.cvt]](fs.path.type.cvt)
#### 31.12.6.4 Requirements [[fs.path.req]](fs.path.req)
#### 31.12.6.5 Members [[fs.path.member]](fs.path.member)
#### 31.12.6.5.1 Constructors [[fs.path.construct]](fs.path.construct)
#### 31.12.6.5.2 Assignments [[fs.path.assign]](fs.path.assign)
#### 31.12.6.5.3 Appends [[fs.path.append]](fs.path.append)
#### 31.12.6.5.4 Concatenation [[fs.path.concat]](fs.path.concat)
#### 31.12.6.5.5 Modifiers [[fs.path.modifiers]](fs.path.modifiers)
#### 31.12.6.5.6 Native format observers [[fs.path.native.obs]](fs.path.native.obs)
#### 31.12.6.5.7 Generic format observers [[fs.path.generic.obs]](fs.path.generic.obs)
#### 31.12.6.5.8 Compare [[fs.path.compare]](fs.path.compare)
#### 31.12.6.5.9 Decomposition [[fs.path.decompose]](fs.path.decompose)
#### 31.12.6.5.10 Query [[fs.path.query]](fs.path.query)
#### 31.12.6.5.11 Generation [[fs.path.gen]](fs.path.gen)
#### 31.12.6.6 Iterators [[fs.path.itr]](fs.path.itr)
#### 31.12.6.7 Inserter and extractor [[fs.path.io]](fs.path.io)
#### 31.12.6.8 Non-member functions [[fs.path.nonmember]](fs.path.nonmember)
#### 31.12.6.9 Formatting support [[fs.path.fmtr]](fs.path.fmtr)
#### 31.12.6.9.1 Formatting support overview [[fs.path.fmtr.general]](fs.path.fmtr.general)
#### 31.12.6.9.2 Formatting support functions [[fs.path.fmtr.funcs]](fs.path.fmtr.funcs)
#### 31.12.6.10 Hash support [[fs.path.hash]](fs.path.hash)
#### 31.12.7 Class filesystem_error [[fs.class.filesystem.error]](fs.class.filesystem.error)
#### 31.12.7.1 General [[fs.class.filesystem.error.general]](fs.class.filesystem.error.general)
#### 31.12.7.2 Members [[fs.filesystem.error.members]](fs.filesystem.error.members)
#### 31.12.8 Enumerations [[fs.enum]](fs.enum)
#### 31.12.8.1 Enum path::format [[fs.enum.path.format]](fs.enum.path.format)
#### 31.12.8.2 Enum class file_type [[fs.enum.file.type]](fs.enum.file.type)
#### 31.12.8.3 Enum class copy_options [[fs.enum.copy.opts]](fs.enum.copy.opts)
#### 31.12.8.4 Enum class perms [[fs.enum.perms]](fs.enum.perms)
#### 31.12.8.5 Enum class perm_options [[fs.enum.perm.opts]](fs.enum.perm.opts)
#### 31.12.8.6 Enum class directory_options [[fs.enum.dir.opts]](fs.enum.dir.opts)
#### 31.12.9 Class file_status [[fs.class.file.status]](fs.class.file.status)
#### 31.12.9.1 General [[fs.class.file.status.general]](fs.class.file.status.general)
#### 31.12.9.2 Constructors [[fs.file.status.cons]](fs.file.status.cons)
#### 31.12.9.3 Observers [[fs.file.status.obs]](fs.file.status.obs)
#### 31.12.9.4 Modifiers [[fs.file.status.mods]](fs.file.status.mods)
#### 31.12.10 Class directory_entry [[fs.class.directory.entry]](fs.class.directory.entry)
#### 31.12.10.1 General [[fs.class.directory.entry.general]](fs.class.directory.entry.general)
#### 31.12.10.2 Constructors [[fs.dir.entry.cons]](fs.dir.entry.cons)
#### 31.12.10.3 Modifiers [[fs.dir.entry.mods]](fs.dir.entry.mods)
#### 31.12.10.4 Observers [[fs.dir.entry.obs]](fs.dir.entry.obs)
#### 31.12.10.5 Inserter [[fs.dir.entry.io]](fs.dir.entry.io)
#### 31.12.11 Class directory_iterator [[fs.class.directory.iterator]](fs.class.directory.iterator)
#### 31.12.11.1 General [[fs.class.directory.iterator.general]](fs.class.directory.iterator.general)
#### 31.12.11.2 Members [[fs.dir.itr.members]](fs.dir.itr.members)
#### 31.12.11.3 Non-member functions [[fs.dir.itr.nonmembers]](fs.dir.itr.nonmembers)
#### 31.12.12 Class recursive_directory_iterator [[fs.class.rec.dir.itr]](fs.class.rec.dir.itr)
#### 31.12.12.1 General [[fs.class.rec.dir.itr.general]](fs.class.rec.dir.itr.general)
#### 31.12.12.2 Members [[fs.rec.dir.itr.members]](fs.rec.dir.itr.members)
#### 31.12.12.3 Non-member functions [[fs.rec.dir.itr.nonmembers]](fs.rec.dir.itr.nonmembers)
#### 31.12.13 Filesystem operation functions [[fs.op.funcs]](fs.op.funcs)
#### 31.12.13.1 General [[fs.op.funcs.general]](fs.op.funcs.general)
#### 31.12.13.2 Absolute [[fs.op.absolute]](fs.op.absolute)
#### 31.12.13.3 Canonical [[fs.op.canonical]](fs.op.canonical)
#### 31.12.13.4 Copy [[fs.op.copy]](fs.op.copy)
#### 31.12.13.5 Copy file [[fs.op.copy.file]](fs.op.copy.file)
#### 31.12.13.6 Copy symlink [[fs.op.copy.symlink]](fs.op.copy.symlink)
#### 31.12.13.7 Create directories [[fs.op.create.directories]](fs.op.create.directories)
#### 31.12.13.8 Create directory [[fs.op.create.directory]](fs.op.create.directory)
#### 31.12.13.9 Create directory symlink [[fs.op.create.dir.symlk]](fs.op.create.dir.symlk)
#### 31.12.13.10 Create hard link [[fs.op.create.hard.lk]](fs.op.create.hard.lk)
#### 31.12.13.11 Create symlink [[fs.op.create.symlink]](fs.op.create.symlink)
#### 31.12.13.12 Current path [[fs.op.current.path]](fs.op.current.path)
#### 31.12.13.13 Equivalent [[fs.op.equivalent]](fs.op.equivalent)
#### 31.12.13.14 Exists [[fs.op.exists]](fs.op.exists)
#### 31.12.13.15 File size [[fs.op.file.size]](fs.op.file.size)
#### 31.12.13.16 Hard link count [[fs.op.hard.lk.ct]](fs.op.hard.lk.ct)
#### 31.12.13.17 Is block file [[fs.op.is.block.file]](fs.op.is.block.file)
#### 31.12.13.18 Is character file [[fs.op.is.char.file]](fs.op.is.char.file)
#### 31.12.13.19 Is directory [[fs.op.is.directory]](fs.op.is.directory)
#### 31.12.13.20 Is empty [[fs.op.is.empty]](fs.op.is.empty)
#### 31.12.13.21 Is fifo [[fs.op.is.fifo]](fs.op.is.fifo)
#### 31.12.13.22 Is other [[fs.op.is.other]](fs.op.is.other)
#### 31.12.13.23 Is regular file [[fs.op.is.regular.file]](fs.op.is.regular.file)
#### 31.12.13.24 Is socket [[fs.op.is.socket]](fs.op.is.socket)
#### 31.12.13.25 Is symlink [[fs.op.is.symlink]](fs.op.is.symlink)
#### 31.12.13.26 Last write time [[fs.op.last.write.time]](fs.op.last.write.time)
#### 31.12.13.27 Permissions [[fs.op.permissions]](fs.op.permissions)
#### 31.12.13.28 Proximate [[fs.op.proximate]](fs.op.proximate)
#### 31.12.13.29 Read symlink [[fs.op.read.symlink]](fs.op.read.symlink)
#### 31.12.13.30 Relative [[fs.op.relative]](fs.op.relative)
#### 31.12.13.31 Remove [[fs.op.remove]](fs.op.remove)
#### 31.12.13.32 Remove all [[fs.op.remove.all]](fs.op.remove.all)
#### 31.12.13.33 Rename [[fs.op.rename]](fs.op.rename)
#### 31.12.13.34 Resize file [[fs.op.resize.file]](fs.op.resize.file)
#### 31.12.13.35 Space [[fs.op.space]](fs.op.space)
#### 31.12.13.36 Status [[fs.op.status]](fs.op.status)
#### 31.12.13.37 Status known [[fs.op.status.known]](fs.op.status.known)
#### 31.12.13.38 Symlink status [[fs.op.symlink.status]](fs.op.symlink.status)
#### 31.12.13.39 Temporary directory path [[fs.op.temp.dir.path]](fs.op.temp.dir.path)
#### 31.12.13.40 Weakly canonical [[fs.op.weakly.canonical]](fs.op.weakly.canonical)
### 31.13 C library files [[c.files]](c.files)
#### 31.13.1 Header <cstdio> synopsis [[cstdio.syn]](cstdio.syn)
#### 31.13.2 Header <cinttypes> synopsis [[cinttypes.syn]](cinttypes.syn)
## 32 Concurrency support library [[thread]](#thread)[[thread]](thread)
### 32.1 General [[thread.general]](thread.general)
### 32.2 Requirements [[thread.req]](thread.req)
#### 32.2.1 Template parameter names [[thread.req.paramname]](thread.req.paramname)
#### 32.2.2 Exceptions [[thread.req.exception]](thread.req.exception)
#### 32.2.3 Native handles [[thread.req.native]](thread.req.native)
#### 32.2.4 Timing specifications [[thread.req.timing]](thread.req.timing)
#### 32.2.5 Requirements for *Cpp17Lockable* types [[thread.req.lockable]](thread.req.lockable)
#### 32.2.5.1 General [[thread.req.lockable.general]](thread.req.lockable.general)
#### 32.2.5.2 *Cpp17BasicLockable* requirements [[thread.req.lockable.basic]](thread.req.lockable.basic)
#### 32.2.5.3 *Cpp17Lockable* requirements [[thread.req.lockable.req]](thread.req.lockable.req)
#### 32.2.5.4 *Cpp17TimedLockable* requirements [[thread.req.lockable.timed]](thread.req.lockable.timed)
#### 32.2.5.5 *Cpp17SharedLockable* requirements [[thread.req.lockable.shared]](thread.req.lockable.shared)
#### 32.2.5.6 *Cpp17SharedTimedLockable* requirements [[thread.req.lockable.shared.timed]](thread.req.lockable.shared.timed)
### 32.3 Stop tokens [[thread.stoptoken]](thread.stoptoken)
#### 32.3.1 Introduction [[thread.stoptoken.intro]](thread.stoptoken.intro)
#### 32.3.2 Header <stop_token> synopsis [[thread.stoptoken.syn]](thread.stoptoken.syn)
#### 32.3.3 Stop token concepts [[stoptoken.concepts]](stoptoken.concepts)
#### 32.3.4 Class stop_token [[stoptoken]](stoptoken)
#### 32.3.4.1 General [[stoptoken.general]](stoptoken.general)
#### 32.3.4.2 Member functions [[stoptoken.mem]](stoptoken.mem)
#### 32.3.5 Class stop_source [[stopsource]](stopsource)
#### 32.3.5.1 General [[stopsource.general]](stopsource.general)
#### 32.3.5.2 Constructors, copy, and assignment [[stopsource.cons]](stopsource.cons)
#### 32.3.5.3 Member functions [[stopsource.mem]](stopsource.mem)
#### 32.3.6 Class template stop_callback [[stopcallback]](stopcallback)
#### 32.3.6.1 General [[stopcallback.general]](stopcallback.general)
#### 32.3.6.2 Constructors and destructor [[stopcallback.cons]](stopcallback.cons)
#### 32.3.7 Class never_stop_token [[stoptoken.never]](stoptoken.never)
#### 32.3.8 Class inplace_stop_token [[stoptoken.inplace]](stoptoken.inplace)
#### 32.3.8.1 General [[stoptoken.inplace.general]](stoptoken.inplace.general)
#### 32.3.8.2 Member functions [[stoptoken.inplace.mem]](stoptoken.inplace.mem)
#### 32.3.9 Class inplace_stop_source [[stopsource.inplace]](stopsource.inplace)
#### 32.3.9.1 General [[stopsource.inplace.general]](stopsource.inplace.general)
#### 32.3.9.2 Constructors [[stopsource.inplace.cons]](stopsource.inplace.cons)
#### 32.3.9.3 Member functions [[stopsource.inplace.mem]](stopsource.inplace.mem)
#### 32.3.10 Class template inplace_stop_callback [[stopcallback.inplace]](stopcallback.inplace)
#### 32.3.10.1 General [[stopcallback.inplace.general]](stopcallback.inplace.general)
#### 32.3.10.2 Constructors and destructor [[stopcallback.inplace.cons]](stopcallback.inplace.cons)
### 32.4 Threads [[thread.threads]](thread.threads)
#### 32.4.1 General [[thread.threads.general]](thread.threads.general)
#### 32.4.2 Header <thread> synopsis [[thread.syn]](thread.syn)
#### 32.4.3 Class thread [[thread.thread.class]](thread.thread.class)
#### 32.4.3.1 General [[thread.thread.class.general]](thread.thread.class.general)
#### 32.4.3.2 Class thread::id [[thread.thread.id]](thread.thread.id)
#### 32.4.3.3 Constructors [[thread.thread.constr]](thread.thread.constr)
#### 32.4.3.4 Destructor [[thread.thread.destr]](thread.thread.destr)
#### 32.4.3.5 Assignment [[thread.thread.assign]](thread.thread.assign)
#### 32.4.3.6 Members [[thread.thread.member]](thread.thread.member)
#### 32.4.3.7 Static members [[thread.thread.static]](thread.thread.static)
#### 32.4.3.8 Specialized algorithms [[thread.thread.algorithm]](thread.thread.algorithm)
#### 32.4.4 Class jthread [[thread.jthread.class]](thread.jthread.class)
#### 32.4.4.1 General [[thread.jthread.class.general]](thread.jthread.class.general)
#### 32.4.4.2 Constructors, move, and assignment [[thread.jthread.cons]](thread.jthread.cons)
#### 32.4.4.3 Members [[thread.jthread.mem]](thread.jthread.mem)
#### 32.4.4.4 Stop token handling [[thread.jthread.stop]](thread.jthread.stop)
#### 32.4.4.5 Specialized algorithms [[thread.jthread.special]](thread.jthread.special)
#### 32.4.4.6 Static members [[thread.jthread.static]](thread.jthread.static)
#### 32.4.5 Namespace this_thread [[thread.thread.this]](thread.thread.this)
### 32.5 Atomic operations [[atomics]](atomics)
#### 32.5.1 General [[atomics.general]](atomics.general)
#### 32.5.2 Header <atomic> synopsis [[atomics.syn]](atomics.syn)
#### 32.5.3 Type aliases [[atomics.alias]](atomics.alias)
#### 32.5.4 Order and consistency [[atomics.order]](atomics.order)
#### 32.5.5 Lock-free property [[atomics.lockfree]](atomics.lockfree)
#### 32.5.6 Waiting and notifying [[atomics.wait]](atomics.wait)
#### 32.5.7 Class template atomic_ref [[atomics.ref.generic]](atomics.ref.generic)
#### 32.5.7.1 General [[atomics.ref.generic.general]](atomics.ref.generic.general)
#### 32.5.7.2 Operations [[atomics.ref.ops]](atomics.ref.ops)
#### 32.5.7.3 Specializations for integral types [[atomics.ref.int]](atomics.ref.int)
#### 32.5.7.4 Specializations for floating-point types [[atomics.ref.float]](atomics.ref.float)
#### 32.5.7.5 Specialization for pointers [[atomics.ref.pointer]](atomics.ref.pointer)
#### 32.5.7.6 Member operators
common to integers and pointers to objects [[atomics.ref.memop]](atomics.ref.memop)
#### 32.5.8 Class template atomic [[atomics.types.generic]](atomics.types.generic)
#### 32.5.8.1 General [[atomics.types.generic.general]](atomics.types.generic.general)
#### 32.5.8.2 Operations on atomic types [[atomics.types.operations]](atomics.types.operations)
#### 32.5.8.3 Specializations for integers [[atomics.types.int]](atomics.types.int)
#### 32.5.8.4 Specializations for floating-point types [[atomics.types.float]](atomics.types.float)
#### 32.5.8.5 Partial specialization for pointers [[atomics.types.pointer]](atomics.types.pointer)
#### 32.5.8.6 Member operators common to integers and pointers to objects [[atomics.types.memop]](atomics.types.memop)
#### 32.5.8.7 Partial specializations for smart pointers [[util.smartptr.atomic]](util.smartptr.atomic)
#### 32.5.8.7.1 General [[util.smartptr.atomic.general]](util.smartptr.atomic.general)
#### 32.5.8.7.2 Partial specialization for shared_ptr [[util.smartptr.atomic.shared]](util.smartptr.atomic.shared)
#### 32.5.8.7.3 Partial specialization for weak_ptr [[util.smartptr.atomic.weak]](util.smartptr.atomic.weak)
#### 32.5.9 Non-member functions [[atomics.nonmembers]](atomics.nonmembers)
#### 32.5.10 Flag type and operations [[atomics.flag]](atomics.flag)
#### 32.5.11 Fences [[atomics.fences]](atomics.fences)
#### 32.5.12 C compatibility [[stdatomic.h.syn]](stdatomic.h.syn)
### 32.6 Mutual exclusion [[thread.mutex]](thread.mutex)
#### 32.6.1 General [[thread.mutex.general]](thread.mutex.general)
#### 32.6.2 Header <mutex> synopsis [[mutex.syn]](mutex.syn)
#### 32.6.3 Header <shared_mutex> synopsis [[shared.mutex.syn]](shared.mutex.syn)
#### 32.6.4 Mutex requirements [[thread.mutex.requirements]](thread.mutex.requirements)
#### 32.6.4.1 General [[thread.mutex.requirements.general]](thread.mutex.requirements.general)
#### 32.6.4.2 Mutex types [[thread.mutex.requirements.mutex]](thread.mutex.requirements.mutex)
#### 32.6.4.2.1 General [[thread.mutex.requirements.mutex.general]](thread.mutex.requirements.mutex.general)
#### 32.6.4.2.2 Class mutex [[thread.mutex.class]](thread.mutex.class)
#### 32.6.4.2.3 Class recursive_mutex [[thread.mutex.recursive]](thread.mutex.recursive)
#### 32.6.4.3 Timed mutex types [[thread.timedmutex.requirements]](thread.timedmutex.requirements)
#### 32.6.4.3.1 General [[thread.timedmutex.requirements.general]](thread.timedmutex.requirements.general)
#### 32.6.4.3.2 Class timed_mutex [[thread.timedmutex.class]](thread.timedmutex.class)
#### 32.6.4.3.3 Class recursive_timed_mutex [[thread.timedmutex.recursive]](thread.timedmutex.recursive)
#### 32.6.4.4 Shared mutex types [[thread.sharedmutex.requirements]](thread.sharedmutex.requirements)
#### 32.6.4.4.1 General [[thread.sharedmutex.requirements.general]](thread.sharedmutex.requirements.general)
#### 32.6.4.4.2 Class shared_mutex [[thread.sharedmutex.class]](thread.sharedmutex.class)
#### 32.6.4.5 Shared timed mutex types [[thread.sharedtimedmutex.requirements]](thread.sharedtimedmutex.requirements)
#### 32.6.4.5.1 General [[thread.sharedtimedmutex.requirements.general]](thread.sharedtimedmutex.requirements.general)
#### 32.6.4.5.2 Class shared_timed_mutex [[thread.sharedtimedmutex.class]](thread.sharedtimedmutex.class)
#### 32.6.5 Locks [[thread.lock]](thread.lock)
#### 32.6.5.1 General [[thread.lock.general]](thread.lock.general)
#### 32.6.5.2 Class template lock_guard [[thread.lock.guard]](thread.lock.guard)
#### 32.6.5.3 Class template scoped_lock [[thread.lock.scoped]](thread.lock.scoped)
#### 32.6.5.4 Class template unique_lock [[thread.lock.unique]](thread.lock.unique)
#### 32.6.5.4.1 General [[thread.lock.unique.general]](thread.lock.unique.general)
#### 32.6.5.4.2 Constructors, destructor, and assignment [[thread.lock.unique.cons]](thread.lock.unique.cons)
#### 32.6.5.4.3 Locking [[thread.lock.unique.locking]](thread.lock.unique.locking)
#### 32.6.5.4.4 Modifiers [[thread.lock.unique.mod]](thread.lock.unique.mod)
#### 32.6.5.4.5 Observers [[thread.lock.unique.obs]](thread.lock.unique.obs)
#### 32.6.5.5 Class template shared_lock [[thread.lock.shared]](thread.lock.shared)
#### 32.6.5.5.1 General [[thread.lock.shared.general]](thread.lock.shared.general)
#### 32.6.5.5.2 Constructors, destructor, and assignment [[thread.lock.shared.cons]](thread.lock.shared.cons)
#### 32.6.5.5.3 Locking [[thread.lock.shared.locking]](thread.lock.shared.locking)
#### 32.6.5.5.4 Modifiers [[thread.lock.shared.mod]](thread.lock.shared.mod)
#### 32.6.5.5.5 Observers [[thread.lock.shared.obs]](thread.lock.shared.obs)
#### 32.6.6 Generic locking algorithms [[thread.lock.algorithm]](thread.lock.algorithm)
#### 32.6.7 Call once [[thread.once]](thread.once)
#### 32.6.7.1 Struct once_flag [[thread.once.onceflag]](thread.once.onceflag)
#### 32.6.7.2 Function call_once [[thread.once.callonce]](thread.once.callonce)
### 32.7 Condition variables [[thread.condition]](thread.condition)
#### 32.7.1 General [[thread.condition.general]](thread.condition.general)
#### 32.7.2 Header <condition_variable> synopsis [[condition.variable.syn]](condition.variable.syn)
#### 32.7.3 Non-member functions [[thread.condition.nonmember]](thread.condition.nonmember)
#### 32.7.4 Class condition_variable [[thread.condition.condvar]](thread.condition.condvar)
#### 32.7.5 Class condition_variable_any [[thread.condition.condvarany]](thread.condition.condvarany)
#### 32.7.5.1 General [[thread.condition.condvarany.general]](thread.condition.condvarany.general)
#### 32.7.5.2 Noninterruptible waits [[thread.condvarany.wait]](thread.condvarany.wait)
#### 32.7.5.3 Interruptible waits [[thread.condvarany.intwait]](thread.condvarany.intwait)
### 32.8 Semaphore [[thread.sema]](thread.sema)
#### 32.8.1 General [[thread.sema.general]](thread.sema.general)
#### 32.8.2 Header <semaphore> synopsis [[semaphore.syn]](semaphore.syn)
#### 32.8.3 Class template counting_semaphore [[thread.sema.cnt]](thread.sema.cnt)
### 32.9 Coordination types [[thread.coord]](thread.coord)
#### 32.9.1 General [[thread.coord.general]](thread.coord.general)
#### 32.9.2 Latches [[thread.latch]](thread.latch)
#### 32.9.2.1 General [[thread.latch.general]](thread.latch.general)
#### 32.9.2.2 Header <latch> synopsis [[latch.syn]](latch.syn)
#### 32.9.2.3 Class latch [[thread.latch.class]](thread.latch.class)
#### 32.9.3 Barriers [[thread.barrier]](thread.barrier)
#### 32.9.3.1 General [[thread.barrier.general]](thread.barrier.general)
#### 32.9.3.2 Header <barrier> synopsis [[barrier.syn]](barrier.syn)
#### 32.9.3.3 Class template barrier [[thread.barrier.class]](thread.barrier.class)
### 32.10 Futures [[futures]](futures)
#### 32.10.1 Overview [[futures.overview]](futures.overview)
#### 32.10.2 Header <future> synopsis [[future.syn]](future.syn)
#### 32.10.3 Error handling [[futures.errors]](futures.errors)
#### 32.10.4 Class future_error [[futures.future.error]](futures.future.error)
#### 32.10.5 Shared state [[futures.state]](futures.state)
#### 32.10.6 Class template promise [[futures.promise]](futures.promise)
#### 32.10.7 Class template future [[futures.unique.future]](futures.unique.future)
#### 32.10.8 Class template shared_future [[futures.shared.future]](futures.shared.future)
#### 32.10.9 Function template async [[futures.async]](futures.async)
#### 32.10.10 Class template packaged_task [[futures.task]](futures.task)
#### 32.10.10.1 General [[futures.task.general]](futures.task.general)
#### 32.10.10.2 Member functions [[futures.task.members]](futures.task.members)
#### 32.10.10.3 Globals [[futures.task.nonmembers]](futures.task.nonmembers)
### 32.11 Safe reclamation [[saferecl]](saferecl)
#### 32.11.1 General [[saferecl.general]](saferecl.general)
#### 32.11.2 Read-copy update (RCU) [[saferecl.rcu]](saferecl.rcu)
#### 32.11.2.1 General [[saferecl.rcu.general]](saferecl.rcu.general)
#### 32.11.2.2 Header <rcu> synopsis [[rcu.syn]](rcu.syn)
#### 32.11.2.3 Class template rcu_obj_base [[saferecl.rcu.base]](saferecl.rcu.base)
#### 32.11.2.4 Class rcu_domain [[saferecl.rcu.domain]](saferecl.rcu.domain)
#### 32.11.2.4.1 General [[saferecl.rcu.domain.general]](saferecl.rcu.domain.general)
#### 32.11.2.4.2 Member functions [[saferecl.rcu.domain.members]](saferecl.rcu.domain.members)
#### 32.11.2.4.3 Non-member functions [[saferecl.rcu.domain.func]](saferecl.rcu.domain.func)
#### 32.11.3 Hazard pointers [[saferecl.hp]](saferecl.hp)
#### 32.11.3.1 General [[saferecl.hp.general]](saferecl.hp.general)
#### 32.11.3.2 Header <hazard_pointer> synopsis [[hazard.pointer.syn]](hazard.pointer.syn)
#### 32.11.3.3 Class template hazard_pointer_obj_base [[saferecl.hp.base]](saferecl.hp.base)
#### 32.11.3.4 Class hazard_pointer [[saferecl.hp.holder]](saferecl.hp.holder)
#### 32.11.3.4.1 General [[saferecl.hp.holder.general]](saferecl.hp.holder.general)
#### 32.11.3.4.2 Constructors, destructor, and assignment [[saferecl.hp.holder.ctor]](saferecl.hp.holder.ctor)
#### 32.11.3.4.3 Member functions [[saferecl.hp.holder.mem]](saferecl.hp.holder.mem)
#### 32.11.3.4.4 Non-member functions [[saferecl.hp.holder.nonmem]](saferecl.hp.holder.nonmem)
## 33 Execution control library [[exec]](#exec)[[exec]](exec)
### 33.1 General [[exec.general]](exec.general)
### 33.2 Queries and queryables [[exec.queryable]](exec.queryable)
#### 33.2.1 General [[exec.queryable.general]](exec.queryable.general)
#### 33.2.2 queryable concept [[exec.queryable.concept]](exec.queryable.concept)
### 33.3 Asynchronous operations [[exec.async.ops]](exec.async.ops)
### 33.4 Header <execution> synopsis [[execution.syn]](execution.syn)
### 33.5 Queries [[exec.queries]](exec.queries)
#### 33.5.1 forwarding_query [[exec.fwd.env]](exec.fwd.env)
#### 33.5.2 get_allocator [[exec.get.allocator]](exec.get.allocator)
#### 33.5.3 get_stop_token [[exec.get.stop.token]](exec.get.stop.token)
#### 33.5.4 execution::get_env [[exec.get.env]](exec.get.env)
#### 33.5.5 execution::get_domain [[exec.get.domain]](exec.get.domain)
#### 33.5.6 execution::get_scheduler [[exec.get.scheduler]](exec.get.scheduler)
#### 33.5.7 execution::get_delegation_scheduler [[exec.get.delegation.scheduler]](exec.get.delegation.scheduler)
#### 33.5.8 execution::get_forward_progress_guarantee [[exec.get.fwd.progress]](exec.get.fwd.progress)
#### 33.5.9 execution::get_completion_scheduler [[exec.get.compl.sched]](exec.get.compl.sched)
#### 33.5.10 execution::get_await_completion_adaptor [[exec.get.await.adapt]](exec.get.await.adapt)
### 33.6 Schedulers [[exec.sched]](exec.sched)
### 33.7 Receivers [[exec.recv]](exec.recv)
#### 33.7.1 Receiver concepts [[exec.recv.concepts]](exec.recv.concepts)
#### 33.7.2 execution::set_value [[exec.set.value]](exec.set.value)
#### 33.7.3 execution::set_error [[exec.set.error]](exec.set.error)
#### 33.7.4 execution::set_stopped [[exec.set.stopped]](exec.set.stopped)
### 33.8 Operation states [[exec.opstate]](exec.opstate)
#### 33.8.1 General [[exec.opstate.general]](exec.opstate.general)
#### 33.8.2 execution::start [[exec.opstate.start]](exec.opstate.start)
### 33.9 Senders [[exec.snd]](exec.snd)
#### 33.9.1 General [[exec.snd.general]](exec.snd.general)
#### 33.9.2 Exposition-only entities [[exec.snd.expos]](exec.snd.expos)
#### 33.9.3 Sender concepts [[exec.snd.concepts]](exec.snd.concepts)
#### 33.9.4 Awaitable helpers [[exec.awaitable]](exec.awaitable)
#### 33.9.5 execution::default_domain [[exec.domain.default]](exec.domain.default)
#### 33.9.6 execution::transform_sender [[exec.snd.transform]](exec.snd.transform)
#### 33.9.7 execution::transform_env [[exec.snd.transform.env]](exec.snd.transform.env)
#### 33.9.8 execution::apply_sender [[exec.snd.apply]](exec.snd.apply)
#### 33.9.9 execution::get_completion_signatures [[exec.getcomplsigs]](exec.getcomplsigs)
#### 33.9.10 execution::connect [[exec.connect]](exec.connect)
#### 33.9.11 Sender factories [[exec.factories]](exec.factories)
#### 33.9.11.1 execution::schedule [[exec.schedule]](exec.schedule)
#### 33.9.11.2 execution::just, execution::just_error, execution::just_stopped [[exec.just]](exec.just)
#### 33.9.11.3 execution::read_env [[exec.read.env]](exec.read.env)
#### 33.9.12 Sender adaptors [[exec.adapt]](exec.adapt)
#### 33.9.12.1 General [[exec.adapt.general]](exec.adapt.general)
#### 33.9.12.2 Closure objects [[exec.adapt.obj]](exec.adapt.obj)
#### 33.9.12.3 execution::write_env [[exec.write.env]](exec.write.env)
#### 33.9.12.4 execution::unstoppable [[exec.unstoppable]](exec.unstoppable)
#### 33.9.12.5 execution::starts_on [[exec.starts.on]](exec.starts.on)
#### 33.9.12.6 execution::continues_on [[exec.continues.on]](exec.continues.on)
#### 33.9.12.7 execution::schedule_from [[exec.schedule.from]](exec.schedule.from)
#### 33.9.12.8 execution::on [[exec.on]](exec.on)
#### 33.9.12.9 execution::then, execution::upon_error, execution::upon_stopped [[exec.then]](exec.then)
#### 33.9.12.10 execution::let_value, execution::let_error, execution::let_stopped [[exec.let]](exec.let)
#### 33.9.12.11 execution::bulk, execution::bulk_chunked, and execution::bulk_unchunked [[exec.bulk]](exec.bulk)
#### 33.9.12.12 execution::when_all [[exec.when.all]](exec.when.all)
#### 33.9.12.13 execution::into_variant [[exec.into.variant]](exec.into.variant)
#### 33.9.12.14 execution::stopped_as_optional [[exec.stopped.opt]](exec.stopped.opt)
#### 33.9.12.15 execution::stopped_as_error [[exec.stopped.err]](exec.stopped.err)
#### 33.9.12.16 execution::associate [[exec.associate]](exec.associate)
#### 33.9.12.17 Exposition-only execution::*stop-when* [[exec.stop.when]](exec.stop.when)
#### 33.9.12.18 execution::spawn_future [[exec.spawn.future]](exec.spawn.future)
#### 33.9.13 Sender consumers [[exec.consumers]](exec.consumers)
#### 33.9.13.1 this_thread::sync_wait [[exec.sync.wait]](exec.sync.wait)
#### 33.9.13.2 this_thread::sync_wait_with_variant [[exec.sync.wait.var]](exec.sync.wait.var)
#### 33.9.13.3 execution::spawn [[exec.spawn]](exec.spawn)
### 33.10 Completion signatures [[exec.cmplsig]](exec.cmplsig)
### 33.11 Queryable utilities [[exec.envs]](exec.envs)
#### 33.11.1 Class template prop [[exec.prop]](exec.prop)
#### 33.11.2 Class template env [[exec.env]](exec.env)
### 33.12 Execution contexts [[exec.ctx]](exec.ctx)
#### 33.12.1 execution::run_loop [[exec.run.loop]](exec.run.loop)
#### 33.12.1.1 General [[exec.run.loop.general]](exec.run.loop.general)
#### 33.12.1.2 Associated types [[exec.run.loop.types]](exec.run.loop.types)
#### 33.12.1.3 Constructor and destructor [[exec.run.loop.ctor]](exec.run.loop.ctor)
#### 33.12.1.4 Member functions [[exec.run.loop.members]](exec.run.loop.members)
### 33.13 Coroutine utilities [[exec.coro.util]](exec.coro.util)
#### 33.13.1 execution::as_awaitable [[exec.as.awaitable]](exec.as.awaitable)
#### 33.13.2 execution::with_awaitable_senders [[exec.with.awaitable.senders]](exec.with.awaitable.senders)
#### 33.13.3 execution::affine_on [[exec.affine.on]](exec.affine.on)
#### 33.13.4 execution::inline_scheduler [[exec.inline.scheduler]](exec.inline.scheduler)
#### 33.13.5 execution::task_scheduler [[exec.task.scheduler]](exec.task.scheduler)
#### 33.13.6 execution::task [[exec.task]](exec.task)
#### 33.13.6.1 task overview [[task.overview]](task.overview)
#### 33.13.6.2 Class template task [[task.class]](task.class)
#### 33.13.6.3 task members [[task.members]](task.members)
#### 33.13.6.4 Class template task::*state* [[task.state]](task.state)
#### 33.13.6.5 Class task::promise_type [[task.promise]](task.promise)
### 33.14 Execution scope utilities [[exec.scope]](exec.scope)
#### 33.14.1 Execution scope concepts [[exec.scope.concepts]](exec.scope.concepts)
#### 33.14.2 Counting Scopes [[exec.counting.scopes]](exec.counting.scopes)
#### 33.14.2.1 General [[exec.counting.scopes.general]](exec.counting.scopes.general)
#### 33.14.2.2 Simple Counting Scope [[exec.scope.simple.counting]](exec.scope.simple.counting)
#### 33.14.2.2.1 General [[exec.scope.simple.counting.general]](exec.scope.simple.counting.general)
#### 33.14.2.2.2 Constructor and Destructor [[exec.simple.counting.ctor]](exec.simple.counting.ctor)
#### 33.14.2.2.3 Members [[exec.simple.counting.mem]](exec.simple.counting.mem)
#### 33.14.2.2.4 Token [[exec.simple.counting.token]](exec.simple.counting.token)
#### 33.14.2.3 Counting Scope [[exec.scope.counting]](exec.scope.counting)
### 33.15 Parallel scheduler [[exec.par.scheduler]](exec.par.scheduler)
### 33.16 Namespace system_context_replaceability [[exec.sysctxrepl]](exec.sysctxrepl)
#### 33.16.1 General [[exec.sysctxrepl.general]](exec.sysctxrepl.general)
#### 33.16.2 query_parallel_scheduler_backend [[exec.sysctxrepl.query]](exec.sysctxrepl.query)
#### 33.16.3 Class parallel_scheduler_backend [[exec.sysctxrepl.psb]](exec.sysctxrepl.psb)
## Annex A (informative) Grammar summary [[gram]](#gram)[[gram]](gram)
### A.1 General [[gram.general]](gram.general)
### A.2 Keywords [[gram.key]](gram.key)
### A.3 Lexical conventions [[gram.lex]](gram.lex)
### A.4 Basics [[gram.basic]](gram.basic)
### A.5 Expressions [[gram.expr]](gram.expr)
### A.6 Statements [[gram.stmt]](gram.stmt)
### A.7 Declarations [[gram.dcl]](gram.dcl)
### A.8 Modules [[gram.module]](gram.module)
### A.9 Classes [[gram.class]](gram.class)
### A.10 Overloading [[gram.over]](gram.over)
### A.11 Templates [[gram.temp]](gram.temp)
### A.12 Exception handling [[gram.except]](gram.except)
### A.13 Preprocessing directives [[gram.cpp]](gram.cpp)
## Annex B (informative) Implementation quantities [[implimits]](implimits)[[implimits]](implimits)
## Annex C (informative) Compatibility [[diff]](#diff)[[diff]](diff)
### C.1 C++ and ISO C++ 2023 [[diff.cpp23]](diff.cpp23)
#### C.1.1 General [[diff.cpp23.general]](diff.cpp23.general)
#### C.1.2 [[lex]](lex "5Lexical conventions"): lexical conventions [[diff.cpp23.lex]](diff.cpp23.lex)
#### C.1.3 [[expr]](expr "7Expressions"): expressions [[diff.cpp23.expr]](diff.cpp23.expr)
#### C.1.4 [[dcl]](dcl "9Declarations"): declarations [[diff.cpp23.dcl.dcl]](diff.cpp23.dcl.dcl)
#### C.1.5 [[temp]](temp "13Templates"): templates [[diff.cpp23.temp]](diff.cpp23.temp)
#### C.1.6 [[library]](library "16Library introduction"): library introduction [[diff.cpp23.library]](diff.cpp23.library)
#### C.1.7 [[mem]](mem "20Memory management library"): memory management library [[diff.cpp23.mem]](diff.cpp23.mem)
#### C.1.8 [[containers]](containers "23Containers library"): containers library [[diff.cpp23.containers]](diff.cpp23.containers)
#### C.1.9 [[strings]](strings "27Strings library"): strings library [[diff.cpp23.strings]](diff.cpp23.strings)
#### C.1.10 [[input.output]](input.output "31Input/output library"): input/output library [[diff.cpp23.io]](diff.cpp23.io)
#### C.1.11 [[depr]](depr "Annex D(normative)Compatibility features"): compatibility features [[diff.cpp23.depr]](diff.cpp23.depr)
### C.2 C++ and ISO C++ 2020 [[diff.cpp20]](diff.cpp20)
#### C.2.1 General [[diff.cpp20.general]](diff.cpp20.general)
#### C.2.2 [[lex]](lex "5Lexical conventions"): lexical conventions [[diff.cpp20.lex]](diff.cpp20.lex)
#### C.2.3 [[expr]](expr "7Expressions"): expressions [[diff.cpp20.expr]](diff.cpp20.expr)
#### C.2.4 [[stmt]](stmt "8Statements"): statements [[diff.cpp20.stmt]](diff.cpp20.stmt)
#### C.2.5 [[dcl]](dcl "9Declarations"): declarations [[diff.cpp20.dcl]](diff.cpp20.dcl)
#### C.2.6 [[temp]](temp "13Templates"): templates [[diff.cpp20.temp]](diff.cpp20.temp)
#### C.2.7 [[library]](library "16Library introduction"): library introduction [[diff.cpp20.library]](diff.cpp20.library)
#### C.2.8 [[concepts]](concepts "18Concepts library"): concepts library [[diff.cpp20.concepts]](diff.cpp20.concepts)
#### C.2.9 [[mem]](mem "20Memory management library"): memory management library [[diff.cpp20.memory]](diff.cpp20.memory)
#### C.2.10 [[utilities]](utilities "22General utilities library"): general utilities library [[diff.cpp20.utilities]](diff.cpp20.utilities)
#### C.2.11 [[strings]](strings "27Strings library"): strings library [[diff.cpp20.strings]](diff.cpp20.strings)
#### C.2.12 [[containers]](containers "23Containers library"): containers library [[diff.cpp20.containers]](diff.cpp20.containers)
#### C.2.13 [[thread]](thread "32Concurrency support library"): concurrency support library [[diff.cpp20.thread]](diff.cpp20.thread)
### C.3 C++ and ISO C++ 2017 [[diff.cpp17]](diff.cpp17)
#### C.3.1 General [[diff.cpp17.general]](diff.cpp17.general)
#### C.3.2 [[lex]](lex "5Lexical conventions"): lexical conventions [[diff.cpp17.lex]](diff.cpp17.lex)
#### C.3.3 [[basic]](basic "6Basics"): basics [[diff.cpp17.basic]](diff.cpp17.basic)
#### C.3.4 [[expr]](expr "7Expressions"): expressions [[diff.cpp17.expr]](diff.cpp17.expr)
#### C.3.5 [[dcl]](dcl "9Declarations"): declarations [[diff.cpp17.dcl.dcl]](diff.cpp17.dcl.dcl)
#### C.3.6 [[class]](class "11Classes"): classes [[diff.cpp17.class]](diff.cpp17.class)
#### C.3.7 [[over]](over "12Overloading"): overloading [[diff.cpp17.over]](diff.cpp17.over)
#### C.3.8 [[temp]](temp "13Templates"): templates [[diff.cpp17.temp]](diff.cpp17.temp)
#### C.3.9 [[except]](except "14Exception handling"): exception handling [[diff.cpp17.except]](diff.cpp17.except)
#### C.3.10 [[library]](library "16Library introduction"): library introduction [[diff.cpp17.library]](diff.cpp17.library)
#### C.3.11 [[containers]](containers "23Containers library"): containers library [[diff.cpp17.containers]](diff.cpp17.containers)
#### C.3.12 [[iterators]](iterators "24Iterators library"): iterators library [[diff.cpp17.iterators]](diff.cpp17.iterators)
#### C.3.13 [[algorithms]](algorithms "26Algorithms library"): algorithms library [[diff.cpp17.alg.reqs]](diff.cpp17.alg.reqs)
#### C.3.14 [[input.output]](input.output "31Input/output library"): input/output library [[diff.cpp17.input.output]](diff.cpp17.input.output)
#### C.3.15 [[depr]](depr "Annex D(normative)Compatibility features"): compatibility features [[diff.cpp17.depr]](diff.cpp17.depr)
### C.4 C++ and ISO C++ 2014 [[diff.cpp14]](diff.cpp14)
#### C.4.1 General [[diff.cpp14.general]](diff.cpp14.general)
#### C.4.2 [[lex]](lex "5Lexical conventions"): lexical conventions [[diff.cpp14.lex]](diff.cpp14.lex)
#### C.4.3 [[expr]](expr "7Expressions"): expressions [[diff.cpp14.expr]](diff.cpp14.expr)
#### C.4.4 [[dcl]](dcl "9Declarations"): declarations [[diff.cpp14.dcl.dcl]](diff.cpp14.dcl.dcl)
#### C.4.5 [[class]](class "11Classes"): classes [[diff.cpp14.class]](diff.cpp14.class)
#### C.4.6 [[temp]](temp "13Templates"): templates [[diff.cpp14.temp]](diff.cpp14.temp)
#### C.4.7 [[except]](except "14Exception handling"): exception handling [[diff.cpp14.except]](diff.cpp14.except)
#### C.4.8 [[library]](library "16Library introduction"): library introduction [[diff.cpp14.library]](diff.cpp14.library)
#### C.4.9 [[utilities]](utilities "22General utilities library"): general utilities library [[diff.cpp14.utilities]](diff.cpp14.utilities)
#### C.4.10 [[strings]](strings "27Strings library"): strings library [[diff.cpp14.string]](diff.cpp14.string)
#### C.4.11 [[containers]](containers "23Containers library"): containers library [[diff.cpp14.containers]](diff.cpp14.containers)
#### C.4.12 [[depr]](depr "Annex D(normative)Compatibility features"): compatibility features [[diff.cpp14.depr]](diff.cpp14.depr)
### C.5 C++ and ISO C++ 2011 [[diff.cpp11]](diff.cpp11)
#### C.5.1 General [[diff.cpp11.general]](diff.cpp11.general)
#### C.5.2 [[lex]](lex "5Lexical conventions"): lexical conventions [[diff.cpp11.lex]](diff.cpp11.lex)
#### C.5.3 [[basic]](basic "6Basics"): basics [[diff.cpp11.basic]](diff.cpp11.basic)
#### C.5.4 [[expr]](expr "7Expressions"): expressions [[diff.cpp11.expr]](diff.cpp11.expr)
#### C.5.5 [[dcl]](dcl "9Declarations"): declarations [[diff.cpp11.dcl.dcl]](diff.cpp11.dcl.dcl)
#### C.5.6 [[library]](library "16Library introduction"): library introduction [[diff.cpp11.library]](diff.cpp11.library)
#### C.5.7 [[input.output]](input.output "31Input/output library"): input/output library [[diff.cpp11.input.output]](diff.cpp11.input.output)
### C.6 C++ and ISO C++ 2003 [[diff.cpp03]](diff.cpp03)
#### C.6.1 General [[diff.cpp03.general]](diff.cpp03.general)
#### C.6.2 [[lex]](lex "5Lexical conventions"): lexical conventions [[diff.cpp03.lex]](diff.cpp03.lex)
#### C.6.3 [[expr]](expr "7Expressions"): expressions [[diff.cpp03.expr]](diff.cpp03.expr)
#### C.6.4 [[dcl]](dcl "9Declarations"): declarations [[diff.cpp03.dcl.dcl]](diff.cpp03.dcl.dcl)
#### C.6.5 [[class]](class "11Classes"): classes [[diff.cpp03.class]](diff.cpp03.class)
#### C.6.6 [[temp]](temp "13Templates"): templates [[diff.cpp03.temp]](diff.cpp03.temp)
#### C.6.7 [[library]](library "16Library introduction"): library introduction [[diff.cpp03.library]](diff.cpp03.library)
#### C.6.8 [[support]](support "17Language support library"):
language support library [[diff.cpp03.language.support]](diff.cpp03.language.support)
#### C.6.9 [[diagnostics]](diagnostics "19Diagnostics library"): diagnostics library [[diff.cpp03.diagnostics]](diff.cpp03.diagnostics)
#### C.6.10 [[utilities]](utilities "22General utilities library"): general utilities library [[diff.cpp03.utilities]](diff.cpp03.utilities)
#### C.6.11 [[strings]](strings "27Strings library"): strings library [[diff.cpp03.strings]](diff.cpp03.strings)
#### C.6.12 [[containers]](containers "23Containers library"): containers library [[diff.cpp03.containers]](diff.cpp03.containers)
#### C.6.13 [[algorithms]](algorithms "26Algorithms library"): algorithms library [[diff.cpp03.algorithms]](diff.cpp03.algorithms)
#### C.6.14 [[numerics]](numerics "29Numerics library"): numerics library [[diff.cpp03.numerics]](diff.cpp03.numerics)
#### C.6.15 [[localization]](localization "28.3Localization library"): localization library [[diff.cpp03.locale]](diff.cpp03.locale)
#### C.6.16 [[input.output]](input.output "31Input/output library"): input/output library [[diff.cpp03.input.output]](diff.cpp03.input.output)
### C.7 C++ and C [[diff.iso]](diff.iso)
#### C.7.1 General [[diff.iso.general]](diff.iso.general)
#### C.7.2 [[lex]](lex "5Lexical conventions"): lexical conventions [[diff.lex]](diff.lex)
#### C.7.3 [[basic]](basic "6Basics"): basics [[diff.basic]](diff.basic)
#### C.7.4 [[expr]](expr "7Expressions"): expressions [[diff.expr]](diff.expr)
#### C.7.5 [[stmt]](stmt "8Statements"): statements [[diff.stat]](diff.stat)
#### C.7.6 [[dcl]](dcl "9Declarations"): declarations [[diff.dcl]](diff.dcl)
#### C.7.7 [[class]](class "11Classes"): classes [[diff.class]](diff.class)
#### C.7.8 [[cpp]](cpp "15Preprocessing directives"): preprocessing directives [[diff.cpp]](diff.cpp)
### C.8 C standard library [[diff.library]](diff.library)
#### C.8.1 General [[diff.library.general]](diff.library.general)
#### C.8.2 Modifications to headers [[diff.mods.to.headers]](diff.mods.to.headers)
#### C.8.3 Modifications to definitions [[diff.mods.to.definitions]](diff.mods.to.definitions)
#### C.8.3.1 Types char8_t, char16_t, and char32_t [[diff.char16]](diff.char16)
#### C.8.3.2 Type wchar_t [[diff.wchar.t]](diff.wchar.t)
#### C.8.3.3 Header <iso646.h> [[diff.header.iso646.h]](diff.header.iso646.h)
#### C.8.3.4 Macro NULL [[diff.null]](diff.null)
#### C.8.4 Modifications to declarations [[diff.mods.to.declarations]](diff.mods.to.declarations)
#### C.8.5 Modifications to behavior [[diff.mods.to.behavior]](diff.mods.to.behavior)
#### C.8.5.1 General [[diff.mods.to.behavior.general]](diff.mods.to.behavior.general)
#### C.8.5.2 Macro offsetof(*type*, *member-designator*) [[diff.offsetof]](diff.offsetof)
#### C.8.5.3 Memory allocation functions [[diff.malloc]](diff.malloc)
## Annex D (normative) Compatibility features [[depr]](#depr)[[depr]](depr)
### D.1 General [[depr.general]](depr.general)
### D.2 Non-local use of TU-local entities [[depr.local]](depr.local)
### D.3 Implicit capture of *this by reference [[depr.capture.this]](depr.capture.this)
### D.4 Deprecated volatile types [[depr.volatile.type]](depr.volatile.type)
### D.5 Non-comma-separated ellipsis parameters [[depr.ellipsis.comma]](depr.ellipsis.comma)
### D.6 Implicit declaration of copy functions [[depr.impldec]](depr.impldec)
### D.7 Redeclaration of static constexpr data members [[depr.static.constexpr]](depr.static.constexpr)
### D.8 Literal operator function declarations using an identifier [[depr.lit]](depr.lit)
### D.9 template keyword before qualified names [[depr.template.template]](depr.template.template)
### D.10 has_denorm members in numeric_limits [[depr.numeric.limits.has.denorm]](depr.numeric.limits.has.denorm)
### D.11 Deprecated C macros [[depr.c.macros]](depr.c.macros)
### D.12 Deprecated error numbers [[depr.cerrno]](depr.cerrno)
### D.13 Deprecated type traits [[depr.meta.types]](depr.meta.types)
### D.14 Relational operators [[depr.relops]](depr.relops)
### D.15 Tuple [[depr.tuple]](depr.tuple)
### D.16 Variant [[depr.variant]](depr.variant)
### D.17 Deprecated iterator class template [[depr.iterator]](depr.iterator)
### D.18 Deprecated move_iterator access [[depr.move.iter.elem]](depr.move.iter.elem)
### D.19 Deprecated locale category facets [[depr.locale.category]](depr.locale.category)
### D.20 Deprecated formatting [[depr.format]](depr.format)
#### D.20.1 Header <format> synopsis [[depr.format.syn]](depr.format.syn)
#### D.20.2 Formatting arguments [[depr.format.arg]](depr.format.arg)
### D.21 Deprecated time formatting [[depr.ctime]](depr.ctime)
### D.22 Deprecated file systems [[depr.filesystems]](depr.filesystems)
#### D.22.1 Deprecated filesystem path factory functions [[depr.fs.path.factory]](depr.fs.path.factory)
#### D.22.2 Deprecated filesystem path format observers [[depr.fs.path.obs]](depr.fs.path.obs)
### D.23 Deprecated atomic operations [[depr.atomics]](depr.atomics)
#### D.23.1 General [[depr.atomics.general]](depr.atomics.general)
#### D.23.2 Volatile access [[depr.atomics.volatile]](depr.atomics.volatile)
#### D.23.3 Non-member functions [[depr.atomics.nonmembers]](depr.atomics.nonmembers)
#### D.23.4 Operations on atomic types [[depr.atomics.types.operations]](depr.atomics.types.operations)
#### D.23.5 memory_order::consume [[depr.atomics.order]](depr.atomics.order)
## Annex E (informative) Conformance with UAX #31 [[uaxid]](#uaxid)[[uaxid]](uaxid)
### E.1 General [[uaxid.general]](uaxid.general)
### E.2 R1 Default identifiers [[uaxid.def]](uaxid.def)
#### E.2.1 General [[uaxid.def.general]](uaxid.def.general)
#### E.2.2 R1b Stable identifiers [[uaxid.def.stable]](uaxid.def.stable)
### E.3 R2 Immutable identifiers [[uaxid.immutable]](uaxid.immutable)
### E.4 R3 Pattern_White_Space and Pattern_Syntax characters [[uaxid.pattern]](uaxid.pattern)
### E.5 R4 Equivalent normalized identifiers [[uaxid.eqn]](uaxid.eqn)
### E.6 R5 Equivalent case-insensitive identifiers [[uaxid.eqci]](uaxid.eqci)
### E.7 R6 Filtered normalized identifiers [[uaxid.filter]](uaxid.filter)
### E.8 R7 Filtered case-insensitive identifiers [[uaxid.filterci]](uaxid.filterci)
### E.9 R8 Hashtag identifiers [[uaxid.hashtag]](uaxid.hashtag)
## [Bibliography](bibliography)
## [Index](generalindex)
## [Index of grammar productions](grammarindex)
## [Index of library headers](headerindex)
## [Index of library names](libraryindex)
## [Index of library concepts](conceptindex)
## [Index of implementation-defined behavior](impldefindex)