Draft C++ Standard: Contents (original) (raw)
Working Draft
Programming Languages — C++
(Generated on 2024-02-11 from the LaTeX sources by cxxdraft-htmlgen. This is not an ISO publication.)
Note: this is an early draft. It's known to be incomplet and incorrekt, and it has lots of bad formatting.
4.3 Syntax notation [syntax]
5 Lexical conventions [lex][lex]
5.2 Phases of translation [lex.phases]
5.12 Operators and punctuators [lex.operators]
5.13.2 Integer literals [lex.icon]
5.13.3 Character literals [lex.ccon]
5.13.4 Floating-point literals [lex.fcon]
5.13.6 Boolean literals [lex.bool]
5.13.8 User-defined literals [lex.ext]
6.2 Declarations and definitions [basic.def]
6.5.7 Using-directives and namespace aliases [basic.lookup.udir]
6.7.4 Indeterminate values [basic.indet]
6.7.5 Storage duration [basic.stc]
6.7.5.4 Automatic storage duration [basic.stc.auto]
6.8.3 Optional extended floating-point types [basic.extended.fp]
6.8.6 Conversion ranks [conv.rank]
6.9.2 Multi-threaded executions and data races [intro.multithread]
6.9.3 Start and termination [basic.start]
6.9.3.3 Dynamic initialization of non-block variables [basic.start.dynamic]
7.2 Properties of expressions [expr.prop]
7.3 Standard conversions [conv]
7.3.2 Lvalue-to-rvalue conversion [conv.lval]
7.3.3 Array-to-pointer conversion [conv.array]
7.3.4 Function-to-pointer conversion [conv.func]
7.3.5 Temporary materialization conversion [conv.rval]
7.3.6 Qualification conversions [conv.qual]
7.3.10 Floating-point conversions [conv.double]
7.3.11 Floating-integral conversions [conv.fpint]
7.3.12 Pointer conversions [conv.ptr]
7.3.13 Pointer-to-member conversions [conv.mem]
7.3.14 Function pointer conversions [conv.fctptr]
7.3.15 Boolean conversions [conv.bool]
7.5 Primary expressions [expr.prim]
7.6.1 Postfix expressions [expr.post]
7.6.1.2 Subscripting [expr.sub]
7.6.1.4 Explicit type conversion (functional notation) [expr.type.conv]
7.6.1.5 Class member access [expr.ref]
7.6.1.8 Type identification [expr.typeid]
7.6.2.3 Increment and decrement [expr.pre.incr]
7.6.3 Explicit type conversion (cast notation) [expr.cast]
7.6.4 Pointer-to-member operators [expr.mptr.oper]
7.6.5 Multiplicative operators [expr.mul]
7.6.6 Additive operators [expr.add]
7.6.8 Three-way comparison operator [expr.spaceship]
7.6.9 Relational operators [expr.rel]
7.6.10 Equality operators [expr.eq]
7.6.12 Bitwise exclusive OR operator [expr.xor]
7.6.13 Bitwise inclusive OR operator [expr.or]
7.6.15 Logical OR operator [expr.log.or]
7.6.16 Conditional operator [expr.cond]
7.6.18 Throwing an exception [expr.throw]
7.6.19 Assignment and compound assignment operators [expr.ass]
7.7 Constant expressions [expr.const]
8.3 Expression statement [stmt.expr]
8.4 Compound statement or block [stmt.block]
8.5.2 The if statement [stmt.if]
8.5.3 The switch statement [stmt.switch]
8.6 Iteration statements [stmt.iter]
8.6.2 The while statement [stmt.while]
8.6.3 The do statement [stmt.do]
8.6.4 The for statement [stmt.for]
8.6.5 The range-based for statement [stmt.ranged]
8.7.2 The break statement [stmt.break]
8.7.3 The continue statement [stmt.cont]
8.7.4 The return statement [stmt.return]
8.7.6 The goto statement [stmt.goto]
8.8 Declaration statement [stmt.dcl]
8.9 Ambiguity resolution [stmt.ambig]
9.2.2 Storage class specifiers [dcl.stc]
9.2.4 The typedef specifier [dcl.typedef]
9.2.5 The friend specifier [dcl.friend]
9.2.6 The constexpr and consteval specifiers [dcl.constexpr]
9.2.8 The inline specifier [dcl.inline]
9.2.9 Type specifiers [dcl.type]
9.2.9.2 The cv-qualifier s [dcl.type.cv]
9.2.9.4 Elaborated type specifiers [dcl.type.elab]
9.2.9.6 Placeholder type specifiers [dcl.spec.auto]
9.2.9.7 Deduced class template specialization types [dcl.type.class.deduct]
9.3.4 Meaning of declarators [dcl.meaning]
9.3.4.3 References [dcl.ref]
9.3.4.4 Pointers to members [dcl.mptr]
9.6 Structured binding declarations [dcl.struct.bind]
9.7 Enumerations [enum]
9.7.1 Enumeration declarations [dcl.enum]
9.7.2 The using enum declaration [enum.udecl]
9.10 The asm declaration [dcl.asm]
9.11 Linkage specifications [dcl.link]
9.12.1 Attribute syntax and semantics [dcl.attr.grammar]
9.12.2 Alignment specifier [dcl.align]
9.12.4 Carries dependency attribute [dcl.attr.depend]
10.1 Module units and purviews [module.unit]
11.2 Properties of classes [class.prop]
11.4.4 Special member functions [special]
11.4.8.2 Conversion by constructor [class.conv.ctor]
11.4.11 Allocation and deallocation functions [class.free]
11.4.12 Nested class declarations [class.nest]
11.6 Local class declarations [class.local]
11.7.2 Multiple base classes [class.mi]
11.8.3 Accessibility of base classes and base class members [class.access.base]
11.9.3 Initializing bases and members [class.base.init]
11.9.4 Initialization by inherited constructor [class.inhctor.init]
11.9.5 Construction and destruction [class.cdtor]
11.10.1 Defaulted comparison operator functions [class.compare.default]
11.10.2 Equality operator [class.eq]
12.2 Overload resolution [over.match]
12.2.2 Candidate functions and argument lists [over.match.funcs]
12.2.2.2.2 Call to named function [over.call.func]
12.2.2.2.3 Call to object of class type [over.call.object]
12.2.2.4 Initialization by constructor [over.match.ctor]
12.2.2.5 Copy-initialization of class by user-defined conversion [over.match.copy]
12.2.2.6 Initialization by conversion function [over.match.conv]
12.2.2.7 Initialization by conversion function for direct reference binding [over.match.ref]
12.2.2.8 Initialization by list-initialization [over.match.list]
12.2.4.2 Implicit conversion sequences [over.best.ics]
12.2.4.2.2 Standard conversion sequences [over.ics.scs]
12.2.4.2.3 User-defined conversion sequences [over.ics.user]
12.2.4.2.4 Ellipsis conversion sequences [over.ics.ellipsis]
12.2.4.2.5 Reference binding [over.ics.ref]
12.2.4.2.6 List-initialization sequence [over.ics.list]
12.2.4.3 Ranking implicit conversion sequences [over.ics.rank]
12.3 Address of an overload set [over.over]
12.4 Overloaded operators [over.oper]
12.4.3.2 Simple assignment [over.ass]
12.4.6 Class member access [over.ref]
12.4.7 Increment and decrement [over.inc]
13.2 Template parameters [temp.param]
13.3 Names of template specializations [temp.names]
13.4 Template arguments [temp.arg]
13.4.2 Template type arguments [temp.arg.type]
13.5.5 Partial ordering by constraints [temp.constr.order]
13.7 Template declarations [temp.decls]
13.7.2.2 Member functions of class templates [temp.mem.func]
13.7.2.4 Member classes of class templates [temp.mem.class]
13.7.2.5 Static data members of class templates [temp.static]
13.7.3 Member templates [temp.mem]
13.7.6.3 Partial ordering of partial specializations [temp.spec.partial.order]
13.7.6.4 Members of class template partial specializations [temp.spec.partial.member]
13.7.7 Function templates [temp.fct]
13.7.7.2 Function template overloading [temp.over.link]
13.7.7.3 Partial ordering of function templates [temp.func.order]
13.8 Name resolution [temp.res]
13.8.2 Locally declared names [temp.local]
13.8.3 Dependent names [temp.dep]
13.8.3.3 Type-dependent expressions [temp.dep.expr]
13.8.3.5 Dependent template arguments [temp.dep.temp]
13.8.4 Dependent name resolution [temp.dep.res]
13.8.4.1 Point of instantiation [temp.point]
13.9 Template instantiation and specialization [temp.spec]
13.9.2 Implicit instantiation [temp.inst]
13.10 Function template specializations [temp.fct.spec]
13.10.2 Explicit template argument specification [temp.arg.explicit]
13.10.3 Template argument deduction [temp.deduct]
13.10.3.2 Deducing template arguments from a function call [temp.deduct.call]
13.10.3.3 Deducing template arguments taking the address of a function template [temp.deduct.funcaddr]
13.10.3.4 Deducing conversion function template arguments [temp.deduct.conv]
13.10.3.5 Deducing template arguments during partial ordering [temp.deduct.partial]
13.10.3.6 Deducing template arguments from a type [temp.deduct.type]
13.10.3.7 Deducing template arguments from a function declaration [temp.deduct.decl]
13.10.4 Overload resolution [temp.over]
14.3 Constructors and destructors [except.ctor]
14.5 Exception specifications [except.spec]
14.6.2 The std::terminate function [except.terminate]
14.6.3 The std::uncaught_exceptions function [except.uncaught]
15 Preprocessing directives [cpp][cpp]
15.2 Conditional inclusion [cpp.cond]
15.3 Source file inclusion [cpp.include]
15.6.2 Argument substitution [cpp.subst]
15.6.5 Rescanning and further replacement [cpp.rescan]
15.6.6 Scope of macro definitions [cpp.scope]
15.8 Diagnostic directives [cpp.error]
15.10 Null directive [cpp.null]
16.2 The C standard library [library.c]
16.3 Method of description [description]
16.3.2 Structure of each clause [structure]
16.3.3.2 Exposition-only entities, etc. [expos.only.entity]
16.3.3.3.4 Character sequences [character.seq]
16.4 Library-wide requirements [requirements]
16.4.2 Library contents and organization [organization]
16.4.2.2 Library contents [contents]
16.4.2.5 Freestanding implementations [compliance]
16.4.3 Using the library [using]
16.4.4 Requirements on types and expressions [utility.requirements]
16.4.5 Constraints on programs [constraints]
16.4.5.2.3 Namespaces for future standardization [namespace.future]
16.4.5.3.6 User-defined literal suffixes [usrlit.suffix]
16.4.6.7 Constexpr functions and constructors [constexpr.functions]
16.4.6.8 Requirements for stable algorithms [algorithm.stable]
16.4.6.12 Derived classes [derivation]
16.4.6.15 Moved-from state of library types [lib.types.movedfrom]
17.3.4 Enum float_round_style [round.style]
17.3.5 Class template numeric_limits [numeric.limits]
17.3.5.3 numeric_limits specializations [numeric.special]
17.6.3 Storage allocation and deallocation [new.delete]
17.6.4 Storage allocation errors [alloc.errors]
17.6.4.1 Class bad_alloc [bad.alloc]
17.6.4.2 Class bad_array_new_length [new.badlength]
17.6.5 Pointer optimization barrier [ptr.launder]
17.7.3 Class type_info [type.info]
17.7.4 Class bad_cast [bad.cast]
17.9.3 Class exception [exception]
17.9.7 Exception propagation [propagation]
17.11 Comparisons [cmp]
17.11.2 Comparison category types [cmp.categories]
17.11.2.2 Class partial_ordering [cmp.partialord]
17.11.2.3 Class weak_ordering [cmp.weakord]
17.11.2.4 Class strong_ordering [cmp.strongord]
17.11.3 Class template common_comparison_category [cmp.common]
17.11.4 Concept three_way_comparable [cmp.concept]
17.11.5 Result of three-way comparison [cmp.result]
17.11.6 Comparison algorithms [cmp.alg]
17.12.4 Class template coroutine_handle [coroutine.handle]
17.12.5.2 Class coroutine_handle<noop_coroutine_promise> [coroutine.handle.noop]
18.7.6 Concept equivalence_relation [concept.equiv]
19.4 Error numbers [errno]
19.5 System error support [syserr]
19.5.3.4 Program-defined classes derived from error_category [syserr.errcat.derived]
19.5.6 Comparison operator functions [syserr.compare]
19.5.7 System error hash support [syserr.hash]
19.6.4 Class template basic_stacktrace [stacktrace.basic]
20 Memory management library [mem][mem]
20.2.5 Pointer alignment [ptr.align]
20.2.6 Explicit lifetime management [obj.lifetime]
20.2.12 C library memory allocation [c.malloc]
20.3.1 Unique-ownership pointers [unique.ptr]
20.3.1.3 unique_ptr for single objects [unique.ptr.single]
20.3.1.4 unique_ptr for array objects with a runtime length [unique.ptr.runtime]
20.3.2 Shared-ownership pointers [util.sharedptr]
20.3.2.5 Class template enable_shared_from_this [util.smartptr.enab]
20.3.4.1 Class template out_ptr_t [out.ptr.t]
20.3.4.2 Function template out_ptr [out.ptr]
20.3.4.3 Class template inout_ptr_t [inout.ptr.t]
20.3.4.4 Function template inout_ptr [inout.ptr]
20.4 Memory resources [mem.res]
20.4.2.2 Public member functions [mem.res.public]
20.4.2.3 Private virtual member functions [mem.res.private]
20.4.4 Access to program-wide memory_resource objects [mem.res.global]
20.4.5 Pool resource classes [mem.res.pool]
20.4.5.1 Classes synchronized_pool_resource and unsynchronized_pool_resource [mem.res.pool.overview]
20.5 Class template scoped_allocator_adaptor [allocator.adaptor]
21.2 Compile-time integer sequences [intseq]
21.2.2 Class template integer_sequence [intseq.intseq]
21.2.3 Alias template make_integer_sequence [intseq.make]
21.3.11 Constant evaluation context [meta.const.eval]
21.4 Compile-time rational arithmetic [ratio]
21.4.3 Class template ratio [ratio.ratio]
21.4.6 SI types for ratio [ratio.si]
22.2 Utility components [utility]
22.2.4 Forward/move helpers [forward]
22.2.6 Function template declval [declval]
22.2.7 Integer comparison functions [utility.intcmp]
22.3.2 Class template pair [pairs.pair]
22.3.4 Tuple-like access to pair [pair.astuple]
22.4.3 Concept tuple-like [tuple.like]
22.4.4 Class template tuple [tuple.tuple]
22.4.6 Calling a function with a tuple of arguments [tuple.apply]
22.4.9 Relational operators [tuple.rel]
22.4.12 Tuple specialized algorithms [tuple.special]
22.5 Optional objects [optional]
22.7 Storage for any type [any]
22.7.4.2 Construction and destruction [any.cons]
22.8 Expected objects [expected]
22.8.4 Class template bad_expected_access [expected.bad]
22.8.5 Class template specialization bad_expected_access [expected.bad.void]
22.8.7 Partial specialization of expected for void types [expected.void]
22.9.3 bitset hash support [bitset.hash]
22.10.6 Class template reference_wrapper [refwrap]
22.10.9 Concept-constrained comparisons [range.cmp]
22.10.13 Function template not_fn [func.not.fn]
22.10.14 Function templates bind_front and bind_back [func.bind.partial]
22.10.15 Function object binders [func.bind]
22.10.15.2 Class template is_bind_expression [func.bind.isbind]
22.10.15.3 Class template is_placeholder [func.bind.isplace]
22.10.15.4 Function template bind [func.bind.bind]
22.10.16 Function template mem_fn [func.memfn]
22.10.17 Polymorphic function wrappers [func.wrap]
22.10.17.3 Class template function [func.wrap.func]
22.10.17.3.2 Constructors and destructor [func.wrap.func.con]
22.10.17.3.7 Null pointer comparison operator functions [func.wrap.func.nullptr]
22.10.17.4.2 Class template move_only_function [func.wrap.move.class]
22.10.17.4.3 Constructors, assignment, and destructor [func.wrap.move.ctor]
22.10.18.2 Class template default_searcher [func.search.default]
22.10.18.3 Class template boyer_moore_searcher [func.search.bm]
22.10.18.4 Class template boyer_moore_horspool_searcher [func.search.bmh]
22.10.19 Class template hash [unord.hash]
22.12 Execution policies [execpol]
22.12.3 Execution policy type trait [execpol.type]
22.12.4 Sequenced execution policy [execpol.seq]
22.12.5 Parallel execution policy [execpol.par]
22.12.6 Parallel and unsequenced execution policy [execpol.parunseq]
22.12.7 Unsequenced execution policy [execpol.unseq]
22.13 Primitive numeric conversions [charconv]
22.13.2 Primitive numeric output conversion [charconv.to.chars]
22.14.6.5 Class template basic_format_parse_context [format.parse.ctx]
22.14.6.6 Class template basic_format_context [format.context]
22.15 Bit manipulation [bit]
22.15.3 Function template bit_cast [bit.cast]
22.15.5 Integral powers of 2 [bit.pow.two]
23.3.3.2 Construction and assignment [string.view.cons]
23.3.7 Suffix for basic_string_view literals [string.view.literals]
23.4.3 Class template basic_string [basic.string]
23.4.3.3 Constructors and assignment operators [string.cons]
23.4.3.7.1 basic_string::operator+= [string.op.append]
23.4.3.7.2 basic_string::append [string.append]
23.4.3.7.3 basic_string::assign [string.assign]
23.4.3.7.4 basic_string::insert [string.insert]
23.4.3.7.5 basic_string::erase [string.erase]
23.4.3.7.6 basic_string::replace [string.replace]
23.4.3.7.7 basic_string::copy [string.copy]
23.4.3.7.8 basic_string::swap [string.swap]
23.4.3.8 String operations [string.ops]
23.4.3.8.3 basic_string::substr [string.substr]
23.4.3.8.4 basic_string::compare [string.compare]
23.4.3.8.6 basic_string::ends_with [string.ends.with]
23.4.3.8.7 basic_string::contains [string.contains]
23.4.4.2 Non-member comparison operator functions [string.cmp]
23.4.4.4 Inserters and extractors [string.io]
23.5 Null-terminated sequence utilities [c.strings]
23.5.6 Multibyte / wide string and character conversion functions [c.mb.wcs]
24.2.5.2 Constructors, copy, and assignment [container.node.cons]
24.2.8 Unordered associative containers [unord.req]
24.2.8.2 Exception safety guarantees [unord.req.except]
24.3 Sequence containers [sequences]
24.3.7 Class template array [array]
24.3.7.2 Constructors, copy, and assignment [array.cons]
24.3.7.4 Specialized algorithms [array.special]
24.3.7.5 Zero-sized arrays [array.zero]
24.3.7.6 Array creation functions [array.creation]
24.3.8 Class template deque [deque]
24.3.8.2 Constructors, copy, and assignment [deque.cons]
24.3.9 Class template forward_list [forward.list]
24.3.9.2 Constructors, copy, and assignment [forward.list.cons]
24.3.10 Class template list [list]
24.3.10.2 Constructors, copy, and assignment [list.cons]
24.3.10.5 Operations [list.ops]
24.3.11 Class template vector [vector]
24.3.12 Specialization of vector for bool [vector.bool]
24.3.12.1 Partial class template specialization vector<bool, Allocator> [vector.bool.pspc]
24.4 Associative containers [associative]
24.4.4 Class template map [map]
24.4.4.2 Constructors, copy, and assignment [map.cons]
24.4.5 Class template multimap [multimap]
24.4.6 Class template set [set]
24.4.6.2 Constructors, copy, and assignment [set.cons]
24.4.7 Class template multiset [multiset]
24.5 Unordered associative containers [unord]
24.5.4 Class template unordered_map [unord.map]
24.5.5 Class template unordered_multimap [unord.multimap]
24.5.6 Class template unordered_set [unord.set]
24.5.7 Class template unordered_multiset [unord.multiset]
24.6.6 Class template queue [queue]
24.6.6.3 Constructors with allocators [queue.cons.alloc]
24.6.6.6 Specialized algorithms [queue.special]
24.6.7 Class template priority_queue [priority.queue]
24.6.8 Class template stack [stack]
24.6.8.4 Constructors with allocators [stack.cons.alloc]
24.6.8.7 Specialized algorithms [stack.special]
24.6.9 Class template flat_map [flat.map]
24.6.10 Class template flat_multimap [flat.multimap]
24.6.11 Class template flat_set [flat.set]
24.6.12 Class template flat_multiset [flat.multiset]
24.7.2.2 Class template span [views.span]
24.7.2.2.2 Constructors, copy, and assignment [span.cons]
24.7.2.2.3 Deduction guides [span.deduct]
24.7.2.2.5 Observers [span.obs]
24.7.2.2.6 Element access [span.elem]
24.7.2.3 Views of object representation [span.objectrep]
24.7.3.3.4 Observers of the multidimensional index space [mdspan.extents.obs]
24.7.3.4.5 Class template layout_left::mapping [mdspan.layout.left]
24.7.3.4.6 Class template layout_right::mapping [mdspan.layout.right]
24.7.3.4.7 Class template layout_stride::mapping [mdspan.layout.stride]
24.7.3.6 Class template mdspan [mdspan.mdspan]
25.3.2.2 Indirectly readable traits [readable.traits]
25.3.3 Customization point objects [iterator.cust]
25.3.5 C++17 iterator requirements [iterator.cpp17]
25.3.6 Indirect callable requirements [indirectcallable]
25.3.6.4 Class template projected [projected]
25.3.7 Common algorithm requirements [alg.req]
25.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]
25.3.7.4 Concept indirectly_swappable [alg.req.ind.swap]
25.3.7.5 Concept indirectly_comparable [alg.req.ind.cmp]
25.4.4 Range iterator operations [range.iter.ops]
25.5.1.2 Class template reverse_iterator [reverse.iterator]
25.5.2.2 Class template back_insert_iterator [back.insert.iterator]
25.5.2.4 Class template insert_iterator [insert.iterator]
25.5.3 Constant iterators and sentinels [const.iterators]
25.5.4 Move iterators and sentinels [move.iterators]
25.5.4.2 Class template move_iterator [move.iterator]
25.5.4.4 Construction and assignment [move.iter.cons]
25.5.4.10 Class template move_sentinel [move.sentinel]
25.5.5.1 Class template common_iterator [common.iterator]
25.5.7.1 Class template counted_iterator [counted.iterator]
25.6.2 Class template istream_iterator [istream.iterator]
25.6.3 Class template ostream_iterator [ostream.iterator]
26.4 Range requirements [range.req]
26.5.5 Dangling iterator handling [range.dangling]
26.6.6.2 Class template basic_istream_view [range.istream.view]
26.7.6.2 Class template ref_view [range.ref.view]
26.7.10.2 Class template take_view [range.take.view]
26.7.10.3 Class template take_view::sentinel [range.take.sentinel]
26.7.12.2 Class template drop_view [range.drop.view]
26.7.14.2 Class template join_view [range.join.view]
26.7.14.3 Class template join_view::iterator [range.join.iterator]
26.7.14.4 Class template join_view::sentinel [range.join.sentinel]
26.7.16.3 Class template lazy_split_view::outer-iterator [range.lazy.split.outer]
26.7.16.4 Class lazy_split_view::_outer-iterator_::value_type [range.lazy.split.outer.value]
26.7.16.5 Class template lazy_split_view::inner-iterator [range.lazy.split.inner]
26.7.22.3 Class template elements_view::iterator [range.elements.iterator]
26.7.22.4 Class template elements_view::sentinel [range.elements.sentinel]
26.7.24.2 Class template zip_view [range.zip.view]
26.7.24.3 Class template zip_view::iterator [range.zip.iterator]
26.7.24.4 Class template zip_view::sentinel [range.zip.sentinel]
26.7.26.3 Class template adjacent_view::iterator [range.adjacent.iterator]
26.7.26.4 Class template adjacent_view::sentinel [range.adjacent.sentinel]
26.7.28.4 Class chunk_view::_outer-iterator_::value_type [range.chunk.outer.value]
26.7.28.6 Class template chunk_view for forward ranges [range.chunk.view.fwd]
26.7.28.7 Class template chunk_view::iterator for forward ranges [range.chunk.fwd.iter]
26.7.29.3 Class template slide_view::iterator [range.slide.iterator]
26.7.31.3 Class template stride_view::iterator [range.stride.iterator]
26.7.32.2 Class template cartesian_product_view [range.cartesian.view]
26.7.32.3 Class template cartesian_product_view::iterator [range.cartesian.iterator]
27.3.2 Requirements on user-provided function objects [algorithms.parallel.user]
27.3.3 Effect of execution policies on algorithm execution [algorithms.parallel.exec]
27.6 Non-modifying sequence operations [alg.nonmodifying]
27.8.2.1 sort [sort]
27.8.7 Set operations on sorted structures [alg.set.operations]
27.8.9 Minimum and maximum [alg.min.max]
27.8.12 Three-way comparison algorithms [alg.three.way]
27.10 Generalized numeric operations [numeric.ops]
28.3 The floating-point environment [cfenv]
28.4.3 Class template complex [complex]
28.4.6 Non-member operations [complex.ops]
28.4.9 Additional overloads [cmplx.over]
28.4.10 Suffixes for complex number literals [complex.literals]
28.5 Random number generation [rand]
28.5.3.4 Random number engine requirements [rand.req.eng]
28.5.3.5 Random number engine adaptor requirements [rand.req.adapt]
28.5.3.6 Random number distribution requirements [rand.req.dist]
28.5.4 Random number engine class templates [rand.eng]
28.5.4.2 Class template linear_congruential_engine [rand.eng.lcong]
28.5.4.3 Class template mersenne_twister_engine [rand.eng.mers]
28.5.4.4 Class template subtract_with_carry_engine [rand.eng.sub]
28.5.5 Random number engine adaptor class templates [rand.adapt]
28.5.5.2 Class template discard_block_engine [rand.adapt.disc]
28.5.5.3 Class template independent_bits_engine [rand.adapt.ibits]
28.5.5.4 Class template shuffle_order_engine [rand.adapt.shuf]
28.5.6 Engines and engine adaptors with predefined parameters [rand.predef]
28.5.7 Class random_device [rand.device]
28.5.8.2 Function template generate_canonical [rand.util.canonical]
28.5.9 Random number distribution class templates [rand.dist]
28.5.9.3 Bernoulli distributions [rand.dist.bern]
28.5.9.3.2 Class template binomial_distribution [rand.dist.bern.bin]
28.5.9.3.3 Class template geometric_distribution [rand.dist.bern.geo]
28.5.9.3.4 Class template negative_binomial_distribution [rand.dist.bern.negbin]
28.5.9.4.2 Class template exponential_distribution [rand.dist.pois.exp]
28.5.9.4.3 Class template gamma_distribution [rand.dist.pois.gamma]
28.5.9.4.5 Class template extreme_value_distribution [rand.dist.pois.extreme]
28.5.9.5.3 Class template chi_squared_distribution [rand.dist.norm.chisq]
28.5.9.5.5 Class template fisher_f_distribution [rand.dist.norm.f]
28.5.9.5.6 Class template student_t_distribution [rand.dist.norm.t]
28.5.9.6.2 Class template piecewise_constant_distribution [rand.dist.samp.pconst]
28.5.9.6.3 Class template piecewise_linear_distribution [rand.dist.samp.plinear]
28.5.10 Low-quality random number generation [c.math.rand]
28.7 Mathematical functions for floating-point types [c.math]
28.7.3 Three-dimensional hypotenuse [c.math.hypot3]
28.7.4 Linear interpolation [c.math.lerp]
28.7.5 Classification / comparison functions [c.math.fpclass]
28.7.6 Mathematical special functions [sf.cmath]
28.7.6.5 Complete elliptic integral of the first kind [sf.cmath.comp.ellint.1]
28.7.6.6 Complete elliptic integral of the second kind [sf.cmath.comp.ellint.2]
28.7.6.7 Complete elliptic integral of the third kind [sf.cmath.comp.ellint.3]
28.7.6.8 Regular modified cylindrical Bessel functions [sf.cmath.cyl.bessel.i]
28.7.6.9 Cylindrical Bessel functions of the first kind [sf.cmath.cyl.bessel.j]
28.7.6.10 Irregular modified cylindrical Bessel functions [sf.cmath.cyl.bessel.k]
28.7.6.12 Incomplete elliptic integral of the first kind [sf.cmath.ellint.1]
28.7.6.13 Incomplete elliptic integral of the second kind [sf.cmath.ellint.2]
28.7.6.14 Incomplete elliptic integral of the third kind [sf.cmath.ellint.3]
28.7.6.20 Spherical Bessel functions of the first kind [sf.cmath.sph.bessel]
28.7.6.21 Spherical associated Legendre functions [sf.cmath.sph.legendre]
29.6 Class template time_point [time.point]
29.7.10.1 Class template clock_time_conversion [time.clock.conv]
29.7.10.3 Conversions between system_clock and utc_clock [time.clock.cast.sys.utc]
29.7.10.4 Conversions between system_clock and other clocks [time.clock.cast.sys]
29.7.10.5 Conversions between utc_clock and other clocks [time.clock.cast.utc]
29.8 The civil calendar [time.cal]
29.8.14 Class year_month_day [time.cal.ymd]
29.8.16 Class year_month_weekday [time.cal.ymwd]
29.9 Class template hh_mm_ss [time.hms]
29.10 12/24 hours functions [time.12]
29.11.2.4 Remote time zone database support [time.zone.db.remote]
30.3.1 Class locale [locale]
30.3.1.2.1 Type locale::category [locale.category]
30.3.1.2.2 Class locale::facet [locale.facet]
30.3.1.2.3 Class locale::id [locale.id]
30.3.1.3 Constructors and destructor [locale.cons]
30.3.3.1 Character classification [classification]
30.4.2.2 Class template ctype [locale.ctype]
30.4.3.3 Class template num_put [locale.nm.put]
30.4.4 The numeric punctuation facet [facet.numpunct]
30.5 C library locales [c.locales]
31.5.2 Class ios_base [ios.base]
31.5.2.2.1 Class ios_base::failure [ios.failure]
31.5.2.2.2 Type ios_base::fmtflags [ios.fmtflags]
31.5.2.2.3 Type ios_base::iostate [ios.iostate]
31.5.2.2.4 Type ios_base::openmode [ios.openmode]
31.5.2.2.5 Type ios_base::seekdir [ios.seekdir]
31.5.2.2.6 Class ios_base::Init [ios.init]
31.5.2.8 Constructors and destructor [ios.base.cons]
31.5.3 Class template fpos [fpos]
31.5.4 Class template basic_ios [ios]
31.6.3 Class template basic_streambuf [streambuf]
31.6.3.3.2 Buffer management and positioning [streambuf.buffer]
31.7.5.2 Class template basic_istream [istream]
31.7.5.2.4 Class basic_istream::sentry [istream.sentry]
31.7.5.5 Standard basic_istream manipulators [istream.manip]
31.7.5.7 Class template basic_iostream [iostreamclass]
31.7.6.2 Class template basic_ostream [ostream]
31.7.6.2.4 Class basic_ostream::sentry [ostream.sentry]
31.7.6.3.3 basic_ostream::operator<< [ostream.inserters]
31.7.6.5 Standard manipulators [ostream.manip]
31.7.6.6 Rvalue stream insertion [ostream.rvalue]
31.7.7 Standard manipulators [std.manip]
31.7.8 Extended manipulators [ext.manip]
31.7.10 Print functions [print.fun]
31.8.2 Class template basic_stringbuf [stringbuf]
31.8.3 Class template basic_istringstream [istringstream]
31.8.4 Class template basic_ostringstream [ostringstream]
31.8.5 Class template basic_stringstream [stringstream]
31.9.3 Class template basic_spanbuf [spanbuf]
31.9.3.5 Overridden virtual functions [spanbuf.virtuals]
31.9.4 Class template basic_ispanstream [ispanstream]
31.9.5 Class template basic_ospanstream [ospanstream]
31.9.6 Class template basic_spanstream [spanstream]
31.10.2 Class template basic_filebuf [filebuf]
31.10.2.5 Overridden virtual functions [filebuf.virtuals]
31.10.3 Class template basic_ifstream [ifstream]
31.10.4 Class template basic_ofstream [ofstream]
31.10.5 Class template basic_fstream [fstream]
31.11 Synchronized output streams [syncstream]
31.12.3 Requirements [fs.req]
31.12.6.3.2 Type and encoding conversions [fs.path.type.cvt]
31.12.6.7 Inserter and extractor [fs.path.io]
31.12.8 Enumerations [fs.enum]
31.12.8.6 Enum class directory_options [fs.enum.dir.opts]
31.12.13 Filesystem operation functions [fs.op.funcs]
31.13 C library files [c.files]
32 Regular expressions library [re][re]
32.2 Requirements [re.req]
32.4 Namespace std::regex_constants [re.const]
32.4.2 Bitmask type syntax_option_type [re.synopt]
32.4.3 Bitmask type match_flag_type [re.matchflag]
32.4.4 Implementation-defined error_type [re.err]
32.5 Class regex_error [re.badexp]
32.6 Class template regex_traits [re.traits]
32.7 Class template basic_regex [re.regex]
32.8 Class template sub_match [re.submatch]
32.9 Class template match_results [re.results]
32.10 Regular expression algorithms [re.alg]
32.11 Regular expression iterators [re.iter]
32.11.1 Class template regex_iterator [re.regiter]
32.11.2 Class template regex_token_iterator [re.tokiter]
32.12 Modified ECMAScript regular expression grammar [re.grammar]
33.2.5 Requirements for Cpp17Lockable types [thread.req.lockable]
33.3.3 Class stop_token [stoptoken]
33.3.3.2 Constructors, copy, and assignment [stoptoken.cons]
33.3.4 Class stop_source [stopsource]
33.3.4.2 Constructors, copy, and assignment [stopsource.cons]
33.3.5 Class template stop_callback [stopcallback]
33.4.4.2 Constructors, move, and assignment [thread.jthread.cons]
33.5 Atomic operations [atomics]
33.5.6 Waiting and notifying [atomics.wait]
33.5.7.3 Specializations for integral types [atomics.ref.int]
33.5.7.4 Specializations for floating-point types [atomics.ref.float]
33.5.7.5 Partial specialization for pointers [atomics.ref.pointer]
33.5.7.6 Member operators common to integers and pointers to objects [atomics.ref.memop]
33.5.8.4 Specializations for floating-point types [atomics.types.float]
33.5.8.6 Member operators common to integers and pointers to objects [atomics.types.memop]
33.5.8.7 Partial specializations for smart pointers [util.smartptr.atomic]
33.5.10 Flag type and operations [atomics.flag]
33.6.5.4.2 Constructors, destructor, and assignment [thread.lock.unique.cons]
33.6.5.5.2 Constructors, destructor, and assignment [thread.lock.shared.cons]
33.8.3 Class template counting_semaphore [thread.sema.cnt]
33.10.9 Function template async [futures.async]
33.10.10 Class template packaged_task [futures.task]
A.3 Lexical conventions [gram.lex]
A.13 Preprocessing directives [gram.cpp]
Annex B (normative) Implementation quantities [implimits][implimits]
C.1 C++ and ISO C++ 2020 [diff.cpp20]
C.2 C++ and ISO C++ 2017 [diff.cpp17]
C.3 C++ and ISO C++ 2014 [diff.cpp14]
C.4 C++ and ISO C++ 2011 [diff.cpp11]
C.5 C++ and ISO C++ 2003 [diff.cpp03]
C.6.8 [cpp]: preprocessing directives [diff.cpp]
C.7.3.1 Types char16_t and char32_t [diff.char16]
C.7.5.2 Macro offsetof(type, member-designator) [diff.offsetof]
C.7.5.3 Memory allocation functions [diff.malloc]
Annex D (normative) Compatibility features [depr][depr]
D.3 Implicit capture of *this by reference [depr.capture.this]
D.6 Redeclaration of static constexpr data members [depr.static.constexpr]
D.7 Non-local use of TU-local entities [depr.local]
D.8 Implicit declaration of copy functions [depr.impldec]
D.9 Literal operator function declarations using an identifier [depr.lit]
D.16 Deprecated error numbers [depr.cerrno]
D.22 Deprecated iterator class template [depr.iterator]
D.26 Deprecated standard code conversion facets [depr.locale.stdcvt]
D.27 Deprecated convenience conversion interfaces [depr.conversions]
D.29 Deprecated filesystem path factory functions [depr.fs.path.factory]
D.30 Deprecated atomic operations [depr.atomics]
E.2 R1 Default identifiers [uaxid.def]
E.4 R3 Pattern_White_Space and Pattern_Syntax characters [uaxid.pattern]
E.5 R4 Equivalent normalized identifiers [uaxid.eqn]
E.6 R5 Equivalent case-insensitive identifiers [uaxid.eqci]
E.7 R6 Filtered normalized identifiers [uaxid.filter]
E.8 R7 Filtered case-insensitive identifiers [uaxid.filterci]