From 3589926d959e92a286ea1fec3fbc2c8facc11b8e Mon Sep 17 00:00:00 2001 From: Jens Maurer Date: Tue, 14 May 2024 22:41:24 +0200 Subject: [PATCH 1/2] [std] Remove colons in front of bulleted lists --- source/algorithms.tex | 4 ++-- source/basic.tex | 26 +++++++++++++------------- source/classes.tex | 14 +++++++------- source/concepts.tex | 8 ++++---- source/declarations.tex | 2 +- source/expressions.tex | 4 ++-- source/iostreams.tex | 8 ++++---- source/iterators.tex | 8 ++++---- source/lib-intro.tex | 6 +++--- source/meta.tex | 4 ++-- source/modules.tex | 2 +- source/ranges.tex | 2 +- source/regex.tex | 2 +- source/support.tex | 8 ++++---- source/templates.tex | 4 ++-- source/threads.tex | 14 +++++++------- source/time.tex | 2 +- 17 files changed, 59 insertions(+), 59 deletions(-) diff --git a/source/algorithms.tex b/source/algorithms.tex index 58377c00dd..4dc8975eb3 100644 --- a/source/algorithms.tex +++ b/source/algorithms.tex @@ -4403,7 +4403,7 @@ \pnum \complexity -No applications of the corresponding predicate and projections if: +No applications of the corresponding predicate and projections if \begin{itemize} \item for the first overload, @@ -6608,7 +6608,7 @@ from position \tcode{first + i} into position \tcode{first + n + i} for each non-negative integer \tcode{i < (last - first) - n}. Does so in order starting -from \tcode{i = (last - first) - n - 1} and proceeding to \tcode{i = 0} if: +from \tcode{i = (last - first) - n - 1} and proceeding to \tcode{i = 0} if \begin{itemize} \item for the overload in namespace \tcode{std} diff --git a/source/basic.tex b/source/basic.tex index f33d0dc648..8bc2e04fcf 100644 --- a/source/basic.tex +++ b/source/basic.tex @@ -497,7 +497,7 @@ \pnum A local entity\iref{basic.pre} -is \defn{odr-usable} in a scope\iref{basic.scope.scope} if: +is \defn{odr-usable} in a scope\iref{basic.scope.scope} if \begin{itemize} \item either the local entity is not \tcode{*\keyword{this}}, or an enclosing class or non-lambda function parameter scope exists and, @@ -607,7 +607,7 @@ \begin{note} The rules for declarations and expressions describe in which contexts complete class types are required. A class -type \tcode{T} must be complete if: +type \tcode{T} must be complete if \begin{itemize} \item an object of type \tcode{T} is defined\iref{basic.def}, or \item a non-static class data member of type \tcode{T} is @@ -909,7 +909,7 @@ \pnum Two non-static member functions have -\defnadjx{corresponding}{object parameters}{object parameter} if: +\defnadjx{corresponding}{object parameters}{object parameter} if \begin{itemize} \item exactly one is an implicit object member function @@ -922,7 +922,7 @@ \end{itemize} \indextext{template!function!corresponding object parameter}% Two non-static member function templates have -\defnadjx{corresponding}{object parameters}{object parameter} if: +\defnadjx{corresponding}{object parameters}{object parameter} if \begin{itemize} \item exactly one is an implicit object member function @@ -963,7 +963,7 @@ and they do not declare corresponding overloads. \end{itemize} Two function or function template declarations declare -\defn{corresponding overloads} if: +\defn{corresponding overloads} if \begin{itemize} \item both declare functions with the same non-object-parameter-type-list, @@ -3206,7 +3206,7 @@ in storage associated with a member subobject or array element \placeholder{e} (which may or may not be within its lifetime), the created object -is a subobject of \placeholder{e}'s containing object if: +is a subobject of \placeholder{e}'s containing object if \begin{itemize} \item the lifetime of \placeholder{e}'s containing object has begun and not ended, and @@ -3223,7 +3223,7 @@ of type ``array of $N$ \tcode{\keyword{unsigned} \keyword{char}}'' or of type ``array of $N$ \tcode{std::byte}''\iref{cstddef.syn}, that array \defn{provides storage} -for the created object if: +for the created object if \begin{itemize} \item the lifetime of \placeholder{e} has begun and not ended, and @@ -3266,7 +3266,7 @@ \pnum \indextext{object!nested within}% -An object \placeholder{a} is \defn{nested within} another object \placeholder{b} if: +An object \placeholder{a} is \defn{nested within} another object \placeholder{b} if \begin{itemize} \item \placeholder{a} is a subobject of \placeholder{b}, or @@ -3551,7 +3551,7 @@ if the pointer were of type \tcode{\keyword{void}*} is well-defined. Indirection through such a pointer is permitted but the resulting lvalue may only be used in limited ways, as described below. The -program has undefined behavior if: +program has undefined behavior if \begin{itemize} \item the pointer is used as the operand of a \grammarterm{delete-expression}, @@ -3614,7 +3614,7 @@ a glvalue refers to allocated storage\iref{basic.stc.dynamic.allocation}, and using the properties of the glvalue that do not depend on its value is -well-defined. The program has undefined behavior if: +well-defined. The program has undefined behavior if \begin{itemize} \item the glvalue is used to access the object, or \item the glvalue is used to call a non-static member function of the object, or @@ -3625,7 +3625,7 @@ \end{itemize} \pnum -An object $o_1$ is \defn{transparently replaceable} by an object $o_2$ if: +An object $o_1$ is \defn{transparently replaceable} by an object $o_2$ if \begin{itemize} \item the storage that $o_2$ occupies exactly overlays the storage that $o_1$ occupied, and @@ -5527,7 +5527,7 @@ \end{note} \pnum -Two objects \placeholder{a} and \placeholder{b} are \defn{pointer-interconvertible} if: +Two objects \placeholder{a} and \placeholder{b} are \defn{pointer-interconvertible} if \begin{itemize} \item they are the same object, or @@ -6304,7 +6304,7 @@ \pnum An evaluation $A$ \defn{happens before} an evaluation $B$ -(or, equivalently, $B$ \defn{happens after} $A$) if: +(or, equivalently, $B$ \defn{happens after} $A$) if \begin{itemize} \item $A$ is sequenced before $B$, or \item $A$ inter-thread happens before $B$. diff --git a/source/classes.tex b/source/classes.tex index c9da349462..261fd62e77 100644 --- a/source/classes.tex +++ b/source/classes.tex @@ -1058,7 +1058,7 @@ \end{example} \pnum -Two special member functions are of the same kind if: +Two special member functions are of the same kind if \begin{itemize} \item they are both default constructors, \item they are both copy or move constructors @@ -1224,7 +1224,7 @@ inline public member of its class. \pnum -A defaulted default constructor for class \tcode{X} is defined as deleted if: +A defaulted default constructor for class \tcode{X} is defined as deleted if \begin{itemize} \item any non-static data member with no default member initializer\iref{class.mem} is of reference type, @@ -1260,7 +1260,7 @@ \pnum A default constructor is \defnx{trivial}{constructor!default!trivial} -if it is not user-provided and if: +if it is not user-provided and if \begin{itemize} \item its class has no virtual functions\iref{class.virtual} and no virtual base @@ -1547,7 +1547,7 @@ \tcode{X} is trivial -if it is not user-provided and if: +if it is not user-provided and if \begin{itemize} \item class @@ -1831,7 +1831,7 @@ \tcode{X} is trivial -if it is not user-provided and if: +if it is not user-provided and if \begin{itemize} \item class @@ -2029,7 +2029,7 @@ \pnum A defaulted destructor for a class - \tcode{X} is defined as deleted if: + \tcode{X} is defined as deleted if \begin{itemize} \item any potentially constructed subobject has class type \tcode{M} (or possibly multi-dimensional array thereof) and @@ -2043,7 +2043,7 @@ \end{itemize} \pnum -A destructor is trivial if it is not user-provided and if: +A destructor is trivial if it is not user-provided and if \begin{itemize} \item the destructor is not virtual, diff --git a/source/concepts.tex b/source/concepts.tex index 0508cb542b..fe54447105 100644 --- a/source/concepts.tex +++ b/source/concepts.tex @@ -420,7 +420,7 @@ let \tcode{u1} and \tcode{u2} be equality-preserving expressions such that \tcode{decltype((u1))} and \tcode{decltype((u2))} are each \tcode{U}. \tcode{T} and \tcode{U} model \tcode{\libconcept{common_reference_with}} -only if: +only if \begin{itemize} \item \tcode{C(t1)} equals \tcode{C(t2)} if and only if \tcode{t1} equals \tcode{t2}, and @@ -473,7 +473,7 @@ let \tcode{u1} and \tcode{u2} be equality-preserving expressions such that \tcode{decltype((u1))} and \tcode{decltype((u2))} are each \tcode{U}. \tcode{T} and \tcode{U} model \tcode{\libconcept{common_with}} -only if: +only if \begin{itemize} \item \tcode{C(t1)} equals \tcode{C(t2)} if and only if \tcode{t1} equals \tcode{t2}, and @@ -881,7 +881,7 @@ \pnum Let \tcode{e} be an expression such that \tcode{decltype((e))} is \tcode{T}. -\tcode{T} models \exposconcept{boolean-testable-impl} only if: +\tcode{T} models \exposconcept{boolean-testable-impl} only if \begin{itemize} \item @@ -1024,7 +1024,7 @@ let \tcode{u1} and \tcode{u2} be equality-preserving expressions that are lvalues of type \tcode{remove_cvref_t}. \tcode{T} and \tcode{U} model -\tcode{\exposconcept{comparison-common-type-with}} only if: +\tcode{\exposconcept{comparison-common-type-with}} only if \begin{itemize} \item \tcode{\exposid{CONVERT_TO_LVALUE}(t1)} equals diff --git a/source/declarations.tex b/source/declarations.tex index 2079217bac..d0a330a9c8 100644 --- a/source/declarations.tex +++ b/source/declarations.tex @@ -888,7 +888,7 @@ \pnum \indextext{specifier!\idxcode{constexpr}!function}% \indextext{constexpr function}% -A function is \defn{constexpr-suitable} if: +A function is \defn{constexpr-suitable} if \begin{itemize} \item it is not a coroutine\iref{dcl.fct.def.coroutine}, and diff --git a/source/expressions.tex b/source/expressions.tex index 683b30137f..5115189f95 100644 --- a/source/expressions.tex +++ b/source/expressions.tex @@ -5301,7 +5301,7 @@ If the \grammarterm{expression} in a \grammarterm{noptr-new-declarator} is present, it is implicitly converted to \tcode{std::size_t}. \indextext{function!allocation}% -The value of the \grammarterm{expression} is invalid if: +The value of the \grammarterm{expression} is invalid if \begin{itemize} \item the expression is of non-class type and its value before converting to @@ -7842,7 +7842,7 @@ \end{example} \pnum -An object \tcode{a} is said to have \defnadj{constant}{destruction} if: +An object \tcode{a} is said to have \defnadj{constant}{destruction} if \begin{itemize} \item it is not of class type nor (possibly multidimensional) array thereof, or diff --git a/source/iostreams.tex b/source/iostreams.tex index 101e063a36..659a61521e 100644 --- a/source/iostreams.tex +++ b/source/iostreams.tex @@ -17271,7 +17271,7 @@ \impldef{effect of \tcode{filesystem::copy}}. \item -Otherwise, an error is reported as specified in~\ref{fs.err.report} if: +Otherwise, an error is reported as specified in~\ref{fs.err.report} if \begin{itemize} \item \tcode{exists(f)} is \tcode{false}, or \item \tcode{equivalent(from, to)} is \tcode{true}, or @@ -17429,7 +17429,7 @@ As follows: \begin{itemize} \item -Report an error as specified in~\ref{fs.err.report} if: +Report an error as specified in~\ref{fs.err.report} if \begin{itemize} \item \tcode{is_regular_file(from)} is \tcode{false}, or \item \tcode{exists(to)} is \tcode{true} and \tcode{is_regular_file(to)} is \tcode{false}, or @@ -17444,7 +17444,7 @@ \item Otherwise, copy the contents and attributes of the file \tcode{from} - resolves to, to the file \tcode{to} resolves to, if: + resolves to, to the file \tcode{to} resolves to, if \begin{itemize} \item \tcode{exists(to)} is \tcode{false}, or \item \tcode{(options \& copy_options::overwrite_existing) != copy_options::none}, or @@ -18568,7 +18568,7 @@ \begin{itemdescr} \pnum \effects -As if: +As if by: \begin{codeblock} error_code ec; file_status result = status(p, ec); diff --git a/source/iterators.tex b/source/iterators.tex index c59e2264c3..797cedf1d8 100644 --- a/source/iterators.tex +++ b/source/iterators.tex @@ -1829,7 +1829,7 @@ \pnum Two dereferenceable iterators \tcode{a} and \tcode{b} of type \tcode{X} -offer the \defn{multi-pass guarantee} if: +offer the \defn{multi-pass guarantee} if \begin{itemize} \item \tcode{a == b} implies \tcode{++a == ++b} and \item the expression @@ -1872,7 +1872,7 @@ \pnum Let \tcode{a} and \tcode{b} be equal objects of type \tcode{I}. -\tcode{I} models \libconcept{bidirectional_iterator} only if: +\tcode{I} models \libconcept{bidirectional_iterator} only if \begin{itemize} \item If \tcode{a} and \tcode{b} are decrementable, then all of the following are \tcode{true}: @@ -2021,7 +2021,7 @@ bidirectional.iterators,random.access.iterators}. \pnum -A type \tcode{X} meets the \defnoldconcept{Iterator} requirements if: +A type \tcode{X} meets the \defnoldconcept{Iterator} requirements if \begin{itemize} \item \tcode{X} meets the \oldconcept{CopyConstructible}, \oldconcept{CopyAssignable}, \oldconcept{Swappable}, and \oldconcept{Destructible} requirements\iref{utility.arg.requirements,swappable.requirements}, and @@ -2246,7 +2246,7 @@ \pnum Two dereferenceable iterators \tcode{a} and \tcode{b} of type \tcode{X} offer the -\defn{multi-pass guarantee} if: +\defn{multi-pass guarantee} if \begin{itemize} \item \tcode{a == b} implies \tcode{++a == ++b} and \item \tcode{X} is a pointer type or the expression diff --git a/source/lib-intro.tex b/source/lib-intro.tex index c4eef90633..096b430a21 100644 --- a/source/lib-intro.tex +++ b/source/lib-intro.tex @@ -1822,7 +1822,7 @@ denote an expression of type \tcode{U}. \pnum -An object \tcode{t} is \defn{swappable with} an object \tcode{u} if and only if: +An object \tcode{t} is \defn{swappable with} an object \tcode{u} if and only if \begin{itemize} \item the expressions \tcode{swap(t, u)} and \tcode{swap(u, t)} are valid when evaluated in the context described below, and @@ -1924,7 +1924,7 @@ \pnum A \oldconcept{NullablePointer} type is a pointer-like type that supports null values. -A type \tcode{P} meets the \oldconcept{\-Nullable\-Pointer} requirements if: +A type \tcode{P} meets the \oldconcept{\-Nullable\-Pointer} requirements if \begin{itemize} \item \tcode{P} meets the \oldconcept{EqualityComparable}, \oldconcept{DefaultConstructible}, \oldconcept{CopyConstructible}, \oldconcept{\-Copy\-Assign\-able}, @@ -2000,7 +2000,7 @@ \rSec3[hash.requirements]{\oldconcept{Hash} requirements} \pnum -A type \tcode{H} meets the \defnoldconcept{Hash} requirements if: +A type \tcode{H} meets the \defnoldconcept{Hash} requirements if \begin{itemize} \item it is a function object type\iref{function.objects}, \item it meets the \oldconcept{CopyConstructible} (\tref{cpp17.copyconstructible}) and diff --git a/source/meta.tex b/source/meta.tex index 17cbbf91dd..2497110740 100644 --- a/source/meta.tex +++ b/source/meta.tex @@ -138,7 +138,7 @@ \pnum Unless otherwise specified, an incomplete type may be used to instantiate a template specified in \ref{type.traits}. -The behavior of a program is undefined if: +The behavior of a program is undefined if \begin{itemize} \item an instantiation of a template specified in \ref{type.traits} @@ -1341,7 +1341,7 @@ \pnum The predicate condition for a template specialization \tcode{has_unique_object_representations} -shall be satisfied if and only if: +shall be satisfied if and only if \begin{itemize} \item \tcode{T} is trivially copyable, and \item any two objects of type \tcode{T} with the same value diff --git a/source/modules.tex b/source/modules.tex index 52873a37ae..2ed009a3b6 100644 --- a/source/modules.tex +++ b/source/modules.tex @@ -593,7 +593,7 @@ \pnum A declaration $D$ is \defn{decl-reachable} from a declaration $S$ -in the same translation unit if: +in the same translation unit if \begin{itemize} \item $D$ does not declare a function or function template and diff --git a/source/ranges.tex b/source/ranges.tex index 415826deeb..01e6b99206 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -1433,7 +1433,7 @@ \begin{itemdescr} \pnum -\tcode{T} models \libconcept{view} only if: +\tcode{T} models \libconcept{view} only if \begin{itemize} \item \tcode{T} has \bigoh{1} move construction; and diff --git a/source/regex.tex b/source/regex.tex index bbec2e9f78..495a9ac354 100644 --- a/source/regex.tex +++ b/source/regex.tex @@ -2701,7 +2701,7 @@ \pnum \returns \tcode{true} if neither match result is ready, \tcode{false} if one match result is ready and the -other is not. If both match results are ready, returns \tcode{true} only if: +other is not. If both match results are ready, returns \tcode{true} only if \begin{itemize} \item \tcode{m1.empty() \&\& m2.empty()}, or diff --git a/source/support.tex b/source/support.tex index 9924cbdabd..de93137d26 100644 --- a/source/support.tex +++ b/source/support.tex @@ -4784,7 +4784,7 @@ lvalues of types \tcode{const remove_reference_t} and \tcode{const remove_reference_t}, respectively. \tcode{T} and \tcode{U} model -\tcode{\exposconcept{partially-ordered-with}} only if: +\tcode{\exposconcept{partially-ordered-with}} only if \begin{itemize} \item \tcode{t < u}, @@ -4795,7 +4795,7 @@ \tcode{u <= t}, \tcode{u > t}, and \tcode{u >= t} - have the same domain. + have the same domain, \item \tcode{bool(t < u) == bool(u > t)} is \tcode{true}, \item @@ -4820,7 +4820,7 @@ Let \tcode{a} and \tcode{b} be lvalues of type \tcode{const remove_reference_t}. \tcode{T} and \tcode{Cat} -model \tcode{\libconcept{three_way_comparable}} only if: +model \tcode{\libconcept{three_way_comparable}} only if \begin{itemize} \item \tcode{(a <=> b == 0) == bool(a == b)} is \tcode{true}, @@ -4870,7 +4870,7 @@ Let \tcode{\exposid{CONVERT_TO_LVALUE}(E)} be defined as in \ref{concepts.compare.general}. \tcode{T}, \tcode{U}, and \tcode{Cat} -model \tcode{\libconcept{three_way_comparable_with}} only if: +model \tcode{\libconcept{three_way_comparable_with}} only if \begin{itemize} \item \tcode{t <=> u} and \tcode{u <=> t} have the same domain, diff --git a/source/templates.tex b/source/templates.tex index 3d27393946..5dbf3b164e 100644 --- a/source/templates.tex +++ b/source/templates.tex @@ -4504,7 +4504,7 @@ Knowing which names are type names allows the syntax of every template to be checked in this way. \end{note} -The program is ill-formed, no diagnostic required, if: +The program is ill-formed, no diagnostic required, if \begin{itemize} \item no valid specialization, @@ -5310,7 +5310,7 @@ \pnum An \grammarterm{id-expression} -is value-dependent if: +is value-dependent if \begin{itemize} \item it is a concept-id and any of its arguments are dependent, diff --git a/source/threads.tex b/source/threads.tex index 354a99f6ba..5ecb94b835 100644 --- a/source/threads.tex +++ b/source/threads.tex @@ -673,7 +673,7 @@ \begin{itemdescr} \pnum \returns -\tcode{false} if: +\tcode{false} if \begin{itemize} \item \tcode{*this} does not have ownership of a stop state, or \item a stop request was not made @@ -6485,7 +6485,7 @@ released may ownership be acquired by another thread. \pnum -The behavior of a program is undefined if: +The behavior of a program is undefined if \begin{itemize} \item it destroys a \tcode{recursive_mutex} object owned by any thread or \item a thread terminates while owning a \tcode{recursive_mutex} object. @@ -6636,7 +6636,7 @@ It is a standard-layout class\iref{class.prop}. \pnum -The behavior of a program is undefined if: +The behavior of a program is undefined if \begin{itemize} \item it destroys a \tcode{timed_mutex} object owned by any thread, \item a thread that owns a \tcode{timed_mutex} object calls \tcode{lock()}, @@ -6701,7 +6701,7 @@ may ownership of the object be acquired by another thread. \pnum -The behavior of a program is undefined if: +The behavior of a program is undefined if \begin{itemize} \item it destroys a \tcode{recursive_timed_mutex} object owned by any thread, or \item a thread terminates while owning a \tcode{recursive_timed_mutex} object. @@ -6873,7 +6873,7 @@ It is a standard-layout class\iref{class.prop}. \pnum -The behavior of a program is undefined if: +The behavior of a program is undefined if \begin{itemize} \item it destroys a \tcode{shared_mutex} object owned by any thread, \item a thread attempts to recursively gain any ownership of a \tcode{shared_mutex}, or @@ -7035,7 +7035,7 @@ It is a standard-layout class\iref{class.prop}. \pnum -The behavior of a program is undefined if: +The behavior of a program is undefined if \begin{itemize} \item it destroys a \tcode{shared_timed_mutex} object owned by any thread, \item a thread attempts to recursively gain any ownership of a \tcode{shared_timed_mutex}, or @@ -12232,7 +12232,7 @@ \pnum A hazard-protectable object \tcode{x} is \defn{possibly-reclaimable} -with respect to an evaluation $A$ if: +with respect to an evaluation $A$ if \begin{itemize} \item \tcode{x} is not reclaimed; and diff --git a/source/time.tex b/source/time.tex index aa4addb0fd..c323fb228f 100644 --- a/source/time.tex +++ b/source/time.tex @@ -1036,7 +1036,7 @@ \end{note} \pnum -A type \tcode{TC} meets the \defnoldconcept{TrivialClock} requirements if: +A type \tcode{TC} meets the \defnoldconcept{TrivialClock} requirements if \begin{itemize} \item \tcode{TC} meets the \oldconcept{Clock} requirements, From 972475e07e6101bad06b23e15430dca39a723590 Mon Sep 17 00:00:00 2001 From: Jens Maurer Date: Tue, 14 May 2024 22:47:38 +0200 Subject: [PATCH 2/2] [iterators] Add colon after 'model ... only if' when complete sentences follow --- source/iterators.tex | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/iterators.tex b/source/iterators.tex index 797cedf1d8..0a0b27add0 100644 --- a/source/iterators.tex +++ b/source/iterators.tex @@ -1338,7 +1338,7 @@ \pnum Let \tcode{E} be an expression such that \tcode{decltype((E))} is \tcode{T}, and let \tcode{o} be a dereferenceable object of type \tcode{Out}. -\tcode{Out} and \tcode{T} model \tcode{\libconcept{indirectly_writable}} only if +\tcode{Out} and \tcode{T} model \tcode{\libconcept{indirectly_writable}} only if: \begin{itemize} \item If \tcode{Out} and \tcode{T} model \tcode{\libconcept{indirectly_readable} \&\& \libconcept{same_as}, decay_t>}, @@ -1544,7 +1544,7 @@ \pnum Let \tcode{i} be an object of type \tcode{I}. When \tcode{i} is in the domain of both pre- and post-increment, \tcode{i} is said to be \defn{incrementable}. -\tcode{I} models \tcode{\libconcept{weakly_incrementable}} only if +\tcode{I} models \tcode{\libconcept{weakly_incrementable}} only if: \begin{itemize} \item The expressions \tcode{++i} and \tcode{i++} have the same domain. \item If \tcode{i} is incrementable, then both \tcode{++i} @@ -1591,7 +1591,7 @@ \pnum Let \tcode{a} and \tcode{b} be incrementable objects of type \tcode{I}. -\tcode{I} models \libconcept{incrementable} only if +\tcode{I} models \libconcept{incrementable} only if: \begin{itemize} \item If \tcode{bool(a == b)} then \tcode{bool(a++ == b)}. \item If \tcode{bool(a == b)} then \tcode{bool(((void)a++, a) == ++b)}. @@ -1654,7 +1654,7 @@ \pnum Let \tcode{s} and \tcode{i} be values of type \tcode{S} and \tcode{I} such that \range{i}{s} denotes a range. Types -\tcode{S} and \tcode{I} model \tcode{\libconcept{sentinel_for}} only if +\tcode{S} and \tcode{I} model \tcode{\libconcept{sentinel_for}} only if: \begin{itemize} \item \tcode{i == s} is well-defined. @@ -1699,7 +1699,7 @@ a sentinel of type \tcode{S} such that \range{i}{s} denotes a range. Let $N$ be the smallest number of applications of \tcode{++i} necessary to make \tcode{bool(i == s)} be \tcode{true}. -\tcode{S} and \tcode{I} model \tcode{\libconcept{sized_sentinel_for}} only if +\tcode{S} and \tcode{I} model \tcode{\libconcept{sized_sentinel_for}} only if: \begin{itemize} \item If $N$ is representable by \tcode{iter_difference_t}, then \tcode{s - i} is well-defined and equals $N$. @@ -1872,7 +1872,7 @@ \pnum Let \tcode{a} and \tcode{b} be equal objects of type \tcode{I}. -\tcode{I} models \libconcept{bidirectional_iterator} only if +\tcode{I} models \libconcept{bidirectional_iterator} only if: \begin{itemize} \item If \tcode{a} and \tcode{b} are decrementable, then all of the following are \tcode{true}: @@ -1918,7 +1918,7 @@ after \tcode{n} applications of \tcode{++a}, let \tcode{D} be \tcode{iter_difference_t}, and let \tcode{n} denote a value of type \tcode{D}. -\tcode{I} models \libconcept{random_access_iterator} only if +\tcode{I} models \libconcept{random_access_iterator} only if: \begin{itemize} \item \tcode{(a += n)} is equal to \tcode{b}. \item \tcode{addressof(a += n)} is equal to \tcode{addressof(a)}.