From 46e4c03193eec26dfcc837911841b5c5a73913a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Mon, 20 Jul 2026 11:36:19 +0100 Subject: [PATCH 1/2] [container.alloc.reqmts] Improve sentence structure around "the following expression:". Usually, a colon concludes a complete sentence and is followed by some isolated expression or another complete sentence. In these cases, we have one long sentence with subclauses. --- source/containers.tex | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/containers.tex b/source/containers.tex index 9851f81210..5e4ba77219 100644 --- a/source/containers.tex +++ b/source/containers.tex @@ -1004,11 +1004,11 @@ \item \tcode{T} is \defnx{\oldconcept{MoveInsertable} into \tcode{X}} {\oldconceptname{MoveInsertable} into X@\oldconcept{MoveInsertable} into \tcode{X}} -means that the following expression -is well-formed: +means that the expression \begin{codeblock} allocator_traits::construct(m, p, rv) \end{codeblock} +is well-formed and its evaluation causes the following postcondition to hold: The value of \tcode{*p} is equivalent to the value of \tcode{rv} before the evaluation. \begin{note} @@ -1019,10 +1019,11 @@ \tcode{T} is \defnx{\oldconcept{CopyInsertable} into \tcode{X}} {\oldconceptname{CopyInsertable} into X@\oldconcept{CopyInsertable} into \tcode{X}} means that, in addition to \tcode{T} being \oldconcept{MoveInsertable} into -\tcode{X}, the following expression is well-formed: +\tcode{X}, the expression \begin{codeblock} allocator_traits::construct(m, p, v) \end{codeblock} +is well-formed and its evaluation causes the following postcondition to hold: The value of \tcode{v} is unchanged and is equivalent to \tcode{*p}. From a19439abdee4962f3f67da066661571e4287d191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20K=C3=B6ppe?= Date: Mon, 20 Jul 2026 11:43:15 +0100 Subject: [PATCH 2/2] [range.{zip,cartesian}.iterator] Improve sentence structure. A colon usually ends a complete sentence and is followed either by an isolated expression or another sentence. Here, by contrast, we have a complex object, which should not be seperated like that. Additionally, the presentation seems to work better as a long sentence with the expressions appearing in codeblocks, instead of as an itemization. Morever, the quantification should say "expressions ... for _all_ ", not "for each", since it is the collection of all expressions that forms the argument of the "logical and". (This is opposed to, say, making a separate statement about each element of the collection.) --- source/ranges.tex | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/source/ranges.tex b/source/ranges.tex index 6c1b78f6d1..6a066e87b0 100644 --- a/source/ranges.tex +++ b/source/ranges.tex @@ -11659,11 +11659,11 @@ \pnum \remarks The exception specification is equivalent to -the logical \logop{and} of the following expressions: +the logical \logop{and} of the expressions \begin{codeblock} noexcept(ranges::iter_swap(std::get<@$i$@>(l.@\exposid{current_}@), std::get<@$i$@>(r.@\exposid{current_}@))) \end{codeblock} -for every integer $0 \leq i < \tcode{sizeof...(Views)}$. +for all integers $0 \leq i < \tcode{sizeof...(Views)}$. \end{itemdescr} \rSec3[range.zip.sentinel]{Class template \tcode{zip_view::\exposid{sentinel}}} @@ -16864,15 +16864,15 @@ \pnum \remarks The exception specification is equivalent to -the logical \logop{and} of the following expressions: -\begin{itemize} -\item -\tcode{noexcept(ranges::iter_move(std::get<$N$>(i.\exposid{current_})))} -for every integer\newline $0 \le N \le \tcode{sizeof...(Vs)}$, -\item -\tcode{is_nothrow_move_constructible_v>>}\newline -for every type \tcode{T} in \tcode{First, Vs...}. -\end{itemize} +the logical \logop{and} of the expressions +\begin{codeblock} +noexcept(ranges::iter_move(std::get<@$N$@>(i.@\exposid{current_}@))) +\end{codeblock} +for all integers $0 \le N \le \tcode{sizeof...(Vs)}$ and +\begin{codeblock} +is_nothrow_move_constructible_v>> +\end{codeblock} +for all types \tcode{T} in \tcode{First, Vs...}. \end{itemdescr} \indexlibrarymember{iter_swap}{cartesian_product_view::\exposid{iterator}}% @@ -16892,12 +16892,11 @@ \pnum \remarks -The exception specification is equivalent to the logical \logop{and} of the following expressions: -\begin{itemize} -\item -\tcode{noexcept(ranges::iter_swap(std::get<$i$>(l.\exposid{current_}), std::get<$i$>(r.\exposid{current_})))} -for\newline every integer $0 \le i \le \tcode{sizeof...(Vs)}$. -\end{itemize} +The exception specification is equivalent to the logical \logop{and} of the expressions +\begin{codeblock} +noexcept(ranges::iter_swap(std::get<@$i$@>(l.@\exposid{current_}@), std::get<@$i$@>(r.@\exposid{current_}@))) +\end{codeblock} +for all integers $0 \le i \le \tcode{sizeof...(Vs)}$. \end{itemdescr} \rSec2[range.cache.latest]{Cache latest view}