diff --git a/cxxdraft-htmlgen b/cxxdraft-htmlgen
index eee5307c45..d76984e59a 160000
--- a/cxxdraft-htmlgen
+++ b/cxxdraft-htmlgen
@@ -1 +1 @@
-Subproject commit eee5307c45c04761ef5c27956cbed742e08e5fb4
+Subproject commit d76984e59af74768c3ce732b5517325f10807a57
diff --git a/draft b/draft
index c3bd02a2e4..2f53f313f5 160000
--- a/draft
+++ b/draft
@@ -1 +1 @@
-Subproject commit c3bd02a2e44c53c8fe7ba5b48a94bacc9186235d
+Subproject commit 2f53f313f5b1aac5f9547b39e78863e23ca9c047
diff --git a/gh-pages b/gh-pages
index 51fa57f956..5bc71b27ad 160000
--- a/gh-pages
+++ b/gh-pages
@@ -1 +1 @@
-Subproject commit 51fa57f956efbbe41d0384d39e3d798bb4e44441
+Subproject commit 5bc71b27ad733d9329d9985ea717a358c134c86f
diff --git a/htmlgen.patch b/htmlgen.patch
index 7099c1c272..e34ce89bf5 100644
--- a/htmlgen.patch
+++ b/htmlgen.patch
@@ -1,8 +1,8 @@
-From 363f55f01f56681d378bad6f8c32a4a703e40248 Mon Sep 17 00:00:00 2001
+From 564bd58ebe115367edb2444d5051838480453623 Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Mon, 23 Jan 2017 06:58:26 +0100
-Subject: [PATCH 01/10] Reduce excessive indentation of comments. Helps layout
- on smaller (e.g. half-screen) window sizes.
+Subject: [PATCH 1/9] Reduce excessive indentation of comments. Helps layout on
+ smaller (e.g. half-screen) window sizes.
---
source/basic.tex | 26 +++++++++++++-------------
@@ -10,10 +10,10 @@ Subject: [PATCH 01/10] Reduce excessive indentation of comments. Helps layout
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/source/basic.tex b/source/basic.tex
-index a1b8f00c..326cf97f 100644
+index a85279f1..81d4fabf 100644
--- a/source/basic.tex
+++ b/source/basic.tex
-@@ -314,7 +314,7 @@ Given
+@@ -317,7 +317,7 @@ Given
#include
struct C {
@@ -22,7 +22,7 @@ index a1b8f00c..326cf97f 100644
};
int main() {
-@@ -2616,23 +2616,23 @@ namespace AB {
+@@ -2619,23 +2619,23 @@ namespace AB {
void h()
{
@@ -59,7 +59,7 @@ index a1b8f00c..326cf97f 100644
\end{codeblock}
\end{example}
diff --git a/source/expressions.tex b/source/expressions.tex
-index 1d3c4df1..c6c49338 100644
+index 381250b8..4266aed5 100644
--- a/source/expressions.tex
+++ b/source/expressions.tex
@@ -2924,7 +2924,7 @@ struct s2 {
@@ -75,10 +75,10 @@ index 1d3c4df1..c6c49338 100644
2.43.0
-From 26f62ae64ced3a459f7ed769e3163c31e023d882 Mon Sep 17 00:00:00 2001
+From 5d61a22ec14f73f20323c05da461423f6712852c Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Wed, 1 Feb 2017 03:24:29 +0100
-Subject: [PATCH 02/10] Use new link macros.
+Subject: [PATCH 2/9] Use new link macros.
---
source/algorithms.tex | 4 +-
@@ -111,7 +111,7 @@ Subject: [PATCH 02/10] Use new link macros.
27 files changed, 607 insertions(+), 616 deletions(-)
diff --git a/source/algorithms.tex b/source/algorithms.tex
-index c9ab8d9d..afec9113 100644
+index 6ca7e0f1..09938442 100644
--- a/source/algorithms.tex
+++ b/source/algorithms.tex
@@ -5,7 +5,7 @@
@@ -133,10 +133,10 @@ index c9ab8d9d..afec9113 100644
\begin{itemdecl}
diff --git a/source/basic.tex b/source/basic.tex
-index 326cf97f..c83a9d0b 100644
+index 81d4fabf..8411bcae 100644
--- a/source/basic.tex
+++ b/source/basic.tex
-@@ -155,7 +155,7 @@ or the \tcode{*\keyword{this}} object\iref{expr.prim.this}.
+@@ -158,7 +158,7 @@ or the \tcode{*\keyword{this}} object\iref{expr.prim.this}.
\indextext{linkage}%
A name used in more than one translation unit can potentially
refer to the same entity in these translation units depending on the
@@ -145,7 +145,7 @@ index 326cf97f..c83a9d0b 100644
translation unit.
\rSec1[basic.def]{Declarations and definitions}
-@@ -178,7 +178,7 @@ A declaration may also have effects including:
+@@ -181,7 +181,7 @@ A declaration may also have effects including:
\item a static assertion\iref{dcl.pre},
\item controlling template instantiation\iref{temp.explicit},
\item guiding template argument deduction for constructors\iref{temp.deduct.guide},
@@ -154,7 +154,7 @@ index 326cf97f..c83a9d0b 100644
\item nothing (in the case of an \grammarterm{empty-declaration}).
\end{itemize}
-@@ -264,7 +264,7 @@ that defines a function, a class, a variable, or a static data member,
+@@ -267,7 +267,7 @@ that defines a function, a class, a variable, or a static data member,
\item it is
an explicit instantiation declaration\iref{temp.explicit}, or
\item it is
@@ -163,7 +163,7 @@ index 326cf97f..c83a9d0b 100644
\grammarterm{declaration} is not a definition.
\end{itemize}
A declaration is said to be a \defn{definition} of each entity that it defines.
-@@ -306,7 +306,7 @@ In some circumstances, \Cpp{} implementations implicitly define the
+@@ -309,7 +309,7 @@ In some circumstances, \Cpp{} implementations implicitly define the
default constructor\iref{class.default.ctor},
copy constructor, move constructor\iref{class.copy.ctor},
copy assignment operator, move assignment operator\iref{class.copy.assign},
@@ -172,7 +172,7 @@ index 326cf97f..c83a9d0b 100644
\end{note}
\begin{example}
Given
-@@ -391,7 +391,7 @@ defined as follows:
+@@ -394,7 +394,7 @@ defined as follows:
an \grammarterm{id-expression}\iref{expr.prim.id} or
a \grammarterm{splice-expression}\iref{expr.prim.splice}, the set
contains only $E$.
@@ -181,7 +181,7 @@ index 326cf97f..c83a9d0b 100644
an array operand, the set contains the potential results of that operand.
\item If $E$ is a class member access
expression\iref{expr.ref} of the form
-@@ -401,16 +401,15 @@ the set contains the potential results of $E_1$.
+@@ -404,16 +404,15 @@ the set contains the potential results of $E_1$.
\item If $E$ is a class member access expression
naming a static data member,
the set contains the \grammarterm{id-expression} designating the data member.
@@ -202,7 +202,7 @@ index 326cf97f..c83a9d0b 100644
contains the potential results of the right operand.
\item Otherwise, the set is empty.
\end{itemize}
-@@ -572,8 +571,8 @@ implicitly-defined
+@@ -575,8 +574,8 @@ implicitly-defined
copy assignment or move assignment function for another class as specified
in~\ref{class.copy.assign}.
A constructor for a class is odr-used as specified
@@ -213,7 +213,7 @@ index 326cf97f..c83a9d0b 100644
\pnum
A local entity\iref{basic.pre}
-@@ -645,7 +644,7 @@ void h() {
+@@ -648,7 +647,7 @@ void h() {
\pnum
Every program shall contain at least one definition of every
function or variable that is odr-used in that program
@@ -222,7 +222,7 @@ index 326cf97f..c83a9d0b 100644
The definition can appear explicitly in the program, it can be found in
the standard or a user-defined library, or (when appropriate) it is
implicitly defined (see~\ref{class.default.ctor}, \ref{class.copy.ctor},
-@@ -693,9 +692,9 @@ The rules for declarations and expressions
+@@ -696,9 +695,9 @@ The rules for declarations and expressions
describe in which contexts complete class types are required. A class
type \tcode{T} must be complete if
\begin{itemize}
@@ -235,7 +235,7 @@ index 326cf97f..c83a9d0b 100644
\item \tcode{T} is used as the allocated type or array element type in a
\grammarterm{new-expression}\iref{expr.new}, or
\item an lvalue-to-rvalue conversion is applied to
-@@ -715,7 +714,7 @@ a \keyword{static_cast}\iref{expr.static.cast}, or
+@@ -718,7 +717,7 @@ a \keyword{static_cast}\iref{expr.static.cast}, or
\keyword{sizeof} operator\iref{expr.sizeof} is applied to an operand of
type \tcode{T}, or
\item a function with a return type or argument type of type \tcode{T}
@@ -244,7 +244,7 @@ index 326cf97f..c83a9d0b 100644
\item a class with a base class of type \tcode{T} is
defined\iref{class.derived}, or
\item an lvalue of type \tcode{T} is assigned to\iref{expr.assign}, or
-@@ -770,7 +769,7 @@ template specializations\iref{temp.spec.partial.match}, except that a name can r
+@@ -773,7 +772,7 @@ template specializations\iref{temp.spec.partial.match}, except that a name can r
a non-volatile const object with internal or no linkage if the object
\begin{itemize}
\item has the same literal type in all definitions of \tcode{D},
@@ -253,7 +253,7 @@ index 326cf97f..c83a9d0b 100644
\item is not odr-used in any definition of \tcode{D}, and
\item has the same value in all definitions of \tcode{D},
\end{itemize}
-@@ -2876,7 +2875,7 @@ consteval int bad_splice(std::meta::info v) {
+@@ -2879,7 +2878,7 @@ consteval int bad_splice(std::meta::info v) {
\pnum
\indextext{program}%
\indextext{linking}%
@@ -262,7 +262,7 @@ index 326cf97f..c83a9d0b 100644
linked together. A translation unit consists
of a sequence of declarations.
-@@ -2909,7 +2908,7 @@ are attached to the same module.
+@@ -2912,7 +2911,7 @@ are attached to the same module.
\indextext{linkage!\idxcode{inline} and}%
\indextext{\idxcode{inline}!linkage of}%
The name of an entity
@@ -271,7 +271,7 @@ index 326cf97f..c83a9d0b 100644
has internal linkage if it is the name of
\begin{itemize}
\item
-@@ -2950,7 +2949,7 @@ typedef declaration in which the class has the typedef name for linkage
+@@ -2953,7 +2952,7 @@ typedef declaration in which the class has the typedef name for linkage
purposes\iref{dcl.typedef}; or
\item
\indextext{enumeration!linkage of}%
@@ -280,7 +280,7 @@ index 326cf97f..c83a9d0b 100644
in a typedef declaration in which the enumeration has the typedef name
for linkage purposes\iref{dcl.typedef}; or
\item an unnamed enumeration
-@@ -3026,7 +3025,7 @@ the declaration at line \#3 still redeclares \#1 and receives internal linkage.
+@@ -3029,7 +3028,7 @@ the declaration at line \#3 still redeclares \#1 and receives internal linkage.
\pnum
\indextext{linkage!no}%
Names not covered by these rules have no linkage. Moreover, except as
@@ -289,7 +289,7 @@ index 326cf97f..c83a9d0b 100644
linkage.
\pnum
-@@ -3384,8 +3383,8 @@ features of the language, such as references and virtual functions, might
+@@ -3387,8 +3386,8 @@ features of the language, such as references and virtual functions, might
involve additional memory locations that are not accessible to programs but are
managed by the implementation.
\end{note}
@@ -300,7 +300,7 @@ index 326cf97f..c83a9d0b 100644
locations without interfering with each other.
\pnum
-@@ -3429,15 +3428,15 @@ bit-fields \tcode{b} and \tcode{c} cannot be concurrently modified, but
+@@ -3432,15 +3431,15 @@ bit-fields \tcode{b} and \tcode{c} cannot be concurrently modified, but
The constructs in a \Cpp{} program create, destroy, refer to, access, and
manipulate objects.
An \defn{object} is created
@@ -319,7 +319,7 @@ index 326cf97f..c83a9d0b 100644
and
in its period of destruction\iref{class.cdtor}.
\begin{note}
-@@ -3567,7 +3566,7 @@ A \defn{potentially-overlapping subobject} is either:
+@@ -3570,7 +3569,7 @@ A \defn{potentially-overlapping subobject} is either:
\begin{itemize}
\item a base class subobject, or
\item a non-static data member
@@ -328,7 +328,7 @@ index 326cf97f..c83a9d0b 100644
\end{itemize}
\pnum
-@@ -3588,7 +3587,7 @@ Otherwise, the circumstances under which the object has zero size
+@@ -3591,7 +3590,7 @@ Otherwise, the circumstances under which the object has zero size
are \impldef{which non-standard-layout objects
containing no data are considered empty}.
\indextext{most derived object!bit-field}%
@@ -337,7 +337,7 @@ index 326cf97f..c83a9d0b 100644
an object with nonzero size
shall occupy one or more bytes of storage,
including every byte that is occupied in full or in part
-@@ -4161,16 +4160,16 @@ the result of the evaluation is the value so produced but is not erroneous:
+@@ -4163,16 +4162,16 @@ the result of the evaluation is the value so produced but is not erroneous:
is produced by the evaluation of:
\begin{itemize}
\item
@@ -357,7 +357,7 @@ index 326cf97f..c83a9d0b 100644
\end{itemize}
then the result of the operation is an indeterminate value or
that erroneous value, respectively.
-@@ -4361,8 +4360,8 @@ specified in~\ref{class.copy.elision}.
+@@ -4363,8 +4362,8 @@ specified in~\ref{class.copy.elision}.
\indextext{storage duration!dynamic|(}
\pnum
@@ -368,7 +368,7 @@ index 326cf97f..c83a9d0b 100644
\indextext{\idxcode{new}}%
\grammarterm{new-expression}{s}\iref{expr.new}, and destroyed using
\indextext{\idxcode{delete}}%
-@@ -4526,9 +4525,9 @@ that would match a handler\iref{except.handle} of type
+@@ -4528,9 +4527,9 @@ that would match a handler\iref{except.handle} of type
\tcode{std::bad_alloc}\iref{bad.alloc}.
\pnum
@@ -381,7 +381,7 @@ index 326cf97f..c83a9d0b 100644
a coroutine state\iref{dcl.fct.def.coroutine},
or called indirectly through calls to the
functions in the \Cpp{} standard library.
-@@ -5034,9 +5033,9 @@ shall be destroyed before
+@@ -5036,9 +5035,9 @@ shall be destroyed before
impose requirements on implementations regarding the representation
of types.
There are two kinds of types: fundamental types and compound types.
@@ -394,7 +394,7 @@ index 326cf97f..c83a9d0b 100644
\end{note}
\pnum
-@@ -5210,7 +5209,7 @@ Arithmetic types\iref{basic.fundamental}, enumeration types,
+@@ -5212,7 +5211,7 @@ Arithmetic types\iref{basic.fundamental}, enumeration types,
pointer types, pointer-to-member types\iref{basic.compound},
\tcode{std::meta::\brk{}info}, \tcode{std::nullptr_t},
and
@@ -403,7 +403,7 @@ index 326cf97f..c83a9d0b 100644
types are collectively called
\defnadjx{scalar}{types}{type}.
\label{term.trivially.copyable.type}%
-@@ -5243,7 +5242,7 @@ A type is a \defnadj{literal}{type} if it is:
+@@ -5246,7 +5245,7 @@ A type is a \defnadj{literal}{type} if it is:
\item a scalar type; or
\item a reference type; or
\item an array of literal type; or
@@ -412,7 +412,7 @@ index 326cf97f..c83a9d0b 100644
has all of the following properties:
\begin{itemize}
\item it has a constexpr destructor\iref{dcl.constexpr},
-@@ -5277,8 +5276,8 @@ will be usable in a constant expression.
+@@ -5280,8 +5279,8 @@ will be usable in a constant expression.
Two types \cvqual{cv1} \tcode{T1} and \cvqual{cv2} \tcode{T2} are
\defnadjx{layout-compatible}{types}{type}
if \tcode{T1} and \tcode{T2} are the same type,
@@ -423,7 +423,7 @@ index 326cf97f..c83a9d0b 100644
\pnum
A type is \defn{consteval-only} if it is either
-@@ -5831,7 +5830,7 @@ ordinary pointers to objects or functions.
+@@ -5834,7 +5833,7 @@ ordinary pointers to objects or functions.
which identify members of a given
type within objects of a given class, \ref{dcl.mptr}.
Pointers to data members and pointers to member functions are collectively
@@ -432,7 +432,7 @@ index 326cf97f..c83a9d0b 100644
\end{itemize}
\pnum
-@@ -5909,7 +5908,7 @@ layout-compatible types shall
+@@ -5912,7 +5911,7 @@ layout-compatible types shall
have the same value representation and alignment
requirements\iref{basic.align}.
\begin{note}
@@ -441,7 +441,7 @@ index 326cf97f..c83a9d0b 100644
representation, but their range of valid values is restricted by the extended
alignment requirement.
\end{note}
-@@ -6224,8 +6223,8 @@ the definition of the usual arithmetic conversions\iref{expr.arith.conv}.
+@@ -6227,8 +6226,8 @@ the definition of the usual arithmetic conversions\iref{expr.arith.conv}.
\indextext{program execution|(}
\pnum
@@ -452,7 +452,7 @@ index 326cf97f..c83a9d0b 100644
block. Such an object exists and retains its last-stored value during
the execution of the block and while the block is suspended (by a call
of a function, suspension of a coroutine\iref{expr.await}, or receipt of a signal).
-@@ -6270,7 +6269,7 @@ if $E$ is a \grammarterm{lambda-expression}\iref{expr.prim.lambda},
+@@ -6273,7 +6272,7 @@ if $E$ is a \grammarterm{lambda-expression}\iref{expr.prim.lambda},
the initialization of the entities captured by copy and
the constituent expressions of the \grammarterm{initializer} of the \grammarterm{init-capture}{s},
\item
@@ -461,7 +461,7 @@ index 326cf97f..c83a9d0b 100644
the constituent expressions of each default argument\iref{dcl.fct.default}
used in the call, or
\item
-@@ -6301,7 +6300,7 @@ are not subexpressions of a nested unevaluated operand\iref{term.unevaluated.ope
+@@ -6304,7 +6303,7 @@ are not subexpressions of a nested unevaluated operand\iref{term.unevaluated.ope
A \defn{full-expression} is
\begin{itemize}
\item
@@ -471,10 +471,10 @@ index 326cf97f..c83a9d0b 100644
a \grammarterm{constant-expression}\iref{expr.const},
\item
diff --git a/source/classes.tex b/source/classes.tex
-index a1287851..5fa5e3b8 100644
+index 5f3fc4ea..32338393 100644
--- a/source/classes.tex
+++ b/source/classes.tex
-@@ -274,10 +274,10 @@ A class \tcode{S} is a \defnadj{standard-layout}{class} if it:
+@@ -275,10 +275,10 @@ A class \tcode{S} is a \defnadj{standard-layout}{class} if it:
\item has no non-static data members of type non-standard-layout class
(or array of such types) or reference,
@@ -488,7 +488,7 @@ index a1287851..5fa5e3b8 100644
for all non-static data members,
\item has no non-standard-layout base classes,
-@@ -660,7 +660,7 @@ if it is
+@@ -661,7 +661,7 @@ if it is
\end{itemize}
For any other \grammarterm{member-declaration},
each declared entity
@@ -497,7 +497,7 @@ index a1287851..5fa5e3b8 100644
is a member of the class,
and each such \grammarterm{member-declaration}
shall either
-@@ -675,7 +675,7 @@ Nested types are classes\iref{class.name,class.nest} and
+@@ -676,7 +676,7 @@ Nested types are classes\iref{class.name,class.nest} and
enumerations\iref{dcl.enum} declared in the class and arbitrary types
declared as members by use of a typedef declaration\iref{dcl.typedef}
or \grammarterm{alias-declaration}.
@@ -506,7 +506,7 @@ index a1287851..5fa5e3b8 100644
are members of the class.
\pnum
-@@ -821,9 +821,9 @@ shall contain a \grammarterm{type-specifier} that is not a \grammarterm{cv-quali
+@@ -822,9 +822,9 @@ shall contain a \grammarterm{type-specifier} that is not a \grammarterm{cv-quali
The
\grammarterm{member-declarator-list} can be omitted only after a
\grammarterm{class-specifier} or an \grammarterm{enum-specifier} or in a
@@ -518,7 +518,7 @@ index a1287851..5fa5e3b8 100644
that is not a friend declaration.
\pnum
-@@ -926,7 +926,7 @@ unscoped enumeration type; and
+@@ -927,7 +927,7 @@ unscoped enumeration type; and
\pnum
In addition, if class \tcode{T} has a user-declared
@@ -527,7 +527,7 @@ index a1287851..5fa5e3b8 100644
\tcode{T} shall have a name different from \tcode{T}.
\pnum
-@@ -976,7 +976,7 @@ non-static data members (in any order) have layout-compatible
+@@ -977,7 +977,7 @@ non-static data members (in any order) have layout-compatible
types\iref{term.layout.compatible.type}.
\pnum
@@ -536,7 +536,7 @@ index a1287851..5fa5e3b8 100644
of struct type \tcode{T1}, it is permitted to read a non-static
data member \tcode{m} of another union member of struct type \tcode{T2}
provided \tcode{m} is part of the common initial sequence of \tcode{T1} and \tcode{T2};
-@@ -2309,7 +2309,7 @@ by a \grammarterm{new-expression}\iref{expr.new}; the context of the invocation
+@@ -2310,7 +2310,7 @@ by a \grammarterm{new-expression}\iref{expr.new}; the context of the invocation
An array of class type contains several subobjects for each of which
the destructor is invoked.
\end{note}
@@ -545,7 +545,7 @@ index a1287851..5fa5e3b8 100644
if it is invoked or as specified in~\ref{expr.new},
\ref{stmt.return}, \ref{dcl.init.aggr},
\ref{class.base.init}, and~\ref{except.throw}.
-@@ -6410,7 +6410,7 @@ associated with a \grammarterm{try-block} (if there is one),
+@@ -6411,7 +6411,7 @@ associated with a \grammarterm{try-block} (if there is one),
the copy-initialization of the exception object can be omitted by
constructing $o$ directly into the exception object;
@@ -555,7 +555,7 @@ index a1287851..5fa5e3b8 100644
corresponding parameter if the meaning of the program will be unchanged except for
the execution of a constructor and destructor for the parameter copy object;
diff --git a/source/compatibility.tex b/source/compatibility.tex
-index a46c9a71..8c70dc05 100644
+index 60165bf4..41471921 100644
--- a/source/compatibility.tex
+++ b/source/compatibility.tex
@@ -2017,8 +2017,8 @@ deallocation functions\iref{expr.new}.
@@ -618,7 +618,7 @@ index 4d848e8f..6bd0435e 100644
\rSec2[concept.default.init]{Concept \cname{default_initializable}}
diff --git a/source/containers.tex b/source/containers.tex
-index 6a71104d..77036c1f 100644
+index e3b455f6..321f6146 100644
--- a/source/containers.tex
+++ b/source/containers.tex
@@ -6116,14 +6116,14 @@ namespace std {
@@ -674,7 +674,7 @@ index 6a71104d..77036c1f 100644
In addition, it supports constant time insert and erase operations at the beginning or the end;
insert and erase in the middle take linear time.
That is, a deque is especially optimized for pushing and popping elements at the beginning and end.
-@@ -7138,7 +7138,7 @@ namespace std {
+@@ -7139,7 +7139,7 @@ namespace std {
\pnum
An incomplete type \tcode{T} may be used when instantiating \tcode{forward_list}
if the allocator meets the
@@ -683,7 +683,7 @@ index 6a71104d..77036c1f 100644
\tcode{T} shall be complete before any member of the resulting specialization
of \tcode{forward_list} is referenced.
-@@ -7722,7 +7722,7 @@ predicate.
+@@ -7723,7 +7723,7 @@ predicate.
\pnum
\remarks
@@ -692,7 +692,7 @@ index 6a71104d..77036c1f 100644
\end{itemdescr}
\indexlibrarymember{unique}{forward_list}%
-@@ -7827,7 +7827,7 @@ Approximately $N \log N$ comparisons, where $N$ is \tcode{distance(begin(), end(
+@@ -7828,7 +7828,7 @@ Approximately $N \log N$ comparisons, where $N$ is \tcode{distance(begin(), end(
\pnum
\remarks
@@ -701,7 +701,7 @@ index 6a71104d..77036c1f 100644
\end{itemdescr}
\indexlibrarymember{reverse}{forward_list}%
-@@ -9027,7 +9027,7 @@ A
+@@ -9028,7 +9028,7 @@ A
is a sequence container that supports
bidirectional iterators and allows constant time insert and erase
operations anywhere within the sequence, with storage management handled
@@ -710,7 +710,7 @@ index 6a71104d..77036c1f 100644
fast random access to list elements is not supported, but many
algorithms only need sequential access anyway.
-@@ -9203,7 +9203,7 @@ namespace std {
+@@ -9204,7 +9204,7 @@ namespace std {
\pnum
An incomplete type \tcode{T} may be used when instantiating \tcode{list}
if the allocator meets the
@@ -719,7 +719,7 @@ index 6a71104d..77036c1f 100644
\tcode{T} shall be complete before any member of the resulting specialization
of \tcode{list} is referenced.
-@@ -9616,7 +9616,7 @@ applications of the corresponding predicate.
+@@ -9617,7 +9617,7 @@ applications of the corresponding predicate.
\pnum
\remarks
@@ -728,7 +728,7 @@ index 6a71104d..77036c1f 100644
\end{itemdescr}
\indexlibrarymember{unique}{list}%
-@@ -9739,7 +9739,7 @@ comparisons, where $N$ is \tcode{size()}.
+@@ -9740,7 +9740,7 @@ comparisons, where $N$ is \tcode{size()}.
\pnum
\remarks
@@ -737,7 +737,7 @@ index 6a71104d..77036c1f 100644
\end{itemdescr}
\rSec3[list.erasure]{Erasure}
-@@ -9847,7 +9847,7 @@ of an allocator-aware container\iref{container.alloc.reqmts},
+@@ -9848,7 +9848,7 @@ of an allocator-aware container\iref{container.alloc.reqmts},
of a sequence container, including most of the optional sequence container
requirements\iref{sequence.reqmts},
and, for an element type other than \tcode{bool},
@@ -746,7 +746,7 @@ index 6a71104d..77036c1f 100644
The exceptions are the
\tcode{push_front}, \tcode{prepend_range}, \tcode{pop_front}, and \tcode{emplace_front} member functions, which are not
provided. Descriptions are provided here only for operations on \tcode{vector}
-@@ -9985,7 +9985,7 @@ namespace std {
+@@ -9986,7 +9986,7 @@ namespace std {
\pnum
An incomplete type \tcode{T} may be used when instantiating \tcode{vector}
if the allocator meets the
@@ -755,8 +755,8 @@ index 6a71104d..77036c1f 100644
\tcode{T} shall be complete before any member of the resulting specialization
of \tcode{vector} is referenced.
-@@ -10578,7 +10578,7 @@ Unless described below, all operations have the same requirements and
- semantics as the primary \tcode{vector} template, except that operations
+@@ -10579,7 +10579,7 @@ Unless described below, all operations have the same requirements and
+ semantics as the \tcode{vector} primary template, except that operations
dealing with the \tcode{bool} value type map to bit values in the
container storage and
-\tcode{allocator_traits::construct}\iref{allocator.traits.members}
@@ -764,7 +764,7 @@ index 6a71104d..77036c1f 100644
is not used to construct these values.
\pnum
-@@ -15653,9 +15653,9 @@ and
+@@ -15655,9 +15655,9 @@ and
can be used to instantiate
\tcode{queue}.
In particular,
@@ -776,7 +776,7 @@ index 6a71104d..77036c1f 100644
can be used.
\begin{codeblock}
-@@ -16010,15 +16010,15 @@ and
+@@ -16012,15 +16012,15 @@ and
can be used to instantiate
\tcode{priority_queue}.
In particular,
@@ -795,7 +795,7 @@ index 6a71104d..77036c1f 100644
\begin{codeblock}
namespace std {
-@@ -16563,10 +16563,10 @@ and
+@@ -16565,10 +16565,10 @@ and
can be used to instantiate
\tcode{stack}.
In particular,
@@ -810,7 +810,7 @@ index 6a71104d..77036c1f 100644
\rSec3[stack.defn]{Definition}
diff --git a/source/declarations.tex b/source/declarations.tex
-index 6214e7ef..6960c3e5 100644
+index ee70278b..a8c0ecb3 100644
--- a/source/declarations.tex
+++ b/source/declarations.tex
@@ -547,7 +547,7 @@ in explicit specializations and explicit instantiations, respectively.
@@ -930,7 +930,7 @@ index 6214e7ef..6960c3e5 100644
conversions are not needed, and therefore are suppressed, when such
direct bindings to lvalues are done.
\end{note}
-@@ -7725,7 +7724,7 @@ the initializer is
+@@ -7729,7 +7728,7 @@ the initializer is
where \tcode{get} undergoes argument-dependent lookup\iref{basic.lookup.argdep}.
In either case, \tcode{get} is interpreted as a \grammarterm{template-id}.
\begin{note}
@@ -939,7 +939,7 @@ index 6214e7ef..6960c3e5 100644
\end{note}
In either case, \exposid{e} is an lvalue if the type of the entity \exposid{e}
is an lvalue reference and an xvalue otherwise.
-@@ -7876,7 +7875,7 @@ is not looked up and is introduced by
+@@ -7880,7 +7879,7 @@ is not looked up and is introduced by
the \grammarterm{enum-specifier} or \grammarterm{opaque-enum-declaration}.
If the \grammarterm{enum-head-name} of an \grammarterm{opaque-enum-declaration} contains
a \grammarterm{nested-name-specifier},
@@ -948,7 +948,7 @@ index 6214e7ef..6960c3e5 100644
\pnum
\indextext{constant!enumeration}%
-@@ -7958,8 +7957,9 @@ If the underlying type is fixed, the type of each enumerator
+@@ -7962,8 +7961,9 @@ If the underlying type is fixed, the type of each enumerator
prior to the closing brace is the underlying
type
and the \grammarterm{constant-expression} in the \grammarterm{enumerator-definition}
@@ -960,7 +960,7 @@ index 6214e7ef..6960c3e5 100644
If the underlying
type is not fixed,
the type of each enumerator prior to the closing brace is determined as
-@@ -7968,8 +7968,9 @@ follows:
+@@ -7972,8 +7972,9 @@ follows:
\begin{itemize}
\item If an
initializer is specified for an enumerator, the
@@ -972,7 +972,7 @@ index 6214e7ef..6960c3e5 100644
unscoped enumeration type, the enumerator has the underlying type of that
enumeration type, otherwise it has the same type as the expression.
-@@ -8041,7 +8042,7 @@ if they have the same underlying type.
+@@ -8045,7 +8046,7 @@ if they have the same underlying type.
\pnum
The value of an enumerator or an object of an unscoped enumeration type is
@@ -981,7 +981,7 @@ index 6214e7ef..6960c3e5 100644
\begin{example}
\begin{codeblock}
enum color { red, yellow, green=20, blue };
-@@ -8324,7 +8325,7 @@ appertains to the namespace being defined or extended.
+@@ -8328,7 +8329,7 @@ appertains to the namespace being defined or extended.
Members of an inline namespace can be used in most respects as though they were members
of the innermost enclosing namespace. Specifically, the inline namespace and its enclosing
namespace are both added to the set of associated namespaces used in
@@ -990,7 +990,7 @@ index 6214e7ef..6960c3e5 100644
and a \grammarterm{using-directive}\iref{namespace.udir} that names the inline
namespace is implicitly inserted into the enclosing namespace as for an unnamed
namespace\iref{namespace.unnamed}. Furthermore, each
-@@ -9147,7 +9148,7 @@ different language linkages are distinct types even if they are
+@@ -9151,7 +9152,7 @@ different language linkages are distinct types even if they are
otherwise identical.
\pnum
@@ -999,7 +999,7 @@ index 6214e7ef..6960c3e5 100644
be achieved using a \grammarterm{linkage-specification}:
\indextext{\idxgram{linkage-specification}}%
-@@ -9477,19 +9478,19 @@ For each individual attribute, the form of the
+@@ -9481,19 +9482,19 @@ For each individual attribute, the form of the
\pnum
In an \grammarterm{attribute-list}, an ellipsis may appear only if that
\grammarterm{attribute}'s specification permits it. An \grammarterm{attribute} followed
@@ -1024,7 +1024,7 @@ index 6214e7ef..6960c3e5 100644
\grammarterm{attribute-token}. The \grammarterm{attribute-token} determines additional
requirements on the \grammarterm{attribute-argument-clause} (if any).
-@@ -9600,7 +9601,7 @@ declaration, the program is ill-formed.
+@@ -9604,7 +9605,7 @@ declaration, the program is ill-formed.
\pnum
An \grammarterm{alignment-specifier} of the form
\tcode{alignas(} \grammarterm{type-id} \tcode{)} has the same
@@ -1033,7 +1033,7 @@ index 6214e7ef..6960c3e5 100644
\pnum
The alignment requirement of an entity is the strictest nonzero alignment
-@@ -9780,7 +9781,7 @@ unless the implementation can issue such diagnostic messages.
+@@ -9784,7 +9785,7 @@ unless the implementation can issue such diagnostic messages.
\pnum
The \grammarterm{attribute-token} \tcode{fallthrough}
@@ -1043,7 +1043,7 @@ index 6214e7ef..6960c3e5 100644
such a statement is a fallthrough statement.
No \grammarterm{attribute-argument-clause} shall be present.
diff --git a/source/diagnostics.tex b/source/diagnostics.tex
-index d16f516a..df926181 100644
+index be2b863f..e653b348 100644
--- a/source/diagnostics.tex
+++ b/source/diagnostics.tex
@@ -505,13 +505,13 @@ the current state of \tcode{NDEBUG} each time that
@@ -1221,7 +1221,7 @@ index ba2d34d0..cd476d28 100644
\item%
diff --git a/source/expressions.tex b/source/expressions.tex
-index c6c49338..8e108f2c 100644
+index 4266aed5..d9469cf9 100644
--- a/source/expressions.tex
+++ b/source/expressions.tex
@@ -33,14 +33,14 @@ effects.
@@ -2012,7 +2012,7 @@ index c6c49338..8e108f2c 100644
\item
diff --git a/source/future.tex b/source/future.tex
-index f94b2c33..4c6942b4 100644
+index 5022a94d..fc805a6e 100644
--- a/source/future.tex
+++ b/source/future.tex
@@ -14,7 +14,7 @@ is defined as:
@@ -2049,7 +2049,7 @@ index f94b2c33..4c6942b4 100644
the \oldconcept{TransformationTrait} requirements with a base characteristic of
\tcode{integral_constant}.
diff --git a/source/intro.tex b/source/intro.tex
-index e4014b96..abc66134 100644
+index 880da163..8fb36735 100644
--- a/source/intro.tex
+++ b/source/intro.tex
@@ -105,8 +105,8 @@ Reads of scalar objects are described in \ref{conv.lval} and
@@ -2108,7 +2108,7 @@ index e4014b96..abc66134 100644
translation units to form a complete \Cpp{} program\iref{lex.phases}.%
\indextext{conformance requirements!library|)}
diff --git a/source/iostreams.tex b/source/iostreams.tex
-index 7381d9c3..987b4d2d 100644
+index 2de81f0e..af9dce40 100644
--- a/source/iostreams.tex
+++ b/source/iostreams.tex
@@ -555,7 +555,7 @@ is initialized,
@@ -2428,7 +2428,7 @@ index 7381d9c3..987b4d2d 100644
\pnum
\throws
diff --git a/source/iterators.tex b/source/iterators.tex
-index e0116c79..7acd9d21 100644
+index 6a21fdf1..98944de7 100644
--- a/source/iterators.tex
+++ b/source/iterators.tex
@@ -729,7 +729,7 @@ is undefined.
@@ -2440,7 +2440,7 @@ index e0116c79..7acd9d21 100644
if all operations provided to meet iterator category requirements
are constexpr functions.
\begin{note}
-@@ -6853,7 +6853,7 @@ ostream_iterator& operator++(int);
+@@ -6851,7 +6851,7 @@ ostream_iterator& operator++(int);
The
class template
\tcode{istreambuf_iterator}
@@ -2449,7 +2449,7 @@ index e0116c79..7acd9d21 100644
reads successive
\textit{characters}
from the streambuf for which it was constructed.
-@@ -6978,7 +6978,6 @@ constexpr istreambuf_iterator(default_sentinel_t) noexcept;
+@@ -6976,7 +6976,6 @@ constexpr istreambuf_iterator(default_sentinel_t) noexcept;
Initializes \tcode{sbuf_} with \keyword{nullptr}.
\end{itemdescr}
@@ -2457,7 +2457,7 @@ index e0116c79..7acd9d21 100644
\indexlibraryctor{istreambuf_iterator}%
\begin{itemdecl}
istreambuf_iterator(istream_type& s) noexcept;
-@@ -6990,7 +6989,6 @@ istreambuf_iterator(istream_type& s) noexcept;
+@@ -6988,7 +6987,6 @@ istreambuf_iterator(istream_type& s) noexcept;
Initializes \tcode{sbuf_} with \tcode{s.rdbuf()}.
\end{itemdescr}
@@ -2465,7 +2465,7 @@ index e0116c79..7acd9d21 100644
\indexlibraryctor{istreambuf_iterator}%
\begin{itemdecl}
istreambuf_iterator(streambuf_type* s) noexcept;
-@@ -7002,7 +7000,6 @@ istreambuf_iterator(streambuf_type* s) noexcept;
+@@ -7000,7 +6998,6 @@ istreambuf_iterator(streambuf_type* s) noexcept;
Initializes \tcode{sbuf_} with \tcode{s}.
\end{itemdescr}
@@ -2473,7 +2473,7 @@ index e0116c79..7acd9d21 100644
\indexlibraryctor{istreambuf_iterator}%
\begin{itemdecl}
istreambuf_iterator(const @\placeholder{proxy}@& p) noexcept;
-@@ -7153,7 +7150,6 @@ is not a null pointer.
+@@ -7151,7 +7148,6 @@ is not a null pointer.
Initializes \tcode{sbuf_} with \tcode{s.rdbuf()}.
\end{itemdescr}
@@ -2482,7 +2482,7 @@ index e0116c79..7acd9d21 100644
\begin{itemdecl}
ostreambuf_iterator(streambuf_type* s) noexcept;
diff --git a/source/lex.tex b/source/lex.tex
-index 7c818101..372fc8c2 100644
+index 414f0b0d..c14e162a 100644
--- a/source/lex.tex
+++ b/source/lex.tex
@@ -29,8 +29,8 @@
@@ -2496,7 +2496,7 @@ index 7c818101..372fc8c2 100644
directive \tcode{\#include}, less any source lines skipped by any of the
conditional inclusion\iref{cpp.cond} preprocessing directives,
as modified by the implementation-defined behavior of any
-@@ -2294,7 +2294,7 @@ operator ""@\placeholder{X}@(@\placeholder{str}{}@, @\placeholder{len}{}@)
+@@ -2298,7 +2298,7 @@ operator ""@\placeholder{X}@(@\placeholder{str}{}@, @\placeholder{len}{}@)
\pnum
If \placeholder{L} is a \grammarterm{user-defined-character-literal}, let \placeholder{ch} be the
literal without its \grammarterm{ud-suffix}.
@@ -2506,7 +2506,7 @@ index 7c818101..372fc8c2 100644
literal \placeholder{L} is treated as a call
of the form
diff --git a/source/lib-intro.tex b/source/lib-intro.tex
-index c6339101..c3fcf8d5 100644
+index 4444d26a..4bd46d8f 100644
--- a/source/lib-intro.tex
+++ b/source/lib-intro.tex
@@ -101,7 +101,7 @@ including formatting, internationalization support and
@@ -2769,7 +2769,7 @@ index bdc1f3de..efd4eb00 100644
Number of hazard-protectable possibly-reclaimable objects\iref{saferecl.hp.general} [256].
diff --git a/source/numerics.tex b/source/numerics.tex
-index 7b1f65de..4457140a 100644
+index 24d01efc..e7613b33 100644
--- a/source/numerics.tex
+++ b/source/numerics.tex
@@ -157,8 +157,8 @@ floating-point evaluation in constant expressions.
@@ -3424,7 +3424,7 @@ index 34018bd6..785798f7 100644
\grammarterm{declarator} starts with a \tcode{(}. In those cases the
\grammarterm{statement} is considered a \grammarterm{declaration},
diff --git a/source/strings.tex b/source/strings.tex
-index cc13d13f..e943eef1 100644
+index 5a93b51d..e0a6f1ca 100644
--- a/source/strings.tex
+++ b/source/strings.tex
@@ -5528,13 +5528,13 @@ The contents and meaning of the header \libheaderdef{cstring}
@@ -3454,7 +3454,7 @@ index cc13d13f..e943eef1 100644
\xrefc{7.26}
diff --git a/source/support.tex b/source/support.tex
-index 19e19d6f..cee9e901 100644
+index ad8cbc54..f3691cd9 100644
--- a/source/support.tex
+++ b/source/support.tex
@@ -45,22 +45,15 @@ as summarized in \tref{support.summary}.
@@ -3727,7 +3727,7 @@ index 19e19d6f..cee9e901 100644
calls to the \tcode{setlocale} function or with calls to functions that are
affected by the current C locale. The implementation shall behave as if no
diff --git a/source/templates.tex b/source/templates.tex
-index 9ef3133a..3894c832 100644
+index 2a020516..2133a25e 100644
--- a/source/templates.tex
+++ b/source/templates.tex
@@ -687,7 +687,7 @@ struct A {};
@@ -3899,7 +3899,7 @@ index 9ef3133a..3894c832 100644
apply to member template names.
A destructor shall not be a member
template.
-@@ -3219,7 +3219,7 @@ the \grammarterm{alignment-specifier} without the ellipsis.
+@@ -3221,7 +3221,7 @@ the \grammarterm{alignment-specifier} without the ellipsis.
\item In a \grammarterm{capture-list}\iref{expr.prim.lambda.capture}; the pattern is
the \grammarterm{capture} without the ellipsis.
@@ -3908,7 +3908,7 @@ index 9ef3133a..3894c832 100644
\grammarterm{identifier}.
\item In a \grammarterm{pack-index-expression};
-@@ -3842,9 +3842,9 @@ primary template.
+@@ -3844,9 +3844,9 @@ primary template.
\pnum
A partial specialization matches a given actual template argument
list if the template arguments of the partial specialization can be
@@ -3921,7 +3921,7 @@ index 9ef3133a..3894c832 100644
\begin{example}
\begin{codeblock}
template class A { }; // \#1
-@@ -3906,14 +3906,14 @@ of the primary template.
+@@ -3908,14 +3908,14 @@ of the primary template.
For two partial specializations,
the first is \defn{more specialized} than the second if, given the following
rewrite to two function templates, the first function template is more
@@ -3939,7 +3939,7 @@ index 9ef3133a..3894c832 100644
as the corresponding partial specialization.
\item
Each function template
-@@ -4119,8 +4119,8 @@ void h(int* p) {
+@@ -4121,8 +4121,8 @@ void h(int* p) {
\end{example}
\pnum
@@ -3950,7 +3950,7 @@ index 9ef3133a..3894c832 100644
\pnum
The signature of a function template
-@@ -4171,7 +4171,7 @@ For example, a template type parameter can be used in the
+@@ -4173,7 +4173,7 @@ For example, a template type parameter can be used in the
Two expressions involving template parameters are considered
\defnx{equivalent}{equivalent!expressions}
if two function definitions containing the expressions would satisfy
@@ -3959,7 +3959,7 @@ index 9ef3133a..3894c832 100644
to name the template parameters may differ as long as a token used to
name a template parameter in one expression is replaced by another token
that names the same template parameter in the other expression.
-@@ -4341,8 +4341,8 @@ function template
+@@ -4343,8 +4343,8 @@ function template
specialization
is selected to match a placement operator new\iref{basic.stc.dynamic.deallocation,expr.new};
\item
@@ -3970,7 +3970,7 @@ index 9ef3133a..3894c832 100644
a function template specialization.
\end{itemize}
-@@ -4735,7 +4735,7 @@ A \grammarterm{concept-definition}
+@@ -4737,7 +4737,7 @@ A \grammarterm{concept-definition}
shall inhabit a namespace scope\iref{basic.scope.namespace}.
\pnum
@@ -3979,7 +3979,7 @@ index 9ef3133a..3894c832 100644
\pnum
A concept is not instantiated\iref{temp.spec}.
-@@ -5062,7 +5062,7 @@ was a pack expansion and the corresponding pack is empty, or
+@@ -5064,7 +5064,7 @@ was a pack expansion and the corresponding pack is empty, or
\item an instantiation uses a default argument or default template argument
that had not been defined at the point at which the template was defined, or
@@ -3988,7 +3988,7 @@ index 9ef3133a..3894c832 100644
instantiation uses
\begin{itemize}
\item the value of a const object of integral or unscoped enumeration type or
-@@ -5315,7 +5315,7 @@ any of the expressions
+@@ -5317,7 +5317,7 @@ any of the expressions
or \grammarterm{braced-init-list}{s}
in the
\grammarterm{expression-list}
@@ -3997,7 +3997,7 @@ index 9ef3133a..3894c832 100644
\item
the \grammarterm{unqualified-id}
is a \grammarterm{template-id} in which any of the template arguments depends
-@@ -5375,7 +5375,7 @@ if it is
+@@ -5377,7 +5377,7 @@ if it is
\item
in the definition of a class template, a nested class of a class template,
a member of a class template, or a member of a nested class of a class template,
@@ -4006,7 +4006,7 @@ index 9ef3133a..3894c832 100644
\item
in the definition of a primary class template
or a member of a primary class template, the name of the
-@@ -5654,7 +5654,7 @@ used without a \grammarterm{template-argument-list}.
+@@ -5656,7 +5656,7 @@ used without a \grammarterm{template-argument-list}.
\end{footnote}
\item a \grammarterm{pack-index-specifier},
\item denoted by \tcode{decltype(}\grammarterm{expression}{}\tcode{)},
@@ -4015,7 +4015,7 @@ index 9ef3133a..3894c832 100644
\item denoted by a \grammarterm{splice-type-specifier} in which either
the \grammarterm{splice-specifier} or
\grammarterm{splice-specialization-specifier}
-@@ -5806,7 +5806,7 @@ see~\ref{support.types}.
+@@ -5808,7 +5808,7 @@ see~\ref{support.types}.
\end{note}
\pnum
@@ -4024,7 +4024,7 @@ index 9ef3133a..3894c832 100644
type-dependent if
the terminal name of its \grammarterm{id-expression}, if any, is dependent or
the expression refers to a member of the current instantiation and
-@@ -5950,7 +5950,7 @@ An expression of the form \tcode{\&}\grammarterm{qualified-id} where the
+@@ -5952,7 +5952,7 @@ An expression of the form \tcode{\&}\grammarterm{qualified-id} where the
instantiation is value-dependent.
An expression of the form \tcode{\&}\grammarterm{cast-expression}
is also value-dependent if evaluating \grammarterm{cast-expression}
@@ -4033,7 +4033,7 @@ index 9ef3133a..3894c832 100644
the result of the evaluation refers to a templated entity
that is an object with static or thread storage duration or a member function.
-@@ -6173,7 +6173,7 @@ within a translation unit.
+@@ -6175,7 +6175,7 @@ within a translation unit.
A specialization for any template may have points of instantiation in multiple
translation units.
If two different points of instantiation give a template specialization
@@ -4042,7 +4042,7 @@ index 9ef3133a..3894c832 100644
the program is ill-formed, no diagnostic required.
\pnum
-@@ -6486,7 +6486,7 @@ of type
+@@ -6488,7 +6488,7 @@ of type
\pnum
If a function declaration acquired its function type through
@@ -4051,7 +4051,7 @@ index 9ef3133a..3894c832 100644
a function declarator, the program is ill-formed.
\begin{example}
\begin{codeblock}
-@@ -6567,7 +6567,7 @@ X ch; // error: incomplete type \tcode{X}
+@@ -6569,7 +6569,7 @@ X ch; // error: incomplete type \tcode{X}
\end{example}
\begin{note}
Within a template declaration,
@@ -4060,7 +4060,7 @@ index 9ef3133a..3894c832 100644
a local class are never considered to be entities that can be separately
instantiated (this includes their default arguments,
\grammarterm{noexcept-specifier}{s}, and non-static data member
-@@ -6745,7 +6745,7 @@ void x() {
+@@ -6747,7 +6747,7 @@ void x() {
\end{example}
\pnum
@@ -4069,7 +4069,7 @@ index 9ef3133a..3894c832 100644
can be determined without instantiating a class template definition,
it is unspecified whether that instantiation actually takes place.
\begin{example}
-@@ -7082,7 +7082,7 @@ If an entity is the subject of both an explicit instantiation declaration
+@@ -7084,7 +7084,7 @@ If an entity is the subject of both an explicit instantiation declaration
and an explicit instantiation definition in the same translation unit, the
definition shall follow the declaration. An entity that is the subject of an
explicit instantiation declaration and that is also used
@@ -4078,7 +4078,7 @@ index 9ef3133a..3894c832 100644
in the translation unit
shall be the subject of an explicit instantiation definition somewhere in the
program; otherwise the program is ill-formed, no diagnostic required.
-@@ -8147,7 +8147,7 @@ a type not permitted for such\iref{expr.prim.lambda.closure}.
+@@ -8149,7 +8149,7 @@ a type not permitted for such\iref{expr.prim.lambda.closure}.
In the following example,
assuming a \tcode{signed char}
cannot represent the value 1000,
@@ -4087,7 +4087,7 @@ index 9ef3133a..3894c832 100644
would be required
to convert the \grammarterm{template-argument}
of type \tcode{int} to \tcode{signed char},
-@@ -8256,8 +8256,8 @@ is not a reference type:
+@@ -8258,8 +8258,8 @@ is not a reference type:
\item
If
\tcode{A}
@@ -4098,7 +4098,7 @@ index 9ef3133a..3894c832 100644
\tcode{A}
for type deduction;
otherwise,
-@@ -8265,7 +8265,7 @@ otherwise,
+@@ -8267,7 +8267,7 @@ otherwise,
If
\tcode{A}
is a function type, the pointer type produced by the
@@ -4107,7 +4107,7 @@ index 9ef3133a..3894c832 100644
of
\tcode{A}
for type
-@@ -8361,8 +8361,8 @@ The transformed \tcode{A}
+@@ -8363,8 +8363,8 @@ The transformed \tcode{A}
can be another pointer or pointer-to-member type that can be converted
to the deduced
\tcode{A}
@@ -4118,7 +4118,7 @@ index 9ef3133a..3894c832 100644
\item
If
-@@ -8495,7 +8495,7 @@ void test() {
+@@ -8497,7 +8497,7 @@ void test() {
\pnum
Template arguments can be deduced from the type specified when taking
@@ -4127,7 +4127,7 @@ index 9ef3133a..3894c832 100644
If there is a target,
the function template's function type and the target type
are used as the types of
-@@ -8542,7 +8542,7 @@ is not a reference type:
+@@ -8544,7 +8544,7 @@ is not a reference type:
If
\tcode{P}
is an array type, the pointer type produced by the
@@ -4136,7 +4136,7 @@ index 9ef3133a..3894c832 100644
\tcode{P}
for type
deduction; otherwise,
-@@ -8550,7 +8550,7 @@ deduction; otherwise,
+@@ -8552,7 +8552,7 @@ deduction; otherwise,
If
\tcode{P}
is a function type, the pointer type produced by the
@@ -4145,7 +4145,7 @@ index 9ef3133a..3894c832 100644
\tcode{P}
for
type deduction; otherwise,
-@@ -8641,7 +8641,7 @@ after a function has been selected.
+@@ -8643,7 +8643,7 @@ after a function has been selected.
In the context of a call to a conversion function, the return types of
the conversion function templates are used.
\item
@@ -4154,7 +4154,7 @@ index 9ef3133a..3894c832 100644
type is used.
\end{itemize}
-@@ -9157,7 +9157,7 @@ of $\texttt{P}_i$ is compared with each remaining argument in the
+@@ -9159,7 +9159,7 @@ of $\texttt{P}_i$ is compared with each remaining argument in the
template argument list of \tcode{A}. Each comparison deduces
template arguments for subsequent positions in the template parameter
packs expanded by $\texttt{P}_i$.
@@ -4163,7 +4163,7 @@ index 9ef3133a..3894c832 100644
originally a pack expansion:
\begin{itemize}
\item if \tcode{P} does not contain a template argument corresponding to
-@@ -9220,7 +9220,7 @@ each remaining parameter type in the parameter-type-list
+@@ -9222,7 +9222,7 @@ each remaining parameter type in the parameter-type-list
of \tcode{A}. Each comparison deduces template arguments for
subsequent positions in the template parameter packs expanded by the
function parameter pack.
@@ -4172,7 +4172,7 @@ index 9ef3133a..3894c832 100644
originally a function parameter pack:
\begin{itemize}
\item if \tcode{P} does not contain a function parameter type corresponding to
-@@ -9514,8 +9514,8 @@ int fv = f(g); // OK; \tcode{Types} contains \tcode{int}, \tcod
+@@ -9516,8 +9516,8 @@ int fv = f(g); // OK; \tcode{Types} contains \tcode{int}, \tcod
In a declaration whose \grammarterm{declarator-id} refers to a specialization
of a function template, template argument deduction is performed to identify
the specialization to which the declaration refers. Specifically, this is done
@@ -4184,7 +4184,7 @@ index 9ef3133a..3894c832 100644
\tcode{operator new}\iref{basic.stc.dynamic.deallocation,expr.new}.
In all these cases, \tcode{P} is the type of the function template being considered
diff --git a/source/threads.tex b/source/threads.tex
-index 6202596d..b2e9462e 100644
+index 68206c12..1b18d89d 100644
--- a/source/threads.tex
+++ b/source/threads.tex
@@ -5,7 +5,7 @@
@@ -4207,7 +4207,7 @@ index 6202596d..b2e9462e 100644
\begin{itemdecl}
m.try_lock_for(rel_time)
-@@ -7316,7 +7316,7 @@ namespace std {
+@@ -7330,7 +7330,7 @@ namespace std {
\pnum
A mutex object facilitates protection against data races and allows safe synchronization of
@@ -4216,7 +4216,7 @@ index 6202596d..b2e9462e 100644
An execution agent \term{owns} a mutex from the time it successfully calls one of the
lock functions until it calls unlock. Mutexes can be either recursive or non-recursive, and can
grant simultaneous ownership to one or many execution agents. Both
-@@ -7360,7 +7360,7 @@ atomic operations\iref{intro.multithread}. The lock and unlock operations on
+@@ -7374,7 +7374,7 @@ atomic operations\iref{intro.multithread}. The lock and unlock operations on
a single mutex appears to occur in a single total order.
\begin{note}
This
@@ -4225,7 +4225,7 @@ index 6202596d..b2e9462e 100644
mutex.
\end{note}
\begin{note}
-@@ -7440,7 +7440,7 @@ in the absence of contending mutex acquisitions.
+@@ -7454,7 +7454,7 @@ in the absence of contending mutex acquisitions.
\pnum
\sync
If \tcode{try_lock()} returns \tcode{true}, prior \tcode{unlock()} operations
@@ -4234,7 +4234,7 @@ index 6202596d..b2e9462e 100644
\begin{note}
Since \tcode{lock()} does not synchronize with a failed subsequent
\tcode{try_lock()}, the visibility rules are weak enough that little would be
-@@ -7476,7 +7476,7 @@ Releases the calling thread's ownership of the mutex.
+@@ -7490,7 +7490,7 @@ Releases the calling thread's ownership of the mutex.
\pnum
\sync
@@ -4243,7 +4243,7 @@ index 6202596d..b2e9462e 100644
lock operations that obtain ownership on the same object.
\pnum
-@@ -7605,9 +7605,9 @@ The \defn{timed mutex types} are the standard library types \tcode{timed_mutex},
+@@ -7619,9 +7619,9 @@ The \defn{timed mutex types} are the standard library types \tcode{timed_mutex},
meet the requirements set out below.
In this description, \tcode{m} denotes an object of a mutex type,
\tcode{rel_time} denotes an object of an
@@ -4255,7 +4255,7 @@ index 6202596d..b2e9462e 100644
\begin{note}
The timed mutex types meet the \oldconcept{TimedLockable}
requirements\iref{thread.req.lockable.timed}.
-@@ -7897,7 +7897,7 @@ Releases a shared lock on the mutex held by the calling thread.
+@@ -7911,7 +7911,7 @@ Releases a shared lock on the mutex held by the calling thread.
\pnum
\sync
@@ -4264,7 +4264,7 @@ index 6202596d..b2e9462e 100644
\tcode{lock()} operations that obtain ownership on the same object.
\pnum
-@@ -8001,7 +8001,7 @@ meet the requirements set out below. In this description,
+@@ -8015,7 +8015,7 @@ meet the requirements set out below. In this description,
\tcode{rel_time} denotes an object of an instantiation of
\tcode{duration}\iref{time.duration}, and
\tcode{abs_time} denotes an object of an instantiation of
@@ -4273,7 +4273,7 @@ index 6202596d..b2e9462e 100644
\begin{note}
The shared timed mutex types meet the \oldconcept{SharedTimedLockable}
requirements\iref{thread.req.lockable.shared.timed}.
-@@ -8212,7 +8212,7 @@ namespace std {
+@@ -8226,7 +8226,7 @@ namespace std {
\pnum
An object of type \tcode{lock_guard} controls the ownership of a lockable object
within a scope. A \tcode{lock_guard} object maintains ownership of a lockable
@@ -4282,7 +4282,7 @@ index 6202596d..b2e9462e 100644
The behavior of a program is undefined if the lockable object referenced by
\tcode{pm} does not exist for the entire lifetime of the \tcode{lock_guard}
object. The supplied \tcode{Mutex} type shall meet the \oldconcept{BasicLockable}
-@@ -8285,7 +8285,7 @@ namespace std {
+@@ -8299,7 +8299,7 @@ namespace std {
\pnum
An object of type \tcode{scoped_lock} controls the ownership of lockable objects
within a scope. A \tcode{scoped_lock} object maintains ownership of lockable
@@ -4291,7 +4291,7 @@ index 6202596d..b2e9462e 100644
The behavior of a program is undefined if the lockable objects referenced by
\tcode{pm} do not exist for the entire lifetime of the \tcode{scoped_lock}
object.
-@@ -9442,7 +9442,7 @@ earlier returning execution.
+@@ -9456,7 +9456,7 @@ earlier returning execution.
\pnum
\sync
For any given \tcode{once_flag}: all active executions occur in a total
@@ -4300,7 +4300,7 @@ index 6202596d..b2e9462e 100644
the start of the next one in this total order; and the returning execution
synchronizes with the return from all passive executions.
-@@ -11405,22 +11405,21 @@ the state object.
+@@ -11419,22 +11419,21 @@ the state object.
\pnum
Calls to functions that successfully set the stored result of a shared
@@ -4327,7 +4327,7 @@ index 6202596d..b2e9462e 100644
\begin{note}
This explicitly specifies that the result of the shared state is
visible in the objects that reference this state in the sense of data race
-@@ -11739,8 +11738,8 @@ The class template \tcode{future} defines a type for asynchronous return objects
+@@ -11753,8 +11752,8 @@ The class template \tcode{future} defines a type for asynchronous return objects
do not share their shared state with other asynchronous return objects.
A default-constructed \tcode{future} object has no
shared state. A \tcode{future} object with shared state can be created by
@@ -4338,7 +4338,7 @@ index 6202596d..b2e9462e 100644
the original asynchronous provider. The result (value or exception) of
a \tcode{future} object
can be
-@@ -12050,7 +12049,7 @@ object has no shared state. A \tcode{shared_future} object with
+@@ -12064,7 +12063,7 @@ object has no shared state. A \tcode{shared_future} object with
shared state can
be created
by conversion from a \tcode{future} object and shares its shared state with the
@@ -4347,7 +4347,7 @@ index 6202596d..b2e9462e 100644
The result (value or exception) of a \tcode{shared_future} object
can be set by
calling a respective function on an
-@@ -12499,7 +12498,7 @@ block until the associated thread has completed, as if joined, or else time
+@@ -12513,7 +12512,7 @@ block until the associated thread has completed, as if joined, or else time
out\iref{thread.thread.member};
\item
the associated thread completion
@@ -4406,7 +4406,7 @@ index 2e3e9b55..2939c865 100644
\pnum
\returns
diff --git a/source/utilities.tex b/source/utilities.tex
-index 0a26e026..faf5d946 100644
+index db10d7c9..6febc3c3 100644
--- a/source/utilities.tex
+++ b/source/utilities.tex
@@ -104,15 +104,15 @@ namespace std {
@@ -4495,11 +4495,11 @@ index 0a26e026..faf5d946 100644
2.43.0
-From b35c2a39f115c496d62b54a79e8377f38162bd87 Mon Sep 17 00:00:00 2001
+From 857f2971669f68909d9b271c9e98ce2cea8c1537 Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Tue, 1 Aug 2017 14:38:23 +0200
-Subject: [PATCH 03/10] Fix dubious \defnx that has see{} in it, and remove
- range index entry with the same key.
+Subject: [PATCH 3/9] Fix dubious \defnx that has see{} in it, and remove range
+ index entry with the same key.
---
source/iostreams.tex | 2 +-
@@ -4507,7 +4507,7 @@ Subject: [PATCH 03/10] Fix dubious \defnx that has see{} in it, and remove
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/source/iostreams.tex b/source/iostreams.tex
-index 987b4d2d..8a5caca8 100644
+index af9dce40..0f649a76 100644
--- a/source/iostreams.tex
+++ b/source/iostreams.tex
@@ -13919,7 +13919,7 @@ without an intervening \grammarterm{root-directory} element.
@@ -4520,7 +4520,7 @@ index 987b4d2d..8a5caca8 100644
\begin{enumerate}
\item If the path is empty, stop.
diff --git a/source/templates.tex b/source/templates.tex
-index 3894c832..c17177bc 100644
+index 2133a25e..63baaaf8 100644
--- a/source/templates.tex
+++ b/source/templates.tex
@@ -2085,7 +2085,6 @@ so it does match \#2.
@@ -4548,11 +4548,11 @@ index 3894c832..c17177bc 100644
2.43.0
-From f0016951bd4aa94a2fe8f54e7c2b726cad6a0623 Mon Sep 17 00:00:00 2001
+From 2384aaae34a7f18462dee0e59147228df6781c36 Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Sun, 11 Nov 2018 02:48:33 +0100
-Subject: [PATCH 04/10] Use cxxdraft-htmlgen macros to annotate non-C++ code
- and literal fragments.
+Subject: [PATCH 4/9] Use cxxdraft-htmlgen macros to annotate non-C++ code and
+ literal fragments.
---
source/exceptions.tex | 4 +-
@@ -4579,7 +4579,7 @@ index cd476d28..df489ab5 100644
\pnum
diff --git a/source/lex.tex b/source/lex.tex
-index 372fc8c2..67fc8aaf 100644
+index c14e162a..5e38b875 100644
--- a/source/lex.tex
+++ b/source/lex.tex
@@ -330,43 +330,43 @@ the numerical value has no other meaning in this context.
@@ -4663,7 +4663,7 @@ index 372fc8c2..67fc8aaf 100644
\end{floattable}
\pnum
-@@ -603,7 +603,7 @@ given character:
+@@ -606,7 +606,7 @@ given character:
\item
\indextext{literal!string!raw}%
If the next character begins a sequence of characters that could be the prefix
@@ -4672,7 +4672,7 @@ index 372fc8c2..67fc8aaf 100644
token shall be a raw string literal. Between the initial and final
double quote characters of the raw string, any transformations performed in phase
2 (line splicing) are reverted; this reversion
-@@ -611,7 +611,7 @@ shall apply before any \grammarterm{d-char}, \grammarterm{r-char}, or delimiting
+@@ -614,7 +614,7 @@ shall apply before any \grammarterm{d-char}, \grammarterm{r-char}, or delimiting
parenthesis is identified. The raw string literal is defined as the shortest sequence
of characters that matches the raw-string pattern
\begin{ncbnf}
@@ -4681,7 +4681,7 @@ index 372fc8c2..67fc8aaf 100644
\end{ncbnf}
\item Otherwise, if the next three characters are \tcode{<::} and the subsequent character
-@@ -746,15 +746,15 @@ depending on the implementation.
+@@ -749,15 +749,15 @@ depending on the implementation.
\begin{bnf}
\nontermdef{pp-number}\br
digit\br
@@ -4705,7 +4705,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\pnum
-@@ -1181,19 +1181,19 @@ a literal has a type and a value category\iref{expr.prim.literal}.
+@@ -1185,19 +1185,19 @@ a literal has a type and a value category\iref{expr.prim.literal}.
\nontermdef{binary-literal}\br
\terminal{0b} binary-digit\br
\terminal{0B} binary-digit\br
@@ -4728,7 +4728,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\begin{bnf}
-@@ -1224,14 +1224,14 @@ a literal has a type and a value category\iref{expr.prim.literal}.
+@@ -1228,14 +1228,14 @@ a literal has a type and a value category\iref{expr.prim.literal}.
\begin{bnf}
\nontermdef{hexadecimal-digit-sequence}\br
hexadecimal-digit\br
@@ -4747,7 +4747,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\begin{bnf}
-@@ -1246,17 +1246,17 @@ a literal has a type and a value category\iref{expr.prim.literal}.
+@@ -1250,17 +1250,17 @@ a literal has a type and a value category\iref{expr.prim.literal}.
\begin{bnf}
\nontermdef{unsigned-suffix} \textnormal{one of}\br
@@ -4768,7 +4768,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\begin{bnf}
-@@ -1295,7 +1295,7 @@ when determining the value.
+@@ -1299,7 +1299,7 @@ when determining the value.
\pnum
The \grammarterm{hexadecimal-digit}s
@@ -4777,7 +4777,7 @@ index 372fc8c2..67fc8aaf 100644
have decimal values ten through fifteen.
\begin{example}
The number twelve can be written \tcode{12}, \tcode{014},
-@@ -1339,7 +1339,7 @@ none &
+@@ -1343,7 +1343,7 @@ none &
&
&
\tcode{unsigned long long int}\\\hline
@@ -4786,7 +4786,7 @@ index 372fc8c2..67fc8aaf 100644
\tcode{unsigned int} &
\tcode{unsigned int}\\
&
-@@ -1348,7 +1348,7 @@ none &
+@@ -1352,7 +1352,7 @@ none &
&
\tcode{unsigned long long int} &
\tcode{unsigned long long int}\\\hline
@@ -4795,7 +4795,7 @@ index 372fc8c2..67fc8aaf 100644
\tcode{long int} &
\tcode{long int}\\
&
-@@ -1360,22 +1360,22 @@ none &
+@@ -1364,22 +1364,22 @@ none &
&
&
\tcode{unsigned long long int}\\\hline
@@ -4823,7 +4823,7 @@ index 372fc8c2..67fc8aaf 100644
&
\\\hline
\tcode{z} or \tcode{Z} &
-@@ -1423,12 +1423,12 @@ is ill-formed if it cannot be represented by \tcode{std::size_t}.
+@@ -1427,12 +1427,12 @@ is ill-formed if it cannot be represented by \tcode{std::size_t}.
\indextext{literal!character}%
\begin{bnf}
\nontermdef{character-literal}\br
@@ -4838,7 +4838,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\begin{bnf}
-@@ -1479,16 +1479,16 @@ is ill-formed if it cannot be represented by \tcode{std::size_t}.
+@@ -1483,16 +1483,16 @@ is ill-formed if it cannot be represented by \tcode{std::size_t}.
\begin{bnf}
\nontermdef{octal-escape-sequence}\br
@@ -4861,7 +4861,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\begin{bnf}
-@@ -1676,42 +1676,42 @@ is supported for compatibility with \CppXIV{} and C.
+@@ -1680,42 +1680,42 @@ is supported for compatibility with \CppXIV{} and C.
\begin{bnf}
\nontermdef{fractional-constant}\br
@@ -4915,7 +4915,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\pnum
-@@ -1796,8 +1796,8 @@ chosen in an \impldef{choice of larger or smaller value of
+@@ -1800,8 +1800,8 @@ chosen in an \impldef{choice of larger or smaller value of
\indextext{literal!string}%
\begin{bnf}
\nontermdef{string-literal}\br
@@ -4926,7 +4926,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\begin{bnf}
-@@ -1820,7 +1820,7 @@ chosen in an \impldef{choice of larger or smaller value of
+@@ -1824,7 +1824,7 @@ chosen in an \impldef{choice of larger or smaller value of
\begin{bnf}
\nontermdef{raw-string}\br
@@ -4935,7 +4935,7 @@ index 372fc8c2..67fc8aaf 100644
\end{bnf}
\begin{bnf}
-@@ -1907,7 +1907,7 @@ UTF-32 &
+@@ -1911,7 +1911,7 @@ UTF-32 &
\pnum
\indextext{literal!string!raw}%
@@ -5965,10 +5965,10 @@ index 2939c865..c37f5bba 100644
2.43.0
-From 6b869084fe0b2cec85d080f2babb0c92c9b9adcc Mon Sep 17 00:00:00 2001
+From c789975472923e49702e7ae17f082e17e2da368b Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Sun, 31 May 2020 23:23:45 +0200
-Subject: [PATCH 05/10] Remove more inappropriate paragraph breaks.
+Subject: [PATCH 5/9] Remove more inappropriate paragraph breaks.
---
source/algorithms.tex | 4 ----
@@ -6000,7 +6000,7 @@ Subject: [PATCH 05/10] Remove more inappropriate paragraph breaks.
26 files changed, 272 deletions(-)
diff --git a/source/algorithms.tex b/source/algorithms.tex
-index afec9113..011292f7 100644
+index 09938442..3af19872 100644
--- a/source/algorithms.tex
+++ b/source/algorithms.tex
@@ -8698,7 +8698,6 @@ but stronger than those for a partial ordering.
@@ -6036,10 +6036,10 @@ index afec9113..011292f7 100644
template
concept @\defexposconcept{nothrow-input-iterator}@ = // \expos
diff --git a/source/basic.tex b/source/basic.tex
-index c83a9d0b..e84497ce 100644
+index 8411bcae..0cf54882 100644
--- a/source/basic.tex
+++ b/source/basic.tex
-@@ -284,7 +284,6 @@ int X::y = 1; // defines \tcode{X::y}
+@@ -287,7 +287,6 @@ int X::y = 1; // defines \tcode{X::y}
enum { up, down }; // defines \tcode{up} and \tcode{down}
namespace N { int d; } // defines \tcode{N} and \tcode{N::d}
X anX; // defines \tcode{anX}
@@ -6047,7 +6047,7 @@ index c83a9d0b..e84497ce 100644
\end{codeblock}
whereas these are just declarations:
\begin{codeblock}
-@@ -821,7 +820,6 @@ compute equivalent values\iref{expr.eq}.
+@@ -824,7 +823,6 @@ compute equivalent values\iref{expr.eq}.
\pnum
For the purposes of the preceding requirements:
@@ -6055,7 +6055,7 @@ index c83a9d0b..e84497ce 100644
\begin{itemize}
\item If \tcode{D} is a class with an implicitly-declared
constructor\iref{class.default.ctor,class.copy.ctor},
-@@ -6105,7 +6103,6 @@ has the top-level cv-qualifier \keyword{volatile}.
+@@ -6108,7 +6106,6 @@ has the top-level cv-qualifier \keyword{volatile}.
\pnum
Every integer type has an \term{integer conversion rank} defined as follows:
@@ -6064,10 +6064,10 @@ index c83a9d0b..e84497ce 100644
\item No two signed integer types other than \keyword{char} and \tcode{\keyword{signed}
\keyword{char}} (if \keyword{char} is signed) have the same rank, even if they have
diff --git a/source/classes.tex b/source/classes.tex
-index 5fa5e3b8..0b409248 100644
+index 32338393..fcf3f025 100644
--- a/source/classes.tex
+++ b/source/classes.tex
-@@ -1716,7 +1716,6 @@ for each non-static data member of
+@@ -1717,7 +1717,6 @@ for each non-static data member of
that is of class type (or array thereof),
the constructor selected to copy/move that member is trivial;
\end{itemize}
@@ -6075,7 +6075,7 @@ index 5fa5e3b8..0b409248 100644
\indextext{constructor!move!non-trivial}%
otherwise the copy/move constructor is
\defnx{non-trivial}{constructor!copy!nontrivial}.
-@@ -3337,7 +3336,6 @@ Consider an object \tcode{u} of a \keyword{union} type \tcode{U} having non-stat
+@@ -3338,7 +3337,6 @@ Consider an object \tcode{u} of a \keyword{union} type \tcode{U} having non-stat
destructor and \tcode{N} has a non-trivial constructor (for instance, if they declare or inherit
virtual functions), the active member of \tcode{u} can be safely switched from \tcode{m} to
\tcode{n} using the destructor and placement \grammarterm{new-expression} as follows:
@@ -6083,7 +6083,7 @@ index 5fa5e3b8..0b409248 100644
\begin{codeblock}
u.m.~M();
new (&u.n) N;
-@@ -3515,7 +3513,6 @@ A local class cannot have static data members\iref{class.static.data}.
+@@ -3516,7 +3514,6 @@ A local class cannot have static data members\iref{class.static.data}.
\indextext{multiple inheritance}%
A list of base classes can be specified in a class definition using
the notation:
@@ -6091,7 +6091,7 @@ index 5fa5e3b8..0b409248 100644
\begin{bnf}
\nontermdef{base-clause}\br
\terminal{:} base-specifier-list
-@@ -5490,7 +5487,6 @@ initializers for direct and virtual base class subobjects and
+@@ -5491,7 +5488,6 @@ initializers for direct and virtual base class subobjects and
non-static data members can be specified by a
\grammarterm{ctor-initializer},
which has the form
@@ -6099,7 +6099,7 @@ index 5fa5e3b8..0b409248 100644
\begin{bnf}
\nontermdef{ctor-initializer}\br
\terminal{:} mem-initializer-list
-@@ -5961,7 +5957,6 @@ public:
+@@ -5962,7 +5958,6 @@ public:
X(const Mixins&... mixins) : Mixins(mixins)... { }
};
\end{codeblock}
@@ -6107,7 +6107,7 @@ index 5fa5e3b8..0b409248 100644
\end{example}
\rSec2[class.inhctor.init]{Initialization by inherited constructor}%
-@@ -6617,7 +6612,6 @@ any non-static data member of \tcode{C} is of reference type or
+@@ -6618,7 +6613,6 @@ any non-static data member of \tcode{C} is of reference type or
A binary operator expression \tcode{a @ b} is
\defnx{usable}{usable!binary operator expression}
if either
@@ -6115,7 +6115,7 @@ index 5fa5e3b8..0b409248 100644
\begin{itemize}
\item
\tcode{a} or \tcode{b} is of class or enumeration type and
-@@ -6738,7 +6732,6 @@ The \defnadj{synthesized}{three-way comparison}
+@@ -6739,7 +6733,6 @@ The \defnadj{synthesized}{three-way comparison}
of type \tcode{R}\iref{cmp.categories}
of glvalues \tcode{a} and \tcode{b} of the same type
is defined as follows:
@@ -6123,7 +6123,7 @@ index 5fa5e3b8..0b409248 100644
\begin{itemize}
\item
If \tcode{a <=> b} is usable\iref{class.compare.default} and
-@@ -6838,7 +6831,6 @@ The \defn{common comparison type} \tcode{U}
+@@ -6839,7 +6832,6 @@ The \defn{common comparison type} \tcode{U}
of a possibly-empty list of $n$ comparison category types
$\tcode{T}_0$, $\tcode{T}_1$, $\dotsc$, $\tcode{T}_{n-1}$
is defined as follows:
@@ -6132,7 +6132,7 @@ index 5fa5e3b8..0b409248 100644
\item
If at least one $\tcode{T}_i$ is \tcode{std::partial_ordering},
diff --git a/source/compatibility.tex b/source/compatibility.tex
-index 8c70dc05..b258ea47 100644
+index 41471921..f67b16a1 100644
--- a/source/compatibility.tex
+++ b/source/compatibility.tex
@@ -2619,7 +2619,6 @@ Overspecification.
@@ -6151,7 +6151,7 @@ index 8c70dc05..b258ea47 100644
\begin{itemize}
\item passing a value to a function that takes an argument of type \tcode{bool};
\item using \tcode{operator==} to compare to \tcode{false} or \tcode{true};
-@@ -3771,7 +3769,6 @@ is an \impldef{definition of \tcode{NULL}} null pointer constant in
+@@ -3768,7 +3766,6 @@ is an \impldef{definition of \tcode{NULL}} null pointer constant in
\pnum
Header \libheaderref{cstring}:
The following functions have different declarations:
@@ -6159,7 +6159,7 @@ index 8c70dc05..b258ea47 100644
\begin{itemize}
\item \tcode{strchr}
\item \tcode{strpbrk}
-@@ -3785,7 +3782,6 @@ Subclause \ref{cstring.syn} describes the changes.
+@@ -3782,7 +3779,6 @@ Subclause \ref{cstring.syn} describes the changes.
\pnum
Header \libheaderref{cwchar}:
The following functions have different declarations:
@@ -6167,7 +6167,7 @@ index 8c70dc05..b258ea47 100644
\begin{itemize}
\item \tcode{wcschr}
\item \tcode{wcspbrk}
-@@ -3810,7 +3806,6 @@ in addition to the names declared in
+@@ -3807,7 +3803,6 @@ in addition to the names declared in
\pnum
Header \libheaderref{cstdlib}:
The following functions have different behavior:
@@ -6305,7 +6305,7 @@ index 6bd0435e..0bfd8612 100644
\item
\tcode{comp(a, b) \&\& comp(b, c)}
diff --git a/source/containers.tex b/source/containers.tex
-index 77036c1f..e49a887b 100644
+index 321f6146..1e5a9871 100644
--- a/source/containers.tex
+++ b/source/containers.tex
@@ -685,7 +685,6 @@ Unless otherwise specified (see~\ref{associative.reqmts.except}, \ref{unord.req.
@@ -6355,7 +6355,7 @@ index 77036c1f..e49a887b 100644
\begin{codeblock}
template
using @\placeholdernc{iter-value-type}@ = typename iterator_traits::value_type; // \expos
-@@ -9325,7 +9319,6 @@ If \tcode{size() < sz},
+@@ -9326,7 +9320,6 @@ If \tcode{size() < sz},
appends \tcode{sz - size()} default-inserted elements to the
sequence.
If \tcode{sz <= size()}, equivalent to:
@@ -6363,7 +6363,7 @@ index 77036c1f..e49a887b 100644
\begin{codeblock}
list::iterator it = begin();
advance(it, sz);
-@@ -10614,13 +10607,11 @@ static constexpr void swap(reference x, reference y) noexcept;
+@@ -10615,13 +10608,11 @@ static constexpr void swap(reference x, reference y) noexcept;
\pnum
\effects
Exchanges the contents of \tcode{x} and \tcode{y} as if by:
@@ -6377,7 +6377,7 @@ index 77036c1f..e49a887b 100644
\end{itemdescr}
\begin{itemdecl}
-@@ -20114,7 +20105,6 @@ For each of
+@@ -20116,7 +20107,6 @@ For each of
\tcode{stack},
the library provides the following formatter specialization
where \tcode{\placeholder{adaptor-type}} is the name of the template:
@@ -6385,7 +6385,7 @@ index 77036c1f..e49a887b 100644
\indexlibraryglobal{formatter}%
\begin{codeblock}
namespace std {
-@@ -24306,7 +24296,6 @@ typename A::offset_policy
+@@ -24308,7 +24298,6 @@ typename A::offset_policy
\pnum
\result
A type \tcode{OP} such that:
@@ -6393,7 +6393,7 @@ index 77036c1f..e49a887b 100644
\begin{itemize}
\item
\tcode{OP} meets the accessor policy requirements,
-@@ -25276,7 +25265,6 @@ the \tcode{SliceSpecifier} arguments.
+@@ -25278,7 +25267,6 @@ the \tcode{SliceSpecifier} arguments.
\pnum
For each function defined in \ref{mdspan.sub} that
takes a parameter pack named \tcode{slices} as an argument:
@@ -6401,7 +6401,7 @@ index 77036c1f..e49a887b 100644
\begin{itemize}
\item let \tcode{index_type} be
\begin{itemize}
-@@ -25540,7 +25528,6 @@ $\le \tcode{src.extent($k$)}$
+@@ -25542,7 +25530,6 @@ $\le \tcode{src.extent($k$)}$
\pnum
Let \tcode{SubExtents} be a specialization of \tcode{extents} such that:
@@ -6409,7 +6409,7 @@ index 77036c1f..e49a887b 100644
\begin{itemize}
\item
%FIXME: I think we want the count here, "number" is ambiguous.
-@@ -25551,7 +25538,6 @@ $S_k$ does not model \tcode{\libconcept{convertible_to}}; and
+@@ -25553,7 +25540,6 @@ $S_k$ does not model \tcode{\libconcept{convertible_to}}; and
for each rank index $k$ of \tcode{Extents} such that
\tcode{\placeholder{map-rank}[$k$] != dynamic_extent} is \tcode{true},
\tcode{SubExt\-ents::static_extent(\placeholder{map-rank}[$k$])} equals:
@@ -6417,7 +6417,7 @@ index 77036c1f..e49a887b 100644
\begin{itemize}
\item
\tcode{Extents::static_extent($k$)}
-@@ -25591,7 +25577,6 @@ A value \tcode{ext} of type \tcode{SubExtents} such that
+@@ -25593,7 +25579,6 @@ A value \tcode{ext} of type \tcode{SubExtents} such that
for each $k$
for which \tcode{\placeholder{map-rank}[$k$] != dynamic_extent} is \tcode{true},
\tcode{ext.extent(\placeholder{map-rank}[$k$])} equals:
@@ -6426,7 +6426,7 @@ index 77036c1f..e49a887b 100644
\item
\tcode{$s_k$.extent == 0 ? 0 : 1 + (\exposid{de-ice}($s_k$.extent) - 1) / \exposid{de-ice}($s_k$.stride)}
diff --git a/source/declarations.tex b/source/declarations.tex
-index 6960c3e5..2bd0300a 100644
+index a8c0ecb3..1e8c45d2 100644
--- a/source/declarations.tex
+++ b/source/declarations.tex
@@ -1593,7 +1593,6 @@ a partial specialization\iref{temp.spec.partial},
@@ -6485,7 +6485,7 @@ index 6960c3e5..2bd0300a 100644
\end{itemize}
\pnum
-@@ -7735,7 +7728,6 @@ either \tcode{$\tcode{T}_i$\&} or \tcode{$\tcode{T}_i$\&\&},
+@@ -7739,7 +7732,6 @@ either \tcode{$\tcode{T}_i$\&} or \tcode{$\tcode{T}_i$\&\&},
where $\tcode{U}_i$ is an lvalue reference if
the initializer is an lvalue and an rvalue reference otherwise,
variables are introduced with unique names $\tcode{r}_i$ as follows:
@@ -6493,7 +6493,7 @@ index 6960c3e5..2bd0300a 100644
\begin{ncbnf}
\placeholder{S} \terminal{U$_i$ r$_i$ =} initializer \terminal{;}
\end{ncbnf}
-@@ -7867,7 +7859,6 @@ struct S {
+@@ -7871,7 +7863,6 @@ struct S {
enum E : int {}; // error: redeclaration of enumeration
};
\end{codeblock}
@@ -6501,7 +6501,7 @@ index 6960c3e5..2bd0300a 100644
\end{example}
\end{note}
The \grammarterm{identifier} in an \grammarterm{enum-head-name}
-@@ -7964,7 +7955,6 @@ If the underlying
+@@ -7968,7 +7959,6 @@ If the underlying
type is not fixed,
the type of each enumerator prior to the closing brace is determined as
follows:
@@ -6509,7 +6509,7 @@ index 6960c3e5..2bd0300a 100644
\begin{itemize}
\item If an
initializer is specified for an enumerator, the
-@@ -8423,7 +8413,6 @@ void h() {
+@@ -8427,7 +8417,6 @@ void h() {
\pnum
A \grammarterm{namespace-alias-definition} declares a \defnadj{namespace}{alias}
according to the following grammar:
@@ -6517,7 +6517,7 @@ index 6960c3e5..2bd0300a 100644
\begin{bnf}
\nontermdef{namespace-alias}\br
identifier
-@@ -8597,7 +8586,6 @@ not declare functions or function templates, the use of the name is ill-formed\i
+@@ -8601,7 +8590,6 @@ not declare functions or function templates, the use of the name is ill-formed\i
In particular, the name of a variable, function or enumerator does not
hide the name of a class or enumeration declared in a different
namespace. For example,
@@ -6525,7 +6525,7 @@ index 6960c3e5..2bd0300a 100644
\begin{codeblock}
namespace A {
class X { };
-@@ -9150,7 +9138,6 @@ otherwise identical.
+@@ -9154,7 +9142,6 @@ otherwise identical.
\pnum
\link{Linkage}{basic.link} between \Cpp{} and non-\Cpp{} code fragments can
be achieved using a \grammarterm{linkage-specification}:
@@ -6533,7 +6533,7 @@ index 6960c3e5..2bd0300a 100644
\indextext{\idxgram{linkage-specification}}%
\indextext{specification!linkage!\idxcode{extern}}%
%
-@@ -10019,7 +10006,6 @@ may be applied to a function or a lambda call operator or
+@@ -10023,7 +10010,6 @@ may be applied to a function or a lambda call operator or
to the declaration of a class or enumeration.
An \grammarterm{attribute-argument-clause} may be present
and, if present, shall have the form:
@@ -6567,7 +6567,7 @@ index df489ab5..17fe2711 100644
\begin{note}
diff --git a/source/expressions.tex b/source/expressions.tex
-index 8e108f2c..9ae43f93 100644
+index d9469cf9..61abb53e 100644
--- a/source/expressions.tex
+++ b/source/expressions.tex
@@ -464,7 +464,6 @@ applied. The \link{lvalue-to-rvalue}{conv.lval} conversion is applied
@@ -6771,7 +6771,7 @@ index 8e108f2c..9ae43f93 100644
\rSec2[expr.yield]{Yielding a value}%
diff --git a/source/future.tex b/source/future.tex
-index 4c6942b4..04969113 100644
+index fc805a6e..ab7c724e 100644
--- a/source/future.tex
+++ b/source/future.tex
@@ -283,7 +283,6 @@ shown in the above synopsis.
@@ -6839,7 +6839,7 @@ index 4c6942b4..04969113 100644
namespace std {
template
diff --git a/source/iostreams.tex b/source/iostreams.tex
-index 8a5caca8..19837154 100644
+index 0f649a76..a34a3f84 100644
--- a/source/iostreams.tex
+++ b/source/iostreams.tex
@@ -2102,14 +2102,12 @@ does nothing.
@@ -6962,7 +6962,7 @@ index 8a5caca8..19837154 100644
\item If there are no more entries at the current depth, then if \tcode{depth() != 0}
iteration over the parent directory resumes; otherwise \tcode{*this = recursive_directory_iterator()}.
diff --git a/source/iterators.tex b/source/iterators.tex
-index 7acd9d21..85213808 100644
+index 98944de7..315cca9e 100644
--- a/source/iterators.tex
+++ b/source/iterators.tex
@@ -948,7 +948,6 @@ may be defined as \keyword{void}.
@@ -6989,7 +6989,7 @@ index 7acd9d21..85213808 100644
\begin{itemize}
\item \tcode{iter_move(E)}, if
\tcode{E} has class or enumeration type and
-@@ -2793,7 +2790,6 @@ namespace std {
+@@ -2791,7 +2788,6 @@ namespace std {
A program-defined iterator \tcode{BinaryTreeIterator}
can be included into the bidirectional iterator category by
specializing the \tcode{iterator_traits} template:
@@ -6997,7 +6997,7 @@ index 7acd9d21..85213808 100644
\begin{codeblock}
template struct iterator_traits> {
using iterator_category = bidirectional_iterator_tag;
-@@ -2811,7 +2807,6 @@ If
+@@ -2809,7 +2805,6 @@ If
\tcode{evolve()}
is well-defined for bidirectional iterators, but can be implemented more
efficiently for random access iterators, then the implementation is as follows:
@@ -7005,7 +7005,7 @@ index 7acd9d21..85213808 100644
\begin{codeblock}
template
inline void
-@@ -3398,7 +3393,6 @@ As if by:
+@@ -3396,7 +3391,6 @@ As if by:
Iterator tmp = current;
return *--tmp;
\end{codeblock}
@@ -7013,7 +7013,7 @@ index 7acd9d21..85213808 100644
\end{itemdescr}
\indexlibrarymember{operator->}{reverse_iterator}%
-@@ -4780,7 +4774,6 @@ vector v1(s.begin(), s.end()); // copies strings into \tcode{v1
+@@ -4778,7 +4772,6 @@ vector v1(s.begin(), s.end()); // copies strings into \tcode{v1
vector v2(make_move_iterator(s.begin()),
make_move_iterator(s.end())); // moves strings into \tcode{v2}
\end{codeblock}
@@ -7021,7 +7021,7 @@ index 7acd9d21..85213808 100644
\end{example}
\rSec3[move.iterator]{Class template \tcode{move_iterator}}
-@@ -6499,7 +6492,6 @@ partial_sum(istream_iterator(cin),
+@@ -6497,7 +6490,6 @@ partial_sum(istream_iterator(cin),
istream_iterator(),
ostream_iterator(cout, "@\textbackslash@n"));
\end{codeblock}
@@ -7030,7 +7030,7 @@ index 7acd9d21..85213808 100644
\tcode{cin},
and prints the partial sums onto
diff --git a/source/lib-intro.tex b/source/lib-intro.tex
-index c3fcf8d5..729bd1dc 100644
+index 4bd46d8f..76ea7917 100644
--- a/source/lib-intro.tex
+++ b/source/lib-intro.tex
@@ -196,7 +196,6 @@ save space, items that do not apply to a Clause are omitted.
@@ -7178,7 +7178,7 @@ index efd4eb00..12180661 100644
-
\end{itemize}
diff --git a/source/memory.tex b/source/memory.tex
-index 8ad74c93..92ff4466 100644
+index e4a250b1..deb35ac5 100644
--- a/source/memory.tex
+++ b/source/memory.tex
@@ -1571,7 +1571,6 @@ when considered as an unevaluated operand.
@@ -7198,7 +7198,7 @@ index 8ad74c93..92ff4466 100644
\item
If \tcode{T} is an array type, then either
diff --git a/source/meta.tex b/source/meta.tex
-index 08347e95..0e7255dd 100644
+index 6eda2087..e6dedae6 100644
--- a/source/meta.tex
+++ b/source/meta.tex
@@ -1943,7 +1943,6 @@ is_base_of_v // \tcode{false}
@@ -7218,7 +7218,7 @@ index 08347e95..0e7255dd 100644
\item If \tcode{sizeof...(T)} is zero, there shall be no member \tcode{type}.
diff --git a/source/numerics.tex b/source/numerics.tex
-index 4457140a..52a0e3ec 100644
+index e7613b33..accd8c6d 100644
--- a/source/numerics.tex
+++ b/source/numerics.tex
@@ -606,7 +606,6 @@ template constexpr complex operator+(const complex& lhs);
@@ -7461,7 +7461,7 @@ index a6fd4d0f..da2270a0 100644
\pnum
diff --git a/source/ranges.tex b/source/ranges.tex
-index 2a606adf..8b0f4e38 100644
+index 49105075..1ce5326c 100644
--- a/source/ranges.tex
+++ b/source/ranges.tex
@@ -657,7 +657,6 @@ object\iref{customization.point.object}.
@@ -7528,7 +7528,7 @@ index 2a606adf..8b0f4e38 100644
\begin{codeblock}
template
concept @\defexposconceptnc{simple-view}@ = // \expos
-@@ -5886,7 +5878,6 @@ If \tcode{decltype((F))} does not model
+@@ -5888,7 +5880,6 @@ If \tcode{decltype((F))} does not model
\tcode{views::take(E, F)} is ill-formed.
Otherwise, the expression \tcode{views::take(E, F)}
is expression-equivalent to:
@@ -7536,7 +7536,7 @@ index 2a606adf..8b0f4e38 100644
\begin{itemize}
\item
If \tcode{T} is a specialization
-@@ -5907,7 +5898,6 @@ then
+@@ -5909,7 +5900,6 @@ then
ranges::be\-gin(E) + std::min(ranges::distance(E), F))},
except that \tcode{E} is evaluated only once,
where \tcode{U} is a type determined as follows:
@@ -7544,7 +7544,7 @@ index 2a606adf..8b0f4e38 100644
\begin{itemize}
\item if \tcode{T} is a specialization of \tcode{span},
then \tcode{U} is \tcode{span};
-@@ -6369,7 +6359,6 @@ If \tcode{decltype((F))} does not model
+@@ -6371,7 +6361,6 @@ If \tcode{decltype((F))} does not model
\tcode{views::drop(E, F)} is ill-formed.
Otherwise, the expression \tcode{views::drop(E, F)}
is expression-equivalent to:
@@ -7552,7 +7552,7 @@ index 2a606adf..8b0f4e38 100644
\begin{itemize}
\item
If \tcode{T} is a specialization of
-@@ -7445,7 +7434,6 @@ if and only if \exposid{ref-is-glvalue} is \tcode{true}, and
+@@ -7447,7 +7436,6 @@ if and only if \exposid{ref-is-glvalue} is \tcode{true}, and
\exposid{Base} and \exposid{InnerBase} each model \libconcept{forward_range}.
In that case,
\tcode{\exposid{iterator}::iterator_category} is defined as follows:
@@ -7560,7 +7560,7 @@ index 2a606adf..8b0f4e38 100644
\begin{itemize}
\item
Let \placeholder{OUTERC} denote
-@@ -9744,7 +9732,6 @@ appears in the immediate context of a template instantiation.
+@@ -9746,7 +9734,6 @@ appears in the immediate context of a template instantiation.
\end{note}
Otherwise, \tcode{views::counted(E, F)}
is expression-equivalent to:
@@ -7581,7 +7581,7 @@ index 785798f7..fa5898d3 100644
\item if the type of \exposid{range} is a reference to an
array type \tcode{R}, \exposid{begin-expr} and \exposid{end-expr} are
diff --git a/source/support.tex b/source/support.tex
-index cee9e901..09e93b10 100644
+index f3691cd9..43f3c9f5 100644
--- a/source/support.tex
+++ b/source/support.tex
@@ -2459,7 +2459,6 @@ This requirement is binding on any replacement versions of these functions.
@@ -7617,7 +7617,7 @@ index cee9e901..09e93b10 100644
using promise_type = typename R::promise_type;
\end{codeblock}
diff --git a/source/templates.tex b/source/templates.tex
-index c17177bc..fc802e62 100644
+index 63baaaf8..91b148f9 100644
--- a/source/templates.tex
+++ b/source/templates.tex
@@ -235,7 +235,6 @@ in some translation unit; no diagnostic is required.
@@ -7668,7 +7668,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item In a function parameter pack\iref{dcl.fct}; the pattern is the
\grammarterm{parameter-declaration} without the ellipsis.
-@@ -3768,7 +3762,6 @@ All other constant template arguments are specialized.
+@@ -3770,7 +3764,6 @@ All other constant template arguments are specialized.
\pnum
Within the argument list of a partial specialization,
the following restrictions apply:
@@ -7676,7 +7676,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
The type of a template parameter corresponding to a specialized constant template
-@@ -3782,7 +3775,6 @@ template< int X, int (*array_ptr)[X] > class A {};
+@@ -3784,7 +3777,6 @@ template< int X, int (*array_ptr)[X] > class A {};
int array[5];
template< int X > class A { }; // error
\end{codeblock}
@@ -7684,7 +7684,7 @@ index c17177bc..fc802e62 100644
\end{example}
\item
The partial specialization shall be more specialized than the primary
-@@ -3908,7 +3900,6 @@ the first is \defn{more specialized} than the second if, given the following
+@@ -3910,7 +3902,6 @@ the first is \defn{more specialized} than the second if, given the following
rewrite to two function templates, the first function template is more
specialized than the second according to the \link{ordering rules for function
templates}{temp.func.order}:
@@ -7692,7 +7692,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
Each of the two
-@@ -4060,7 +4051,6 @@ A::B abci; // uses \#1
+@@ -4062,7 +4053,6 @@ A::B abci; // uses \#1
A function template defines an unbounded set of related functions.
\begin{example}
A family of sort functions can be declared like this:
@@ -7700,7 +7700,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
template class Array { };
template void sort(Array&);
-@@ -4115,7 +4105,6 @@ void h(int* p) {
+@@ -4117,7 +4107,6 @@ void h(int* p) {
}
\end{codeblock}
\end{minipage}
@@ -7708,7 +7708,7 @@ index c17177bc..fc802e62 100644
\end{example}
\pnum
-@@ -4301,7 +4290,6 @@ to guarantee that functionally equivalent declarations will be treated
+@@ -4303,7 +4292,6 @@ to guarantee that functionally equivalent declarations will be treated
as distinct.
For example, the last two declarations are functionally
equivalent and would cause a program to be ill-formed:
@@ -7716,7 +7716,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
// guaranteed to be the same
template void f(A, A);
-@@ -4394,7 +4382,6 @@ then the order of the function parameters in its transformed template
+@@ -4396,7 +4384,6 @@ then the order of the function parameters in its transformed template
is reversed.
For a function template $M$ with cv-qualifiers \cv{}
that is a member of a class $A$:
@@ -7724,7 +7724,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
The type $X(M)$ is ``rvalue reference to \cv{}~$A$''
-@@ -4650,7 +4637,6 @@ template class TT>
+@@ -4652,7 +4639,6 @@ template class TT>
void g(TT>);
g(v); // OK, \tcode{TT} = \tcode{vector}
\end{codeblock}
@@ -7732,7 +7732,7 @@ index c17177bc..fc802e62 100644
\end{example}
\pnum
-@@ -5516,7 +5502,6 @@ of a class that is the current instantiation.
+@@ -5518,7 +5504,6 @@ of a class that is the current instantiation.
\pnum
A qualified name\iref{basic.lookup.qual} is dependent if
@@ -7740,7 +7740,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
it is a \grammarterm{conversion-function-id}
-@@ -5765,7 +5750,6 @@ specified by the
+@@ -5767,7 +5752,6 @@ specified by the
or
\grammarterm{new-type-id}
is dependent, even if any subexpression is type-dependent:
@@ -7748,7 +7748,7 @@ index c17177bc..fc802e62 100644
\begin{ncsimplebnf}
simple-type-specifier \terminal{(} \opt{expression-list} \terminal{)}\br
simple-type-specifier braced-init-list\br
-@@ -5783,7 +5767,6 @@ typename-specifier braced-init-list\br
+@@ -5785,7 +5769,6 @@ typename-specifier braced-init-list\br
\pnum
Expressions of the following forms are never type-dependent (because the type
of the expression cannot be dependent):
@@ -7756,7 +7756,7 @@ index c17177bc..fc802e62 100644
\begin{ncsimplebnf}
literal\br
\keyword{sizeof} unary-expression\br
-@@ -5888,7 +5871,6 @@ Expressions of the following form are value-dependent if the
+@@ -5890,7 +5873,6 @@ Expressions of the following form are value-dependent if the
is type-dependent or the
\grammarterm{type-id}
is dependent:
@@ -7764,7 +7764,7 @@ index c17177bc..fc802e62 100644
\begin{ncsimplebnf}
\keyword{sizeof} unary-expression\br
\keyword{sizeof} \terminal{(} type-id \terminal{)}\br
-@@ -5916,7 +5898,6 @@ any \grammarterm{expression} in the \grammarterm{expression-list}
+@@ -5918,7 +5900,6 @@ any \grammarterm{expression} in the \grammarterm{expression-list}
is value-dependent or
any \grammarterm{assignment-expression} in the \grammarterm{braced-init-list}
is value-dependent:
@@ -7772,7 +7772,7 @@ index c17177bc..fc802e62 100644
\begin{ncsimplebnf}
simple-type-specifier \terminal{(} \opt{expression-list} \terminal{)}\br
typename-specifier \terminal{(} \opt{expression-list} \terminal{)}\br
-@@ -5931,7 +5912,6 @@ typename-specifier braced-init-list\br
+@@ -5933,7 +5914,6 @@ typename-specifier braced-init-list\br
\pnum
Expressions of the following form are value-dependent:
@@ -7780,7 +7780,7 @@ index c17177bc..fc802e62 100644
\begin{ncsimplebnf}
\keyword{sizeof} \terminal{...} \terminal{(} identifier \terminal{)}\br
fold-expression
-@@ -6935,7 +6915,6 @@ template.
+@@ -6937,7 +6917,6 @@ template.
\pnum
The syntax for explicit instantiation is:
@@ -7788,7 +7788,7 @@ index c17177bc..fc802e62 100644
\begin{bnf}
\nontermdef{explicit-instantiation}\br
\opt{\keyword{extern}} \keyword{template} declaration
-@@ -7410,7 +7389,6 @@ otherwise, it is a declaration.
+@@ -7412,7 +7391,6 @@ otherwise, it is a declaration.
The definition of a static data member of a template
for which default-initialization is desired
can use functional cast notation\iref{expr.type.conv}:
@@ -7796,7 +7796,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
template<> X Q::x; // declaration
template<> X Q::x (); // error: declares a function
-@@ -7669,7 +7647,6 @@ An empty template argument list can be used to indicate that a given
+@@ -7671,7 +7649,6 @@ An empty template argument list can be used to indicate that a given
use refers to a specialization of a function template even when a
non-template function\iref{dcl.fct} is visible that would otherwise be used.
For example:
@@ -7804,7 +7804,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
template int f(T); // \#1
int f(int); // \#2
-@@ -8251,7 +8228,6 @@ void h(int x, float& y) {
+@@ -8253,7 +8230,6 @@ void h(int x, float& y) {
If
\tcode{P}
is not a reference type:
@@ -7812,7 +7812,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
If
-@@ -8346,7 +8322,6 @@ the type
+@@ -8348,7 +8324,6 @@ the type
is transformed as described above).
However, there are
three cases that allow a difference:
@@ -7820,7 +7820,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
If the original
-@@ -8536,7 +8511,6 @@ of \tcode{P} for type deduction and for any further references to or transformat
+@@ -8538,7 +8513,6 @@ of \tcode{P} for type deduction and for any further references to or transformat
If
\tcode{A}
is not a reference type:
@@ -7828,7 +7828,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
If
-@@ -8582,7 +8556,6 @@ values that will make the deduced
+@@ -8584,7 +8558,6 @@ values that will make the deduced
identical to
\tcode{A}.
However, certain attributes of \tcode{A} may be ignored:
@@ -7836,7 +7836,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
If the original \tcode{A} is a reference type,
-@@ -8627,7 +8600,6 @@ the argument template and template-1 as the parameter template.
+@@ -8629,7 +8602,6 @@ the argument template and template-1 as the parameter template.
\pnum
The types used to determine the ordering depend on the context in which
the partial ordering is done:
@@ -7844,7 +7844,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
In the context of a function call, the types used are those function parameter types
-@@ -8655,7 +8627,6 @@ and
+@@ -8657,7 +8629,6 @@ and
\pnum
Before the partial ordering is done, certain transformations are performed
on the types used for partial ordering:
@@ -7852,7 +7852,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
If
-@@ -8861,7 +8832,6 @@ A given type
+@@ -8863,7 +8834,6 @@ A given type
\tcode{P}
can be composed from a number of other
types, templates, and constant template argument values:
@@ -7860,7 +7860,7 @@ index c17177bc..fc802e62 100644
\begin{itemize}
\item
A function type includes the types of each of the function parameters,
-@@ -8903,7 +8873,6 @@ need not have the same form.
+@@ -8905,7 +8875,6 @@ need not have the same form.
\pnum
The non-deduced contexts are:
@@ -7868,7 +7868,7 @@ index c17177bc..fc802e62 100644
\indextext{context!non-deduced}%
\begin{itemize}
\item
-@@ -8998,7 +8967,6 @@ is deduced.
+@@ -9000,7 +8969,6 @@ is deduced.
\begin{example}
Here is an example in which different parameter/argument pairs produce
inconsistent template argument deductions:
@@ -7876,7 +7876,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
template void f(T x, T y) { @\commentellip@ }
struct A { @\commentellip@ };
-@@ -9015,7 +8983,6 @@ Here is an example where two template arguments are deduced from a
+@@ -9017,7 +8985,6 @@ Here is an example where two template arguments are deduced from a
single function parameter/argument pair.
This can lead to conflicts
that cause type deduction to fail:
@@ -7884,7 +7884,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
template void f(T (*)(T, U, U));
-@@ -9032,7 +8999,6 @@ void r() {
+@@ -9034,7 +9001,6 @@ void r() {
Here is an example where the exception specification of a function type
is deduced:
@@ -7892,7 +7892,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
template void f1(void (*)() noexcept(E));
template struct A { };
-@@ -9051,7 +9017,6 @@ void h() {
+@@ -9053,7 +9019,6 @@ void h() {
Here is an example where a qualification conversion applies between the
argument type on the function call and the deduced template argument type:
@@ -7900,7 +7900,7 @@ index c17177bc..fc802e62 100644
\begin{codeblock}
template void f(const T*) { }
int* p;
-@@ -9062,7 +9027,6 @@ void s() {
+@@ -9064,7 +9029,6 @@ void s() {
Here is an example where the template argument is used to instantiate
a derived class type of the corresponding function parameter type:
@@ -7909,10 +7909,10 @@ index c17177bc..fc802e62 100644
template struct B { };
template struct D : public B {};
diff --git a/source/threads.tex b/source/threads.tex
-index b2e9462e..bec330ff 100644
+index 1b18d89d..45b25596 100644
--- a/source/threads.tex
+++ b/source/threads.tex
-@@ -7372,7 +7372,6 @@ and visible to other threads.
+@@ -7386,7 +7386,6 @@ and visible to other threads.
\pnum
The expression \tcode{m.lock()} is well-formed and has the following semantics:
@@ -7920,7 +7920,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -7415,7 +7414,6 @@ that a deadlock would occur.
+@@ -7429,7 +7428,6 @@ that a deadlock would occur.
\pnum
The expression \tcode{m.try_lock()} is well-formed and has the following semantics:
@@ -7928,7 +7928,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -7461,7 +7459,6 @@ Nothing.
+@@ -7475,7 +7473,6 @@ Nothing.
\pnum
The expression \tcode{m.unlock()} is well-formed and has the following semantics:
@@ -7936,7 +7936,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -7616,7 +7613,6 @@ requirements\iref{thread.req.lockable.timed}.
+@@ -7630,7 +7627,6 @@ requirements\iref{thread.req.lockable.timed}.
\pnum
The expression \tcode{m.try_lock_for(rel_time)} is well-formed
and has the following semantics:
@@ -7944,7 +7944,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -7658,7 +7654,6 @@ Timeout-related exceptions\iref{thread.req.timing}.
+@@ -7672,7 +7668,6 @@ Timeout-related exceptions\iref{thread.req.timing}.
\pnum
The expression \tcode{m.try_lock_until(abs_time)} is well-formed
and has the following semantics:
@@ -7952,7 +7952,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -7845,7 +7840,6 @@ shared lock.
+@@ -7859,7 +7854,6 @@ shared lock.
\pnum
The expression \tcode{m.lock_shared()} is well-formed and has the
following semantics:
@@ -7960,7 +7960,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -7882,7 +7876,6 @@ The calling thread has a shared lock on the mutex.
+@@ -7896,7 +7890,6 @@ The calling thread has a shared lock on the mutex.
\pnum
The expression \tcode{m.unlock_shared()} is well-formed and has the following semantics:
@@ -7968,7 +7968,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -7907,7 +7900,6 @@ Nothing.
+@@ -7921,7 +7914,6 @@ Nothing.
\pnum
The expression \tcode{m.try_lock_shared()} is well-formed and has the following semantics:
@@ -7976,7 +7976,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -8010,7 +8002,6 @@ requirements\iref{thread.req.lockable.shared.timed}.
+@@ -8024,7 +8016,6 @@ requirements\iref{thread.req.lockable.shared.timed}.
\pnum
The expression \tcode{m.try_lock_shared_for(rel_time)} is well-formed and
has the following semantics:
@@ -7984,7 +7984,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -8055,7 +8046,6 @@ Timeout-related exceptions\iref{thread.req.timing}.
+@@ -8069,7 +8060,6 @@ Timeout-related exceptions\iref{thread.req.timing}.
\pnum
The expression \tcode{m.try_lock_shared_until(abs_time)} is well-formed
and has the following semantics:
@@ -7992,7 +7992,7 @@ index b2e9462e..bec330ff 100644
\begin{itemdescr}
\pnum
\expects
-@@ -10193,7 +10183,6 @@ template
+@@ -10207,7 +10197,6 @@ template
\begin{itemdescr}
\pnum
\effects
@@ -8000,7 +8000,7 @@ index b2e9462e..bec330ff 100644
\begin{itemize}
\item
\indextext{block (execution)}%
-@@ -11584,7 +11573,6 @@ shared state as \tcode{*this}.
+@@ -11598,7 +11587,6 @@ shared state as \tcode{*this}.
\pnum
\errors
@@ -8008,7 +8008,7 @@ index b2e9462e..bec330ff 100644
\begin{itemize}
\item \tcode{future_already_retrieved} if \tcode{get_future} has already been called on
a \tcode{promise} with the same shared state as \tcode{*this}.
-@@ -11647,7 +11635,6 @@ already has a stored value or exception.
+@@ -11661,7 +11649,6 @@ already has a stored value or exception.
\pnum
\errors
@@ -8016,7 +8016,7 @@ index b2e9462e..bec330ff 100644
\begin{itemize}
\item \tcode{promise_already_satisfied} if its shared state
already has a stored value or exception.
-@@ -11987,7 +11974,6 @@ the relative timeout\iref{thread.req.timing} specified by \tcode{rel_time} has e
+@@ -12001,7 +11988,6 @@ the relative timeout\iref{thread.req.timing} specified by \tcode{rel_time} has e
\pnum
\returns
@@ -8024,7 +8024,7 @@ index b2e9462e..bec330ff 100644
\begin{itemize}
\item \tcode{future_status::deferred} if the shared state contains a deferred
function.
-@@ -12331,7 +12317,6 @@ the relative timeout\iref{thread.req.timing} specified by
+@@ -12345,7 +12331,6 @@ the relative timeout\iref{thread.req.timing} specified by
\pnum
\returns
@@ -8032,7 +8032,7 @@ index b2e9462e..bec330ff 100644
\begin{itemize}
\item \tcode{future_status::deferred} if the shared state contains a deferred
function.
-@@ -12366,7 +12351,6 @@ absolute timeout\iref{thread.req.timing} specified by
+@@ -12380,7 +12365,6 @@ absolute timeout\iref{thread.req.timing} specified by
\pnum
\returns
@@ -8040,7 +8040,7 @@ index b2e9462e..bec330ff 100644
\begin{itemize}
\item \tcode{future_status::deferred} if the shared state contains a deferred
function.
-@@ -12422,7 +12406,6 @@ The further behavior
+@@ -12436,7 +12420,6 @@ The further behavior
of the second function depends on the \tcode{policy} argument as follows (if
more than one of these conditions applies, the implementation may choose any of
the corresponding policies):
@@ -8199,7 +8199,7 @@ index c37f5bba..f52ab7f4 100644
\fmtnontermdef{chrono-format-spec}\br
\opt{fill-and-align} \opt{width} \opt{precision} \opt{\terminal{L}} \opt{chrono-specs}
diff --git a/source/utilities.tex b/source/utilities.tex
-index faf5d946..b79fc8d3 100644
+index 6febc3c3..78087710 100644
--- a/source/utilities.tex
+++ b/source/utilities.tex
@@ -270,7 +270,6 @@ Exchanges values stored in two locations.
@@ -8250,7 +8250,7 @@ index faf5d946..b79fc8d3 100644
\begin{codeblock}
transform(a.begin(), a.end(), b.begin(), a.begin(), plus());
\end{codeblock}
-@@ -14930,7 +14924,6 @@ friend bool operator==(const copyable_function& f, nullptr_t) noexcept;
+@@ -14929,7 +14923,6 @@ friend bool operator==(const copyable_function& f, nullptr_t) noexcept;
The header provides partial specializations of \tcode{function_ref}
for each combination of the possible replacements of
the placeholders \cv{} and \placeholder{noex} where:
@@ -8262,10 +8262,10 @@ index faf5d946..b79fc8d3 100644
2.43.0
-From 713553b603864c1b414be8d05b59173e693ee343 Mon Sep 17 00:00:00 2001
+From c92248534f4ad6851524ecd28625433427575860 Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Thu, 17 Sep 2020 10:17:47 +0200
-Subject: [PATCH 06/10] Use monospace font for code in figures.
+Subject: [PATCH 6/9] Use monospace font for code in figures.
---
source/assets/figdag.dot | 8 ++++----
@@ -8409,10 +8409,10 @@ index b3c04d48..1ab8e364 100644
2.43.0
-From cb2cc2cb59467f4fa92cffdbef1395ad963ab521 Mon Sep 17 00:00:00 2001
+From 0019625753aa4d51eb92af8b1a67721d088d6d45 Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Wed, 23 Jun 2021 20:54:27 +0200
-Subject: [PATCH 07/10] [uaxid] Mark code that's not to be highlighted.
+Subject: [PATCH 7/9] [uaxid] Mark code that's not to be highlighted.
---
source/uax31.tex | 4 ++--
@@ -8437,10 +8437,10 @@ index 79f0f7d0..80b2d666 100644
2.43.0
-From c640f817cfcec1580cec83b57e171dbb925c8b6e Mon Sep 17 00:00:00 2001
+From cfcee64febebd71b55588c5a211edb800d558450 Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Sun, 28 Jul 2024 10:22:07 +0200
-Subject: [PATCH 08/10] Use cxxdraft-htmlgen macros more.
+Subject: [PATCH 8/9] Use cxxdraft-htmlgen macros more.
---
source/algorithms.tex | 180 +++++++++++++-------------
@@ -8461,7 +8461,7 @@ Subject: [PATCH 08/10] Use cxxdraft-htmlgen macros more.
15 files changed, 490 insertions(+), 498 deletions(-)
diff --git a/source/algorithms.tex b/source/algorithms.tex
-index 011292f7..3dcc8907 100644
+index 3af19872..42bc0626 100644
--- a/source/algorithms.tex
+++ b/source/algorithms.tex
@@ -62,14 +62,14 @@ the names of template parameters are used to express type requirements.
@@ -9055,7 +9055,7 @@ index 0bfd8612..b166e3a9 100644
invocation of the destructor does not actually throw.
\end{note}
diff --git a/source/diagnostics.tex b/source/diagnostics.tex
-index df926181..ffcb4e9f 100644
+index e653b348..2adaa033 100644
--- a/source/diagnostics.tex
+++ b/source/diagnostics.tex
@@ -758,9 +758,9 @@ namespace std {
@@ -9121,7 +9121,7 @@ index df926181..ffcb4e9f 100644
\pnum
\effects
diff --git a/source/exec.tex b/source/exec.tex
-index 058038ef..887279b0 100644
+index 22eb3485..587fdbf0 100644
--- a/source/exec.tex
+++ b/source/exec.tex
@@ -31,25 +31,25 @@ used in the execution control library.
@@ -9160,7 +9160,7 @@ index 058038ef..887279b0 100644
\\
\end{floattable}
diff --git a/source/future.tex b/source/future.tex
-index 04969113..8c17e33e 100644
+index ab7c724e..c69ae9e5 100644
--- a/source/future.tex
+++ b/source/future.tex
@@ -359,7 +359,7 @@ template struct is_pod;
@@ -9209,7 +9209,7 @@ index 04969113..8c17e33e 100644
\begin{itemize}
\item for the first specialization, \tcode{add_volatile_t}, and
diff --git a/source/iostreams.tex b/source/iostreams.tex
-index 19837154..ba13c1f7 100644
+index a34a3f84..0ff3588e 100644
--- a/source/iostreams.tex
+++ b/source/iostreams.tex
@@ -1681,10 +1681,10 @@ An \tcode{fpos} type specifies file position information.
@@ -9290,7 +9290,7 @@ index 19837154..ba13c1f7 100644
\pnum
If an iterator of type \tcode{directory_iterator} reports an error or
diff --git a/source/lib-intro.tex b/source/lib-intro.tex
-index 729bd1dc..2ff6567d 100644
+index 76ea7917..7712e342 100644
--- a/source/lib-intro.tex
+++ b/source/lib-intro.tex
@@ -1862,7 +1862,7 @@ If \tcode{a == b} and \tcode{b == c}, then \tcode{a == c}.
@@ -9399,7 +9399,7 @@ index 729bd1dc..2ff6567d 100644
dereferenceable pointer values for some integral value \tcode{n},
\begin{codeblock}
diff --git a/source/memory.tex b/source/memory.tex
-index 92ff4466..c59c2b55 100644
+index deb35ac5..d574546f 100644
--- a/source/memory.tex
+++ b/source/memory.tex
@@ -1273,7 +1273,7 @@ The \tcode{allocator_arg_t} struct is an empty class type used as a unique type
@@ -9572,7 +9572,7 @@ index 92ff4466..c59c2b55 100644
the program is ill-formed.
\begin{note}
diff --git a/source/meta.tex b/source/meta.tex
-index 0e7255dd..ee96bf8f 100644
+index e6dedae6..b2188af9 100644
--- a/source/meta.tex
+++ b/source/meta.tex
@@ -95,12 +95,12 @@ All functions specified in \ref{type.traits} are signal-safe\iref{support.signal
@@ -10181,7 +10181,7 @@ index 0e7255dd..ee96bf8f 100644
\rSec2[meta.member]{Member relationships}
diff --git a/source/numerics.tex b/source/numerics.tex
-index 52a0e3ec..0aac59a4 100644
+index accd8c6d..f9579b68 100644
--- a/source/numerics.tex
+++ b/source/numerics.tex
@@ -41,10 +41,10 @@ components are parameterized by the type of information they contain and manipul
@@ -10305,7 +10305,7 @@ index 52a0e3ec..0aac59a4 100644
whose \tcode{value_type} is the template
parameter \tcode{T} and whose \tcode{reference} type is \tcode{const T\&}.
diff --git a/source/strings.tex b/source/strings.tex
-index e943eef1..13b33fa6 100644
+index e0a6f1ca..e654c723 100644
--- a/source/strings.tex
+++ b/source/strings.tex
@@ -238,10 +238,10 @@ using state_type = @\seebelow@;
@@ -10333,7 +10333,7 @@ index e943eef1..13b33fa6 100644
meets the constexpr iterator requirements\iref{iterator.requirements.general},
whose \tcode{value_type} is the template parameter \tcode{charT}.
diff --git a/source/support.tex b/source/support.tex
-index 09e93b10..4ee8d4ed 100644
+index 43f3c9f5..047f9904 100644
--- a/source/support.tex
+++ b/source/support.tex
@@ -3657,11 +3657,11 @@ namespace std {
@@ -10372,7 +10372,7 @@ index 09e93b10..4ee8d4ed 100644
\pnum
\throws
diff --git a/source/threads.tex b/source/threads.tex
-index bec330ff..da485dc5 100644
+index 45b25596..c897fccc 100644
--- a/source/threads.tex
+++ b/source/threads.tex
@@ -41,7 +41,7 @@ yields \tcode{true} if the corresponding test condition is satisfied, and
@@ -10435,7 +10435,7 @@ index bec330ff..da485dc5 100644
the following expressions are well-formed, have type \tcode{bool}, and
have the specified semantics
(\tcode{m} denotes a value of type \tcode{L},
-@@ -4499,7 +4499,7 @@ namespace std {
+@@ -4510,7 +4510,7 @@ namespace std {
\indexlibraryglobal{atomic}%
\pnum
The template argument for \tcode{T} shall meet the
@@ -10444,7 +10444,7 @@ index bec330ff..da485dc5 100644
The program is ill-formed if any of
\begin{itemize}
\item \tcode{is_trivially_copyable_v},
-@@ -7333,11 +7333,11 @@ The \defn{mutex types} are the standard library types \tcode{mutex},
+@@ -7347,11 +7347,11 @@ The \defn{mutex types} are the standard library types \tcode{mutex},
They meet the requirements set out in \ref{thread.mutex.requirements.mutex}.
In this description, \tcode{m} denotes an object of a mutex type.
\begin{note}
@@ -10458,7 +10458,7 @@ index bec330ff..da485dc5 100644
If initialization of an object of a mutex type fails,
an exception of type \tcode{system_error} is thrown.
The mutex types are neither copyable nor movable.
-@@ -7606,7 +7606,7 @@ instantiation of \link{\tcode{duration}}{time.duration}, and \tcode{abs_time} de
+@@ -7620,7 +7620,7 @@ instantiation of \link{\tcode{duration}}{time.duration}, and \tcode{abs_time} de
object of an
instantiation of \link{\tcode{time_point}}{time.point}.
\begin{note}
@@ -10467,7 +10467,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.timed}.
\end{note}
-@@ -7818,7 +7818,7 @@ mutex types\iref{thread.mutex.requirements.mutex} and additionally
+@@ -7832,7 +7832,7 @@ mutex types\iref{thread.mutex.requirements.mutex} and additionally
meet the requirements set out below. In this description,
\tcode{m} denotes an object of a shared mutex type.
\begin{note}
@@ -10476,7 +10476,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.shared}.
\end{note}
-@@ -7995,7 +7995,7 @@ meet the requirements set out below. In this description,
+@@ -8009,7 +8009,7 @@ meet the requirements set out below. In this description,
\tcode{abs_time} denotes an object of an instantiation of
\link{\tcode{time_point}}{time.point}.
\begin{note}
@@ -10485,7 +10485,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.shared.timed}.
\end{note}
-@@ -8205,7 +8205,7 @@ within a scope. A \tcode{lock_guard} object maintains ownership of a lockable
+@@ -8219,7 +8219,7 @@ within a scope. A \tcode{lock_guard} object maintains ownership of a lockable
object throughout the \tcode{lock_guard} object's \deflink{lifetime}{basic.life}.
The behavior of a program is undefined if the lockable object referenced by
\tcode{pm} does not exist for the entire lifetime of the \tcode{lock_guard}
@@ -10494,7 +10494,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.basic}.
\indexlibraryctor{lock_guard}%
-@@ -8284,12 +8284,12 @@ object.
+@@ -8298,12 +8298,12 @@ object.
If \tcode{sizeof...(MutexTypes)} is one,
let \tcode{Mutex} denote the sole type constituting the pack \tcode{MutexTypes}.
\tcode{Mutex}
@@ -10509,7 +10509,7 @@ index bec330ff..da485dc5 100644
and there is no member \tcode{mutex_type}.
\end{itemize}
-@@ -8404,17 +8404,17 @@ copyable but are movable. The behavior of a program is undefined if the containe
+@@ -8418,17 +8418,17 @@ copyable but are movable. The behavior of a program is undefined if the containe
\tcode{pm} is not null and the lockable object pointed
to by \tcode{pm} does not exist for the entire remaining
lifetime\iref{basic.life} of the \tcode{unique_lock} object. The supplied
@@ -10533,7 +10533,7 @@ index bec330ff..da485dc5 100644
\end{note}
\rSec4[thread.lock.unique.cons]{Constructors, destructor, and assignment}
-@@ -8464,7 +8464,7 @@ unique_lock(mutex_type& m, try_to_lock_t);
+@@ -8478,7 +8478,7 @@ unique_lock(mutex_type& m, try_to_lock_t);
\begin{itemdescr}
\pnum
\expects
@@ -10542,7 +10542,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.req}.
\pnum
-@@ -8506,7 +8506,7 @@ template
+@@ -8520,7 +8520,7 @@ template
\pnum
\expects
The supplied \tcode{Mutex} type meets the
@@ -10551,7 +10551,7 @@ index bec330ff..da485dc5 100644
\pnum
\effects
-@@ -8528,7 +8528,7 @@ template
+@@ -8542,7 +8542,7 @@ template
\begin{itemdescr}
\pnum
\expects
@@ -10560,7 +10560,7 @@ index bec330ff..da485dc5 100644
\pnum
\effects
-@@ -8615,7 +8615,7 @@ bool try_lock();
+@@ -8629,7 +8629,7 @@ bool try_lock();
\begin{itemdescr}
\pnum
\expects
@@ -10569,7 +10569,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.req}.
\pnum
-@@ -8654,7 +8654,7 @@ template
+@@ -8668,7 +8668,7 @@ template
\begin{itemdescr}
\pnum
\expects
@@ -10578,7 +10578,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.timed}.
\pnum
-@@ -8693,7 +8693,7 @@ template
+@@ -8707,7 +8707,7 @@ template
\begin{itemdescr}
\pnum
\expects
@@ -10587,7 +10587,7 @@ index bec330ff..da485dc5 100644
\pnum
\effects
-@@ -8886,16 +8886,16 @@ acquisition, to another \tcode{shared_lock} object. Objects of type
+@@ -8900,16 +8900,16 @@ acquisition, to another \tcode{shared_lock} object. Objects of type
is undefined if the contained pointer \tcode{pm} is not null and the lockable
object pointed to by \tcode{pm} does not exist for the entire remaining
lifetime\iref{basic.life} of the \tcode{shared_lock} object. The supplied
@@ -10608,7 +10608,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.timed}.
\end{note}
-@@ -8980,7 +8980,7 @@ template
+@@ -8994,7 +8994,7 @@ template
\begin{itemdescr}
\pnum
\expects
@@ -10617,7 +10617,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.shared.timed}.
\pnum
-@@ -9004,7 +9004,7 @@ template
+@@ -9018,7 +9018,7 @@ template
\begin{itemdescr}
\pnum
\expects
@@ -10626,7 +10626,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.shared.timed}.
\pnum
-@@ -9129,7 +9129,7 @@ template
+@@ -9143,7 +9143,7 @@ template
\begin{itemdescr}
\pnum
\expects
@@ -10635,7 +10635,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.shared.timed}.
\pnum
-@@ -9169,7 +9169,7 @@ template
+@@ -9183,7 +9183,7 @@ template
\begin{itemdescr}
\pnum
\expects
@@ -10644,7 +10644,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.shared.timed}.
\pnum
-@@ -9308,7 +9308,7 @@ template int try_lock(L1&, L2&, L3&...);
+@@ -9322,7 +9322,7 @@ template int try_lock(L1&, L2&, L3&...);
\begin{itemdescr}
\pnum
\expects
@@ -10653,7 +10653,7 @@ index bec330ff..da485dc5 100644
\begin{note}
The
\tcode{unique_lock} class template meets these requirements when suitably instantiated.
-@@ -9337,7 +9337,7 @@ template void lock(L1&, L2&, L3&...);
+@@ -9351,7 +9351,7 @@ template void lock(L1&, L2&, L3&...);
\begin{itemdescr}
\pnum
\expects
@@ -10662,7 +10662,7 @@ index bec330ff..da485dc5 100644
\begin{note}
The
\tcode{unique_lock} class template meets these requirements when suitably instantiated.
-@@ -10003,7 +10003,7 @@ This can happen if the re-locking of the mutex throws an exception.
+@@ -10017,7 +10017,7 @@ This can happen if the re-locking of the mutex throws an exception.
\pnum
In \ref{thread.condition.condvarany},
template arguments for template parameters named \tcode{Lock}
@@ -10671,7 +10671,7 @@ index bec330ff..da485dc5 100644
requirements\iref{thread.req.lockable.basic}.
\begin{note}
All of the standard
-@@ -10941,24 +10941,24 @@ execute atomically.
+@@ -10955,24 +10955,24 @@ execute atomically.
\pnum
\tcode{CompletionFunction} shall meet the
@@ -10702,7 +10702,7 @@ index bec330ff..da485dc5 100644
\indexlibrarymember{max}{barrier}%
\begin{itemdecl}
-@@ -11453,7 +11453,7 @@ namespace std {
+@@ -11467,7 +11467,7 @@ namespace std {
\pnum
For the primary template, \tcode{R} shall be an object type that
@@ -10711,7 +10711,7 @@ index bec330ff..da485dc5 100644
\pnum
The implementation provides the template \tcode{promise} and two specializations,
-@@ -11785,7 +11785,7 @@ namespace std {
+@@ -11799,7 +11799,7 @@ namespace std {
\pnum
For the primary template, \tcode{R} shall be an object type that
@@ -10720,7 +10720,7 @@ index bec330ff..da485dc5 100644
\pnum
The implementation provides the template \tcode{future} and two specializations,
-@@ -12091,7 +12091,7 @@ namespace std {
+@@ -12105,7 +12105,7 @@ namespace std {
\pnum
For the primary template, \tcode{R} shall be an object type that
@@ -10729,7 +10729,7 @@ index bec330ff..da485dc5 100644
\pnum
The implementation provides the template \tcode{shared_future} and two
-@@ -13029,7 +13029,7 @@ the expression \tcode{d(ptr)} is valid.
+@@ -13043,7 +13043,7 @@ the expression \tcode{d(ptr)} is valid.
\pnum
\tcode{D} shall meet the requirements for
@@ -10738,7 +10738,7 @@ index bec330ff..da485dc5 100644
\pnum
If \tcode{D} is trivially copyable,
-@@ -13087,7 +13087,7 @@ namespace std {
+@@ -13101,7 +13101,7 @@ namespace std {
\pnum
This class meets the requirements of
@@ -10747,7 +10747,7 @@ index bec330ff..da485dc5 100644
provides regions of RCU protection.
\begin{example}
\begin{codeblock}
-@@ -13235,8 +13235,8 @@ the expression \tcode{d(p)} is well-formed.
+@@ -13249,8 +13249,8 @@ the expression \tcode{d(p)} is well-formed.
\pnum
\expects
@@ -10758,7 +10758,7 @@ index bec330ff..da485dc5 100644
\pnum
\effects
-@@ -13428,7 +13428,7 @@ that adds specializations for \tcode{hazard_pointer_obj_base} is undefined.
+@@ -13442,7 +13442,7 @@ that adds specializations for \tcode{hazard_pointer_obj_base} is undefined.
\pnum
\tcode{D} shall meet the requirements for
@@ -10981,7 +10981,7 @@ index f52ab7f4..c0a4aaf9 100644
\end{note}
\end{itemdescr}
diff --git a/source/utilities.tex b/source/utilities.tex
-index b79fc8d3..76b19166 100644
+index 78087710..722b6077 100644
--- a/source/utilities.tex
+++ b/source/utilities.tex
@@ -258,9 +258,9 @@ template
@@ -11321,7 +11321,7 @@ index b79fc8d3..76b19166 100644
but if so, their copy assignment operators are
constexpr functions that do not throw exceptions.
-@@ -13816,7 +13816,7 @@ Let \tcode{FD} be \tcode{decay_t}.
+@@ -13815,7 +13815,7 @@ Let \tcode{FD} be \tcode{decay_t}.
\pnum
\expects
@@ -11330,7 +11330,7 @@ index b79fc8d3..76b19166 100644
\pnum
\ensures
-@@ -14241,9 +14241,9 @@ Let \tcode{VT} be \tcode{decay_t}.
+@@ -14240,9 +14240,9 @@ Let \tcode{VT} be \tcode{decay_t}.
\pnum
\expects
@@ -11342,7 +11342,7 @@ index b79fc8d3..76b19166 100644
\pnum
\ensures
-@@ -14293,9 +14293,9 @@ Let \tcode{VT} be \tcode{decay_t}.
+@@ -14292,9 +14292,9 @@ Let \tcode{VT} be \tcode{decay_t}.
\pnum
\expects
@@ -11354,7 +11354,7 @@ index b79fc8d3..76b19166 100644
\pnum
\ensures
-@@ -14335,9 +14335,9 @@ Let \tcode{VT} be \tcode{decay_t}.
+@@ -14334,9 +14334,9 @@ Let \tcode{VT} be \tcode{decay_t}.
\pnum
\expects
@@ -11366,7 +11366,7 @@ index b79fc8d3..76b19166 100644
\pnum
\ensures
-@@ -14659,8 +14659,8 @@ Let \tcode{VT} be \tcode{decay_t}.
+@@ -14658,8 +14658,8 @@ Let \tcode{VT} be \tcode{decay_t}.
\pnum
\expects
@@ -11377,7 +11377,7 @@ index b79fc8d3..76b19166 100644
\pnum
\ensures
-@@ -14715,8 +14715,8 @@ Let \tcode{VT} be \tcode{decay_t}.
+@@ -14714,8 +14714,8 @@ Let \tcode{VT} be \tcode{decay_t}.
\pnum
\expects
@@ -11388,7 +11388,7 @@ index b79fc8d3..76b19166 100644
\pnum
\ensures
-@@ -14761,8 +14761,8 @@ Let \tcode{VT} be \tcode{decay_t}.
+@@ -14760,8 +14760,8 @@ Let \tcode{VT} be \tcode{decay_t}.
\pnum
\expects
@@ -11399,7 +11399,7 @@ index b79fc8d3..76b19166 100644
\pnum
\ensures
-@@ -15277,7 +15277,7 @@ provided to the function call operator.
+@@ -15276,7 +15276,7 @@ provided to the function call operator.
\pnum
Each specialization of a class template specified in \ref{func.search}
@@ -11408,7 +11408,7 @@ index b79fc8d3..76b19166 100644
Template parameters named
\begin{itemize}
\item \tcode{ForwardIterator},
-@@ -15291,7 +15291,7 @@ Template parameters named
+@@ -15290,7 +15290,7 @@ Template parameters named
of templates specified in
\ref{func.search} shall meet the same requirements and semantics as
specified in \ref{algorithms.general}.
@@ -11417,7 +11417,7 @@ index b79fc8d3..76b19166 100644
requirements (\tref{cpp17.hash}).
\pnum
-@@ -15400,9 +15400,9 @@ boyer_moore_searcher(RandomAccessIterator1 pat_first,
+@@ -15399,9 +15399,9 @@ boyer_moore_searcher(RandomAccessIterator1 pat_first,
\pnum
\expects
The value type of \tcode{RandomAccessIterator1} meets
@@ -11430,7 +11430,7 @@ index b79fc8d3..76b19166 100644
\pnum
Let \tcode{V} be \tcode{iterator_traits::val\-ue_type}.
-@@ -15501,8 +15501,8 @@ boyer_moore_horspool_searcher(RandomAccessIterator1 pat_first,
+@@ -15500,8 +15500,8 @@ boyer_moore_horspool_searcher(RandomAccessIterator1 pat_first,
\begin{itemdescr}
\pnum
\expects
@@ -11441,7 +11441,7 @@ index b79fc8d3..76b19166 100644
\pnum
Let \tcode{V} be \tcode{iterator_traits::val\-ue_type}.
-@@ -15575,7 +15575,7 @@ as the default hash function.
+@@ -15574,7 +15574,7 @@ as the default hash function.
Each specialization of \tcode{hash} is either enabled or disabled,
as described below.
\begin{note}
@@ -11450,7 +11450,7 @@ index b79fc8d3..76b19166 100644
disabled specializations do not.
\end{note}
Each header that declares the template \tcode{hash}
-@@ -15602,17 +15602,17 @@ Disabled specializations of \tcode{hash}
+@@ -15601,17 +15601,17 @@ Disabled specializations of \tcode{hash}
are not function object types\iref{function.objects}.
\begin{note}
This means that the specialization of \tcode{hash} exists, but
@@ -11477,10 +11477,10 @@ index b79fc8d3..76b19166 100644
2.43.0
-From 5abd235667d32d8257596ac8c1c4204c65cde051 Mon Sep 17 00:00:00 2001
+From fef073bd6ac7704e98c783ea6444c14a160f8cbf Mon Sep 17 00:00:00 2001
From: Eelis van der Weegen
Date: Sun, 28 Jul 2024 11:08:01 +0200
-Subject: [PATCH 09/10] Remove awkward \linebreaks.
+Subject: [PATCH 9/9] Remove awkward \linebreaks.
---
source/algorithms.tex | 4 ++--
@@ -11495,7 +11495,7 @@ Subject: [PATCH 09/10] Remove awkward \linebreaks.
9 files changed, 68 insertions(+), 69 deletions(-)
diff --git a/source/algorithms.tex b/source/algorithms.tex
-index 3dcc8907..cf914a0c 100644
+index 42bc0626..4fa0e6ac 100644
--- a/source/algorithms.tex
+++ b/source/algorithms.tex
@@ -7070,7 +7070,7 @@ Let:
@@ -11517,7 +11517,7 @@ index 3dcc8907..cf914a0c 100644
\pnum
diff --git a/source/containers.tex b/source/containers.tex
-index e49a887b..492a1a7d 100644
+index 1e5a9871..a1ea4d5c 100644
--- a/source/containers.tex
+++ b/source/containers.tex
@@ -1456,7 +1456,7 @@ Each iterator in the range \tcode{rg} is dereferenced exactly once.
@@ -11548,7 +11548,7 @@ index e49a887b..492a1a7d 100644
\item
Assigns
\keyword{nullptr} to \tcode{nh.ptr_} and assigns \tcode{nullopt} to
-@@ -7467,14 +7466,14 @@ template
+@@ -7468,14 +7467,14 @@ template
\pnum
\expects
\tcode{T} is \oldconcept{EmplaceConstructible} into \tcode{forward_list}
@@ -11565,7 +11565,7 @@ index e49a887b..492a1a7d 100644
\pnum
\returns
-@@ -10633,7 +10632,7 @@ template
+@@ -10634,7 +10633,7 @@ template
\pnum
The expression
\tcode{\exposid{is-vector-bool-reference}} is \tcode{true}
@@ -11574,7 +11574,7 @@ index e49a887b..492a1a7d 100644
for some type \tcode{Alloc} and
\tcode{vector} is not a program-defined specialization.
\end{itemdescr}
-@@ -12025,7 +12024,7 @@ there is no effect.
+@@ -12026,7 +12025,7 @@ there is no effect.
Otherwise, let \tcode{r} be \tcode{equal_range(k)}.
Constructs an object \tcode{u} of type \tcode{value_type} with
\tcode{piecewise_construct, forward_as_tuple(std::forward(k)),
@@ -11583,7 +11583,7 @@ index e49a887b..492a1a7d 100644
If \tcode{equal_range(u.first) == r} is \tcode{false},
the behavior is undefined.
Inserts \tcode{u} into \tcode{*this}.
-@@ -17511,7 +17510,7 @@ template
+@@ -17513,7 +17512,7 @@ template
\pnum
\effects
Equivalent to \tcode{flat_map(sorted_unique, key_cont, mapped_cont)} and
@@ -11592,7 +11592,7 @@ index e49a887b..492a1a7d 100644
except that \tcode{\exposid{c}.keys} and \tcode{\exposid{c}.values} are constructed
with uses-allocator construction\iref{allocator.uses.construction}.
-@@ -17695,7 +17694,7 @@ template constexpr pair emplace(Args&&... args);
+@@ -17697,7 +17696,7 @@ template constexpr pair emplace(Args&&... args);
\pnum
\effects
Initializes an object \tcode{t} of type \tcode{pair}
@@ -11601,7 +11601,7 @@ index e49a887b..492a1a7d 100644
if the map already contains an element
whose key is equivalent to \tcode{t.first},
\tcode{*this} is unchanged.
-@@ -17972,7 +17971,7 @@ template
+@@ -17974,7 +17973,7 @@ template
\effects
If the map already contains an element \tcode{e}
whose key is equivalent to \tcode{k},
@@ -11610,7 +11610,7 @@ index e49a887b..492a1a7d 100644
Otherwise, equivalent to
\begin{codeblock}
try_emplace(std::forward(k), std::forward(obj))
-@@ -18027,7 +18026,7 @@ an object \tcode{u}, for which \tcode{find(k) == find(u)} is \tcode{true}.
+@@ -18029,7 +18028,7 @@ an object \tcode{u}, for which \tcode{find(k) == find(u)} is \tcode{true}.
\effects
If the map already contains an element \tcode{e}
whose key is equivalent to \tcode{k},
@@ -11619,7 +11619,7 @@ index e49a887b..492a1a7d 100644
Otherwise, equivalent to
\begin{codeblock}
try_emplace(std::forward(k), std::forward(obj))
-@@ -18641,14 +18640,14 @@ template
+@@ -18643,14 +18642,14 @@ template
\pnum
\effects
Equivalent to \tcode{flat_multimap(key_cont, mapped_cont)} and
@@ -11636,7 +11636,7 @@ index e49a887b..492a1a7d 100644
\end{itemdescr}
\indexlibraryctor{flat_multimap}%
-@@ -23209,7 +23208,7 @@ is representable as a value of type \tcode{index_type.}
+@@ -23211,7 +23210,7 @@ is representable as a value of type \tcode{index_type.}
\item
If \exposid{rank_} is greater than one,
then the product of
@@ -11645,7 +11645,7 @@ index e49a887b..492a1a7d 100644
all values \tcode{ext.extent($k$)}
with $k$ in the range of \range{1}{\exposid{rank_}}
is representable as a value of type \tcode{index_type}.
-@@ -23288,7 +23287,7 @@ template
+@@ -23290,7 +23289,7 @@ template
\item
If \exposid{rank_} is greater than \tcode{1} and
\tcode{padding_value} does not equal \tcode{dynamic_extent},
@@ -11654,7 +11654,7 @@ index e49a887b..492a1a7d 100644
\begin{codeblock}
@\exposid{LEAST-MULTIPLE-AT-LEAST}@(padding_value,
extents_type::@\exposid{index-cast}@(other.extents().extent(0)))
-@@ -23356,7 +23355,7 @@ is \tcode{true}.
+@@ -23358,7 +23357,7 @@ is \tcode{true}.
\item
If \exposid{rank_} is greater than 1 and
\tcode{padding_value} does not equal \tcode{dynamic_extent},
@@ -11663,7 +11663,7 @@ index e49a887b..492a1a7d 100644
\begin{codeblock}
@\exposid{LEAST-MULTIPLE-AT-LEAST}@(padding_value,
extents_type::@\exposid{index-cast}@(other.extent(0)))
-@@ -23754,7 +23753,7 @@ Implementations should not store this value
+@@ -23756,7 +23755,7 @@ Implementations should not store this value
if \exposid{static-padding-stride} is not \tcode{dynamic_extent}.
\begin{note}
Using \tcode{extents}
@@ -11672,7 +11672,7 @@ index e49a887b..492a1a7d 100644
would achieve this.
\end{note}
\end{itemdescr}
-@@ -23837,13 +23836,13 @@ is representable as a value of type \tcode{index_type}.
+@@ -23839,13 +23838,13 @@ is representable as a value of type \tcode{index_type}.
\item
If \exposid{rank_} is greater than one,
then the product of
@@ -11688,7 +11688,7 @@ index e49a887b..492a1a7d 100644
\end{itemize}
\pnum
-@@ -23916,7 +23915,7 @@ template
+@@ -23918,7 +23917,7 @@ template
\item
If \exposid{rank_} is greater than 1 and
\tcode{padding_value} does not equal \tcode{dynamic_extent},
@@ -11697,7 +11697,7 @@ index e49a887b..492a1a7d 100644
\begin{codeblock}
@\exposid{LEAST-MULTIPLE-AT-LEAST}@(padding_value,
extents_type::@\exposid{index-cast}@(other.extents().extent(@\exposid{rank_}@ - 1)))
-@@ -23984,7 +23983,7 @@ is \tcode{true}.
+@@ -23986,7 +23985,7 @@ is \tcode{true}.
\item
If \exposid{rank_} is greater than 1 and
\tcode{padding_value} does not equal \tcode{dynamic_extent},
@@ -11706,7 +11706,7 @@ index e49a887b..492a1a7d 100644
\begin{codeblock}
@\exposid{LEAST-MULTIPLE-AT-LEAST}@(padding_value,
extents_type::@\exposid{index-cast}@(other.extent(@\exposid{rank_}@ - 1)))
-@@ -25644,7 +25643,7 @@ for which \tcode{\exposid{map-rank}[$k$]} is not \tcode{dynamic_extent},
+@@ -25646,7 +25645,7 @@ for which \tcode{\exposid{map-rank}[$k$]} is not \tcode{dynamic_extent},
\item
\tcode{stride(k) * \exposid{de-ice}($s_k$.stride)}
if $S_k$ is a specialization of \tcode{strided_slice} and
@@ -11715,7 +11715,7 @@ index e49a887b..492a1a7d 100644
\item
otherwise, \tcode{stride($k$)}.
\end{itemize}
-@@ -26042,11 +26041,11 @@ is well-formed when treated as an unevaluated operand.
+@@ -26044,11 +26043,11 @@ is well-formed when treated as an unevaluated operand.
\begin{itemize}
\item
\tcode{decltype(submdspan_mapping(src.mapping(), slices...))}
@@ -11729,7 +11729,7 @@ index e49a887b..492a1a7d 100644
is \tcode{true}.
\item
-@@ -26076,11 +26075,11 @@ all of the following are \tcode{true}:
+@@ -26078,11 +26077,11 @@ all of the following are \tcode{true}:
\item
$0 \le \tcode{\exposid{first_}(slices...)}$
$\le \tcode{\exposid{last_}<$k$>(src.extents(), slices...)}$
@@ -11744,10 +11744,10 @@ index e49a887b..492a1a7d 100644
\item
diff --git a/source/exec.tex b/source/exec.tex
-index 887279b0..aff106e0 100644
+index 587fdbf0..f6852a32 100644
--- a/source/exec.tex
+++ b/source/exec.tex
-@@ -3239,7 +3239,7 @@ except that \tcode{sch} is evaluated only once.
+@@ -3247,7 +3247,7 @@ except that \tcode{sch} is evaluated only once.
Let \tcode{out_sndr} and \tcode{env} be subexpressions
such that \tcode{OutSndr} is \tcode{decltype((out_sndr))}.
If \tcode{\exposconcept{sender-for}} is \tcode{false},
@@ -11756,7 +11756,7 @@ index 887279b0..aff106e0 100644
\tcode{starts_on.transform_sender(out_sndr, env)} are ill-formed; otherwise
\begin{itemize}
\item
-@@ -3619,7 +3619,7 @@ except that \tcode{sndr} is evaluated only once.
+@@ -3627,7 +3627,7 @@ except that \tcode{sndr} is evaluated only once.
\pnum
Let \tcode{out_sndr} and \tcode{env} be subexpressions,
let \tcode{OutSndr} be \tcode{decltype((out_sndr))}, and
@@ -11765,7 +11765,7 @@ index 887279b0..aff106e0 100644
If \tcode{\exposconcept{sender-for}} is \tcode{false},
then the expressions \tcode{on.transform_env(out_sndr, env)} and
\tcode{on.transform_sender(out_sndr, env)} are ill-formed.
-@@ -3761,7 +3761,7 @@ Let the expression \exposid{then-cpo} be one of
+@@ -3769,7 +3769,7 @@ Let the expression \exposid{then-cpo} be one of
For subexpressions \tcode{sndr} and \tcode{f},
if \tcode{decltype((sndr))} does not satisfy \libconcept{sender}, or
\tcode{decltype((f))} does not satisfy \exposconcept{movable-value},
@@ -11774,7 +11774,7 @@ index 887279b0..aff106e0 100644
\pnum
Otherwise,
-@@ -4066,7 +4066,7 @@ is initialized with a callable object equivalent to the following:
+@@ -4074,7 +4074,7 @@ is initialized with a callable object equivalent to the following:
Let \tcode{sndr} and \tcode{env} be subexpressions, and
let \tcode{Sndr} be \tcode{decltype((sndr))}.
If
@@ -11783,7 +11783,7 @@ index 887279b0..aff106e0 100644
is \tcode{false},
then the expression \tcode{\exposid{let-cpo}.transform_env(sndr, env)}
is ill-formed.
-@@ -4681,7 +4681,7 @@ try {
+@@ -4689,7 +4689,7 @@ try {
\end{codeblock}
if the expression \tcode{\exposid{decayed-tuple}\{as...\}}
is potentially throwing;
@@ -11792,7 +11792,7 @@ index 887279b0..aff106e0 100644
\pnum
The expression \tcode{when_all_with_variant(sndrs...)}
-@@ -5724,7 +5724,7 @@ Equivalent to \tcode{\exposid{state}->\exposid{loop}.finish()}.
+@@ -5732,7 +5732,7 @@ Equivalent to \tcode{\exposid{state}->\exposid{loop}.finish()}.
\pnum
For a subexpression \tcode{sndr}, let \tcode{Sndr} be \tcode{decltype((sndr))}.
@@ -11802,7 +11802,7 @@ index 887279b0..aff106e0 100644
the expression \tcode{sync_wait.apply_sender(sndr)} is ill-formed;
otherwise, it is equivalent to:
diff --git a/source/memory.tex b/source/memory.tex
-index c59c2b55..e13a598f 100644
+index d574546f..f254eca5 100644
--- a/source/memory.tex
+++ b/source/memory.tex
@@ -1371,7 +1371,7 @@ A \tcode{tuple} value determined as follows:
@@ -11833,7 +11833,7 @@ index c59c2b55..e13a598f 100644
otherwise,
\begin{codeblock}
diff --git a/source/meta.tex b/source/meta.tex
-index ee96bf8f..c278d972 100644
+index b2188af9..7d111969 100644
--- a/source/meta.tex
+++ b/source/meta.tex
@@ -2530,7 +2530,7 @@ present as follows:
@@ -11846,10 +11846,10 @@ index ee96bf8f..c278d972 100644
\item Otherwise, if
diff --git a/source/numerics.tex b/source/numerics.tex
-index 0aac59a4..7ae9bd01 100644
+index f9579b68..55338c7e 100644
--- a/source/numerics.tex
+++ b/source/numerics.tex
-@@ -13802,7 +13802,7 @@ These functions correspond to the BLAS function \tcode{xNRM2}\supercite{blas1}.
+@@ -13803,7 +13803,7 @@ These functions correspond to the BLAS function \tcode{xNRM2}\supercite{blas1}.
\mandates
Let \tcode{a} be
\tcode{\exposid{abs-if-needed}(declval())}.
@@ -11858,7 +11858,7 @@ index 0aac59a4..7ae9bd01 100644
\pnum
\returns
-@@ -14008,7 +14008,7 @@ template
+@@ -14009,7 +14009,7 @@ template
\mandates
Let \tcode{a} be
\tcode{\exposid{abs-if-needed}(declval())}.
@@ -11868,7 +11868,7 @@ index 0aac59a4..7ae9bd01 100644
\pnum
diff --git a/source/ranges.tex b/source/ranges.tex
-index 8b0f4e38..fccb59d1 100644
+index 1ce5326c..1f3504a8 100644
--- a/source/ranges.tex
+++ b/source/ranges.tex
@@ -1452,7 +1452,7 @@ if \tcode{iterator_t} models \libconcept{forward_iterator},
@@ -11880,7 +11880,7 @@ index 8b0f4e38..fccb59d1 100644
For example,
it is possible for \tcode{ranges::reserve_hint(t)} to be well-defined for
an \libconceptx{approximate\-ly_sized_range}{approximately_sized_range} whose
-@@ -3671,7 +3671,7 @@ constexpr explicit repeat_view(piecewise_construct_t,
+@@ -3673,7 +3673,7 @@ constexpr explicit repeat_view(piecewise_construct_t,
Initializes \exposid{value_} with
\tcode{make_from_tuple(std::move(value_args))}
and
@@ -11889,7 +11889,7 @@ index 8b0f4e38..fccb59d1 100644
\tcode{make_from_tuple(std::move(bound_args))}.
The behavior is undefined if
\tcode{Bound} is not \tcode{unreachable_sentinel_t} and
-@@ -5913,7 +5913,7 @@ a specialization of \tcode{iota_view}\iref{range.iota.view}
+@@ -5915,7 +5915,7 @@ a specialization of \tcode{iota_view}\iref{range.iota.view}
that models \libconcept{random_access_range} and \libconcept{sized_range},
then
\tcode{iota_view(*ranges::begin(E),
@@ -11898,7 +11898,7 @@ index 8b0f4e38..fccb59d1 100644
except that \tcode{E} is evaluated only once.
\item
-@@ -6389,7 +6389,7 @@ if \tcode{T} is
+@@ -6391,7 +6391,7 @@ if \tcode{T} is
a specialization of \tcode{subrange}
that models \libconcept{random_access_range} and \libconcept{sized_range},
then
@@ -11907,7 +11907,7 @@ index 8b0f4e38..fccb59d1 100644
\exposid{to-unsigned-like}(ranges::distance(E) -
std::min(ranges::distance(E), F)))},
except that \tcode{E} and \tcode{F} are each evaluated only once.
-@@ -7441,7 +7441,7 @@ Let \placeholder{OUTERC} denote
+@@ -7443,7 +7443,7 @@ Let \placeholder{OUTERC} denote
let \placeholder{INNERC} denote
\tcode{iterator_traits<\exposid{InnerIter}>::iterator_category}, and
let \placeholder{PATTERNC} denote
@@ -11916,7 +11916,7 @@ index 8b0f4e38..fccb59d1 100644
\item
If
\begin{codeblock}
-@@ -7950,7 +7950,7 @@ constexpr explicit lazy_split_view(R&& r, range_value_t e);
+@@ -7952,7 +7952,7 @@ constexpr explicit lazy_split_view(R&& r, range_value_t e);
\pnum
\effects
Initializes \exposid{base_} with \tcode{views::all(std::forward(r))}, and
@@ -11925,7 +11925,7 @@ index 8b0f4e38..fccb59d1 100644
\end{itemdescr}
\rSec3[range.lazy.split.outer]{Class template \tcode{lazy_split_view::\exposid{outer-iterator}}}
-@@ -8261,7 +8261,7 @@ Otherwise, the \grammarterm{typedef-name} \tcode{iterator_category} denotes:
+@@ -8263,7 +8263,7 @@ Otherwise, the \grammarterm{typedef-name} \tcode{iterator_category} denotes:
\begin{itemize}
\item
\tcode{forward_iterator_tag} if
@@ -11934,7 +11934,7 @@ index 8b0f4e38..fccb59d1 100644
\tcode{\libconcept{derived_from}};
\item otherwise, \tcode{iterator_traits>::iterator_category}.
\end{itemize}
-@@ -8481,7 +8481,7 @@ constexpr explicit split_view(R&& r, range_value_t e);
+@@ -8483,7 +8483,7 @@ constexpr explicit split_view(R&& r, range_value_t e);
\pnum
\effects
Initializes \exposid{base_} with \tcode{views::all(std::forward(r))}, and
@@ -11943,7 +11943,7 @@ index 8b0f4e38..fccb59d1 100644
\end{itemdescr}
\indexlibrarymember{begin}{split_view}
-@@ -9046,7 +9046,7 @@ then \tcode{iterator_concept} denotes \tcode{bidirectional_iterator_tag}.
+@@ -9048,7 +9048,7 @@ then \tcode{iterator_concept} denotes \tcode{bidirectional_iterator_tag}.
\item
Otherwise, if
\tcode{\exposconcept{all-forward}} is modeled,
@@ -11952,7 +11952,7 @@ index 8b0f4e38..fccb59d1 100644
\item
Otherwise, \tcode{iterator_concept} denotes \tcode{input_iterator_tag}.
\end{itemize}
-@@ -9072,14 +9072,14 @@ let \tcode{Cs} denote the pack of types
+@@ -9074,14 +9074,14 @@ let \tcode{Cs} denote the pack of types
\begin{itemize}
\item
If
@@ -11970,7 +11970,7 @@ index 8b0f4e38..fccb59d1 100644
\item
Otherwise, if
\tcode{(\libconcept{derived_from} \&\& ...)}
-@@ -9531,11 +9531,11 @@ Let
+@@ -9533,11 +9533,11 @@ Let
%FIXME This is hard to parse.
If \tcode{$i_\tcode{x}$ > $i_\tcode{y}$}, let
\tcode{$d_\tcode{y}$} be
@@ -11985,7 +11985,7 @@ index 8b0f4e38..fccb59d1 100644
for every integer \tcode{$i$} in the range
\range{$i_\tcode{y}$ + 1}{$i_\tcode{x}$}
if there is any, and
-@@ -9578,7 +9578,7 @@ friend constexpr difference_type operator-(const @\exposid{iterator}@& x, defaul
+@@ -9580,7 +9580,7 @@ friend constexpr difference_type operator-(const @\exposid{iterator}@& x, defaul
Let
\tcode{$i_\tcode{x}$} denote \tcode{x.\exposid{it_}.index()},
\tcode{$d_\tcode{x}$} be
@@ -11994,7 +11994,7 @@ index 8b0f4e38..fccb59d1 100644
Let \tcode{$s$} denote the sum of the sizes of all the ranges
\tcode{std::get<$i$>(x.\exposid{parent_}->\exposid{views_})}
for every integer \tcode{$i$} in the range
-@@ -9735,7 +9735,7 @@ is expression-equivalent to:
+@@ -9737,7 +9737,7 @@ is expression-equivalent to:
\begin{itemize}
\item
If \tcode{T} models \libconcept{contiguous_iterator},
@@ -12003,7 +12003,7 @@ index 8b0f4e38..fccb59d1 100644
\item
Otherwise, if \tcode{T} models \libconcept{random_access_iterator},
-@@ -13431,7 +13431,7 @@ is defined as follows:
+@@ -13433,7 +13433,7 @@ is defined as follows:
\item
If \tcode{invoke_result_t<\exposid{maybe-const}\&,
\exposid{REPEAT}(range_reference_t<\exposid{Base}>, N)...>}
@@ -12012,7 +12012,7 @@ index 8b0f4e38..fccb59d1 100644
\tcode{iterator_category} denotes \tcode{input_iterator_tag}.
\item
Otherwise, let \tcode{C} denote the type
-@@ -14542,7 +14542,7 @@ constexpr @\exposid{iterator}@(@\exposid{Parent}@* parent, iterator_t<@\exposid{
+@@ -14544,7 +14544,7 @@ constexpr @\exposid{iterator}@(@\exposid{Parent}@* parent, iterator_t<@\exposid{
\effects
Initializes \exposid{current_} with \tcode{current},
\exposid{end_} with \tcode{ranges::end(parent->\exposid{base_})},
@@ -12022,10 +12022,10 @@ index 8b0f4e38..fccb59d1 100644
\end{itemdescr}
diff --git a/source/threads.tex b/source/threads.tex
-index da485dc5..fe9533b5 100644
+index c897fccc..e2d183ce 100644
--- a/source/threads.tex
+++ b/source/threads.tex
-@@ -3517,7 +3517,7 @@ constexpr bool compare_exchange_strong(value_type& expected, value_type desired,
+@@ -3528,7 +3528,7 @@ constexpr bool compare_exchange_strong(value_type& expected, value_type desired,
\tcode{failure} is
\tcode{memory_order::relaxed},
\tcode{memory_order::acquire}, or
@@ -12034,7 +12034,7 @@ index da485dc5..fe9533b5 100644
\pnum
\effects
-@@ -4792,7 +4792,7 @@ For the \tcode{volatile} overload of this function,
+@@ -4803,7 +4803,7 @@ For the \tcode{volatile} overload of this function,
\tcode{failure} is
\tcode{memory_order::relaxed},
\tcode{memory_order::acquire}, or
@@ -12043,7 +12043,7 @@ index da485dc5..fe9533b5 100644
\pnum
\effects
-@@ -6313,7 +6313,7 @@ constexpr bool compare_exchange_strong(shared_ptr& expected, shared_ptr de
+@@ -6327,7 +6327,7 @@ constexpr bool compare_exchange_strong(shared_ptr& expected, shared_ptr de
\tcode{failure} is
\tcode{memory_order::relaxed},
\tcode{memory_order::acquire}, or
@@ -12052,7 +12052,7 @@ index da485dc5..fe9533b5 100644
\pnum
\effects
-@@ -6629,7 +6629,7 @@ constexpr bool compare_exchange_strong(weak_ptr& expected, weak_ptr desire
+@@ -6643,7 +6643,7 @@ constexpr bool compare_exchange_strong(weak_ptr& expected, weak_ptr desire
\tcode{failure} is
\tcode{memory_order::relaxed},
\tcode{memory_order::acquire}, or
@@ -12062,7 +12062,7 @@ index da485dc5..fe9533b5 100644
\pnum
\effects
diff --git a/source/utilities.tex b/source/utilities.tex
-index 76b19166..a53d2ff0 100644
+index 722b6077..45444ce6 100644
--- a/source/utilities.tex
+++ b/source/utilities.tex
@@ -2062,7 +2062,7 @@ equals \tcode{tuple_size_v>},
@@ -12101,7 +12101,7 @@ index 76b19166..a53d2ff0 100644
\pnum
\returns
-@@ -14989,7 +14989,7 @@ that models \libconcept{copyable}.
+@@ -14988,7 +14988,7 @@ that models \libconcept{copyable}.
\pnum
Within \ref{func.wrap.ref},
\tcode{\placeholder{call-args}} is an argument pack with elements such that
@@ -12113,54 +12113,3 @@ index 76b19166..a53d2ff0 100644
--
2.43.0
-
-From da283a7465ff0f89f3f02dbcdcfa5a40feebc9d2 Mon Sep 17 00:00:00 2001
-From: timsong-cpp
-Date: Fri, 1 Aug 2025 02:09:27 -0500
-Subject: [PATCH 10/10] Revert "[intro] Special page header before Clause 1
- (#6070)"
-
-This reverts commit 0b41c12760d8079ee4c460df6ddecaf220f2dfb6.
----
- source/intro.tex | 11 -----------
- source/layout.tex | 2 +-
- 2 files changed, 1 insertion(+), 12 deletions(-)
-
-diff --git a/source/intro.tex b/source/intro.tex
-index abc66134..4d40f89b 100644
---- a/source/intro.tex
-+++ b/source/intro.tex
-@@ -1,17 +1,6 @@
- %!TEX root = std.tex
-
--\clearpage
--\bigskip\noindent\textlarger{\textbf{Programming languages --- \Cpp{}}}
--\bigskip\bigskip
--
--\begingroup
--\let\clearpage\relax
- \rSec0[intro.scope]{Scope}
--\endgroup
--\copypagestyle{cpppageone}{cpppage}
--\makeoddhead{cpppageone}{\textbf{WORKING DRAFT}}{}{\leaders\hrule height 2pt\hfill\kern0pt\\\textbf{\docno}}
--\makeheadrule{cpppageone}{\textwidth}{2pt}
--\thispagestyle{cpppageone}
-
- \pnum
- \indextext{scope|(}%
-diff --git a/source/layout.tex b/source/layout.tex
-index 98564d8b..1f82bd20 100644
---- a/source/layout.tex
-+++ b/source/layout.tex
-@@ -10,7 +10,7 @@
- %%--------------------------------------------------
- %% set header and footer positions and sizes
-
--\setheadfoot{3\onelineskip}{4\onelineskip}
-+\setheadfoot{\onelineskip}{4\onelineskip}
- \setheaderspaces{*}{2\onelineskip}{*}
-
- %%--------------------------------------------------
---
-2.43.0
-
diff --git a/htmlgen_code.patch b/htmlgen_code.patch
deleted file mode 100644
index a500da21f6..0000000000
--- a/htmlgen_code.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6c9496d048c4c3534524ea3212c780776844f025 Mon Sep 17 00:00:00 2001
-From: timsong-cpp
-Date: Fri, 25 Jul 2025 09:03:35 -0500
-Subject: [PATCH] Handle \bot
-
----
- RawDocument.hs | 2 +-
- Render.hs | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/RawDocument.hs b/RawDocument.hs
-index c1f82bc..935878c 100644
---- a/RawDocument.hs
-+++ b/RawDocument.hs
-@@ -195,7 +195,7 @@ storeCmds =
- "phi int theta zeta FlushAndPrintGrammar break backslash centering " ++
- "normalbaselineskip land lor mapsto normalfont textmu tablerefname figurerefname newline " ++
- "obeyspaces bnfindent vdots tabcolsep columnbreak emergencystretch commentellip " ++
-- "gamma widowpenalties sffamily parskip left right `")
-+ "gamma widowpenalties sffamily parskip left right bot `")
- , (1, "hspace footnote textit textrm textnormal texttt textbf ensuremath ref ref* mbox bibitem mathop " ++
- "terminal literalterminal noncxxterminal textsl textsc textsf text term overline " ++
- "tcode noncxxtcode literaltcode footnotetext microtypesetup cline mathtt mathit mathrm mathsf " ++
-diff --git a/Render.hs b/Render.hs
-index 4b34cb6..2df6e74 100644
---- a/Render.hs
-+++ b/Render.hs
-@@ -128,6 +128,7 @@ simpleMacros =
- , (">" , " ")
- , ("bnfindent" , " ")
- , ("\n" , "\n")
-+ , ("bot" , "⊥")
- ]
- ++ [(n, Text.pack [c]) | (n, c) <- greekAlphabet]
-
---
-2.43.0
-
diff --git a/lastbuild.sig b/lastbuild.sig
index 51c10801b3..a17bd2b562 100644
--- a/lastbuild.sig
+++ b/lastbuild.sig
@@ -1,4 +1,3 @@
-htmlgen eee5307c45c04761ef5c27956cbed742e08e5fb4
-draft c3bd02a2e44c53c8fe7ba5b48a94bacc9186235d
-b76cce13dbf7885170532b899c35ef6d11ffb71c htmlgen.patch
-cc80936cb44795c5712f5b4d193389be54551403 htmlgen_code.patch
+htmlgen d76984e59af74768c3ce732b5517325f10807a57
+draft 2f53f313f5b1aac5f9547b39e78863e23ca9c047
+fbaf0fe6216effbdbbcc47732adc950955af5a05 htmlgen.patch