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 synopsis [[cstddef.syn]](cstddef.syn) #### 17.2.2 Header 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 synopsis [[version.syn]](version.syn) #### 17.3.3 Header 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 synopsis [[climits.syn]](climits.syn) #### 17.3.7 Header synopsis [[cfloat.syn]](cfloat.syn) ### 17.4 Arithmetic types [[support.arith.types]](support.arith.types) #### 17.4.1 Header synopsis [[cstdint.syn]](cstdint.syn) #### 17.4.2 Header 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 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 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 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 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 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 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 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 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 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 [[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 synopsis [[cstdarg.syn]](cstdarg.syn) #### 17.14.3 Header synopsis [[csetjmp.syn]](csetjmp.syn) #### 17.14.4 Header 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 synopsis [[complex.h.syn]](complex.h.syn) #### 17.15.3 Header synopsis [[iso646.h.syn]](iso646.h.syn) #### 17.15.4 Header synopsis [[stdalign.h.syn]](stdalign.h.syn) #### 17.15.5 Header synopsis [[stdbool.h.syn]](stdbool.h.syn) #### 17.15.6 Header 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 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 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 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 synopsis [[cerrno.syn]](cerrno.syn) ### 19.5 System error support [[syserr]](syserr) #### 19.5.1 General [[syserr.general]](syserr.general) #### 19.5.2 Header 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 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 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 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 [[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 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 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 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 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 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 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 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 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 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 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 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 [[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 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 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 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 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 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 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 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 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 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 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 [[vector.bool.pspc]](vector.bool.pspc) #### 23.3.14.2 Formatter specialization for vector [[vector.bool.fmt]](vector.bool.fmt) #### 23.3.15 Header 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.traits.specializations.char]](char.traits.specializations.char) #### 27.2.4.3 struct char_traits [[char.traits.specializations.char8.t]](char.traits.specializations.char8.t) #### 27.2.4.4 struct char_traits [[char.traits.specializations.char16.t]](char.traits.specializations.char16.t) #### 27.2.4.5 struct char_traits [[char.traits.specializations.char32.t]](char.traits.specializations.char32.t) #### 27.2.4.6 struct char_traits [[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 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 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 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 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 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 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 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 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 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 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 synopsis [[cctype.syn]](cctype.syn) #### 28.7.2 Header synopsis [[cwctype.syn]](cwctype.syn) #### 28.7.3 Header synopsis [[cwchar.syn]](cwchar.syn) #### 28.7.4 Header 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 synopsis [[istream.syn]](istream.syn) #### 31.7.2 Header synopsis [[ostream.syn]](ostream.syn) #### 31.7.3 Header synopsis [[iomanip.syn]](iomanip.syn) #### 31.7.4 Header 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 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 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 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 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 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 synopsis [[cstdio.syn]](cstdio.syn) #### 31.13.2 Header 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 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 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 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 synopsis [[mutex.syn]](mutex.syn) #### 32.6.3 Header 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 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 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 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 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 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 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 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 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 "5 Lexical conventions"): lexical conventions [[diff.cpp23.lex]](diff.cpp23.lex) #### C.1.3 [[expr]](expr "7 Expressions"): expressions [[diff.cpp23.expr]](diff.cpp23.expr) #### C.1.4 [[dcl]](dcl "9 Declarations"): declarations [[diff.cpp23.dcl.dcl]](diff.cpp23.dcl.dcl) #### C.1.5 [[temp]](temp "13 Templates"): templates [[diff.cpp23.temp]](diff.cpp23.temp) #### C.1.6 [[library]](library "16 Library introduction"): library introduction [[diff.cpp23.library]](diff.cpp23.library) #### C.1.7 [[mem]](mem "20 Memory management library"): memory management library [[diff.cpp23.mem]](diff.cpp23.mem) #### C.1.8 [[containers]](containers "23 Containers library"): containers library [[diff.cpp23.containers]](diff.cpp23.containers) #### C.1.9 [[strings]](strings "27 Strings library"): strings library [[diff.cpp23.strings]](diff.cpp23.strings) #### C.1.10 [[input.output]](input.output "31 Input/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 "5 Lexical conventions"): lexical conventions [[diff.cpp20.lex]](diff.cpp20.lex) #### C.2.3 [[expr]](expr "7 Expressions"): expressions [[diff.cpp20.expr]](diff.cpp20.expr) #### C.2.4 [[stmt]](stmt "8 Statements"): statements [[diff.cpp20.stmt]](diff.cpp20.stmt) #### C.2.5 [[dcl]](dcl "9 Declarations"): declarations [[diff.cpp20.dcl]](diff.cpp20.dcl) #### C.2.6 [[temp]](temp "13 Templates"): templates [[diff.cpp20.temp]](diff.cpp20.temp) #### C.2.7 [[library]](library "16 Library introduction"): library introduction [[diff.cpp20.library]](diff.cpp20.library) #### C.2.8 [[concepts]](concepts "18 Concepts library"): concepts library [[diff.cpp20.concepts]](diff.cpp20.concepts) #### C.2.9 [[mem]](mem "20 Memory management library"): memory management library [[diff.cpp20.memory]](diff.cpp20.memory) #### C.2.10 [[utilities]](utilities "22 General utilities library"): general utilities library [[diff.cpp20.utilities]](diff.cpp20.utilities) #### C.2.11 [[strings]](strings "27 Strings library"): strings library [[diff.cpp20.strings]](diff.cpp20.strings) #### C.2.12 [[containers]](containers "23 Containers library"): containers library [[diff.cpp20.containers]](diff.cpp20.containers) #### C.2.13 [[thread]](thread "32 Concurrency 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 "5 Lexical conventions"): lexical conventions [[diff.cpp17.lex]](diff.cpp17.lex) #### C.3.3 [[basic]](basic "6 Basics"): basics [[diff.cpp17.basic]](diff.cpp17.basic) #### C.3.4 [[expr]](expr "7 Expressions"): expressions [[diff.cpp17.expr]](diff.cpp17.expr) #### C.3.5 [[dcl]](dcl "9 Declarations"): declarations [[diff.cpp17.dcl.dcl]](diff.cpp17.dcl.dcl) #### C.3.6 [[class]](class "11 Classes"): classes [[diff.cpp17.class]](diff.cpp17.class) #### C.3.7 [[over]](over "12 Overloading"): overloading [[diff.cpp17.over]](diff.cpp17.over) #### C.3.8 [[temp]](temp "13 Templates"): templates [[diff.cpp17.temp]](diff.cpp17.temp) #### C.3.9 [[except]](except "14 Exception handling"): exception handling [[diff.cpp17.except]](diff.cpp17.except) #### C.3.10 [[library]](library "16 Library introduction"): library introduction [[diff.cpp17.library]](diff.cpp17.library) #### C.3.11 [[containers]](containers "23 Containers library"): containers library [[diff.cpp17.containers]](diff.cpp17.containers) #### C.3.12 [[iterators]](iterators "24 Iterators library"): iterators library [[diff.cpp17.iterators]](diff.cpp17.iterators) #### C.3.13 [[algorithms]](algorithms "26 Algorithms library"): algorithms library [[diff.cpp17.alg.reqs]](diff.cpp17.alg.reqs) #### C.3.14 [[input.output]](input.output "31 Input/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 "5 Lexical conventions"): lexical conventions [[diff.cpp14.lex]](diff.cpp14.lex) #### C.4.3 [[expr]](expr "7 Expressions"): expressions [[diff.cpp14.expr]](diff.cpp14.expr) #### C.4.4 [[dcl]](dcl "9 Declarations"): declarations [[diff.cpp14.dcl.dcl]](diff.cpp14.dcl.dcl) #### C.4.5 [[class]](class "11 Classes"): classes [[diff.cpp14.class]](diff.cpp14.class) #### C.4.6 [[temp]](temp "13 Templates"): templates [[diff.cpp14.temp]](diff.cpp14.temp) #### C.4.7 [[except]](except "14 Exception handling"): exception handling [[diff.cpp14.except]](diff.cpp14.except) #### C.4.8 [[library]](library "16 Library introduction"): library introduction [[diff.cpp14.library]](diff.cpp14.library) #### C.4.9 [[utilities]](utilities "22 General utilities library"): general utilities library [[diff.cpp14.utilities]](diff.cpp14.utilities) #### C.4.10 [[strings]](strings "27 Strings library"): strings library [[diff.cpp14.string]](diff.cpp14.string) #### C.4.11 [[containers]](containers "23 Containers 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 "5 Lexical conventions"): lexical conventions [[diff.cpp11.lex]](diff.cpp11.lex) #### C.5.3 [[basic]](basic "6 Basics"): basics [[diff.cpp11.basic]](diff.cpp11.basic) #### C.5.4 [[expr]](expr "7 Expressions"): expressions [[diff.cpp11.expr]](diff.cpp11.expr) #### C.5.5 [[dcl]](dcl "9 Declarations"): declarations [[diff.cpp11.dcl.dcl]](diff.cpp11.dcl.dcl) #### C.5.6 [[library]](library "16 Library introduction"): library introduction [[diff.cpp11.library]](diff.cpp11.library) #### C.5.7 [[input.output]](input.output "31 Input/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 "5 Lexical conventions"): lexical conventions [[diff.cpp03.lex]](diff.cpp03.lex) #### C.6.3 [[expr]](expr "7 Expressions"): expressions [[diff.cpp03.expr]](diff.cpp03.expr) #### C.6.4 [[dcl]](dcl "9 Declarations"): declarations [[diff.cpp03.dcl.dcl]](diff.cpp03.dcl.dcl) #### C.6.5 [[class]](class "11 Classes"): classes [[diff.cpp03.class]](diff.cpp03.class) #### C.6.6 [[temp]](temp "13 Templates"): templates [[diff.cpp03.temp]](diff.cpp03.temp) #### C.6.7 [[library]](library "16 Library introduction"): library introduction [[diff.cpp03.library]](diff.cpp03.library) #### C.6.8 [[support]](support "17 Language support library"): language support library [[diff.cpp03.language.support]](diff.cpp03.language.support) #### C.6.9 [[diagnostics]](diagnostics "19 Diagnostics library"): diagnostics library [[diff.cpp03.diagnostics]](diff.cpp03.diagnostics) #### C.6.10 [[utilities]](utilities "22 General utilities library"): general utilities library [[diff.cpp03.utilities]](diff.cpp03.utilities) #### C.6.11 [[strings]](strings "27 Strings library"): strings library [[diff.cpp03.strings]](diff.cpp03.strings) #### C.6.12 [[containers]](containers "23 Containers library"): containers library [[diff.cpp03.containers]](diff.cpp03.containers) #### C.6.13 [[algorithms]](algorithms "26 Algorithms library"): algorithms library [[diff.cpp03.algorithms]](diff.cpp03.algorithms) #### C.6.14 [[numerics]](numerics "29 Numerics library"): numerics library [[diff.cpp03.numerics]](diff.cpp03.numerics) #### C.6.15 [[localization]](localization "28.3 Localization library"): localization library [[diff.cpp03.locale]](diff.cpp03.locale) #### C.6.16 [[input.output]](input.output "31 Input/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 "5 Lexical conventions"): lexical conventions [[diff.lex]](diff.lex) #### C.7.3 [[basic]](basic "6 Basics"): basics [[diff.basic]](diff.basic) #### C.7.4 [[expr]](expr "7 Expressions"): expressions [[diff.expr]](diff.expr) #### C.7.5 [[stmt]](stmt "8 Statements"): statements [[diff.stat]](diff.stat) #### C.7.6 [[dcl]](dcl "9 Declarations"): declarations [[diff.dcl]](diff.dcl) #### C.7.7 [[class]](class "11 Classes"): classes [[diff.class]](diff.class) #### C.7.8 [[cpp]](cpp "15 Preprocessing 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 [[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 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)