Skip to content

Commit e44e257

Browse files
authored
Merge 2025-11 LWG Motion 6
P3914R0 Assorted NB comment resolutions for Kona 2025
2 parents f07df28 + cdbd60e commit e44e257

File tree

3 files changed

+116
-66
lines changed

3 files changed

+116
-66
lines changed

source/algorithms.tex

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7849,9 +7849,11 @@
78497849
\pnum
78507850
Let \tcode{pred} be \tcode{equal_to\{\}}
78517851
for the overloads with no parameter \tcode{pred}, and
7852-
let $E$ be
7852+
let $E(\tcode{i})$ be
78537853
\begin{itemize}
78547854
\setlength{\emergencystretch}{1em}
7855+
\item
7856+
\tcode{false} if \tcode{i} is equal to \tcode{first}; otherwise
78557857
\item
78567858
\tcode{bool(pred(*(i - 1), *i))}
78577859
for the overloads in namespace \tcode{std};
@@ -7869,10 +7871,9 @@
78697871

78707872
\pnum
78717873
\effects
7872-
For a nonempty range, eliminates all but the first element
7873-
from every consecutive group of equivalent elements referred to
7874-
by the iterator \tcode{i} in the range \range{first + 1}{last}
7875-
for which $E$ is \tcode{true}.
7874+
Eliminates all elements referred to
7875+
by the iterator \tcode{i} in the range \range{first}{last}
7876+
for which $E(\tcode{i})$ is \tcode{true}.
78767877

78777878
\pnum
78787879
\returns
@@ -7952,6 +7953,8 @@
79527953
let $E(\tcode{i})$ be
79537954
\begin{itemize}
79547955
\setlength{\emergencystretch}{1em}
7956+
\item
7957+
\tcode{false} if \tcode{i} is equal to \tcode{first}; otherwise
79557958
\item
79567959
\tcode{bool(pred(*(i - 1), *i))}
79577960
for the overloads in namespace \tcode{std};
@@ -7964,13 +7967,13 @@
79647967
Let:
79657968
\begin{itemize}
79667969
\item
7967-
$M$ be the number of iterators \tcode{i} in the range \range{first + 1}{last}
7970+
$M$ be the number of iterators \tcode{i} in the range \range{first}{last}
79687971
for which $E(\tcode{i})$ is \tcode{false};
79697972
\item
7970-
\tcode{result_last} be \tcode{result + $M$ + 1}
7973+
\tcode{result_last} be \tcode{result + $M$}
79717974
for the overloads with no parameter \tcode{result_last} or \tcode{result_r};
79727975
\item
7973-
$N$ be $\min(M + 1, \ \tcode{result_last - result})$.
7976+
$N$ be $\min(M, \ \tcode{result_last - result})$.
79747977
\end{itemize}
79757978

79767979
\pnum
@@ -8016,9 +8019,9 @@
80168019

80178020
\pnum
80188021
\effects
8019-
Copies only the first element from $N$ consecutive groups of equivalent elements
8020-
referred to by the iterator \tcode{i} in the range \range{first + 1}{last}
8021-
for which $E(\tcode{i})$ holds
8022+
Copies only the first $N$ elements
8023+
referred to by the iterator \tcode{i} in the range \range{first}{last}
8024+
for which $E(\tcode{i})$ is \tcode{false}
80228025
into the range \range{result}{result + $N$}.
80238026

80248027
\pnum
@@ -8030,13 +8033,13 @@
80308033
\item
80318034
\tcode{\{last, result + $N$\}}
80328035
for the overloads in namespace \tcode{ranges},
8033-
if $N$ is equal to $M + 1$.
8036+
if $N$ is equal to $M$.
80348037
\item
80358038
Otherwise, \tcode{\{j, result_last\}}
80368039
for the overloads in namespace \tcode{ranges},
8037-
where \tcode{j} is the iterator in \range{first + 1}{last}
8040+
where \tcode{j} is the iterator in \range{first}{last}
80388041
for which $E(\tcode{j})$ is \tcode{false}
8039-
and there are exactly $N - 1$ iterators \tcode{i} in \range{first + 1}{j}
8042+
and there are exactly $N$ iterators \tcode{i} in \range{first}{j}
80408043
for which $E(\tcode{i})$ is \tcode{false}.
80418044
\end{itemize}
80428045

source/exec.tex

Lines changed: 47 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,6 +1359,18 @@
13591359
shall denote the same type.
13601360
\end{itemize}
13611361

1362+
\pnum
1363+
\indexlibraryglobal{\tcode{\placeholder{unspecified-exception}}}%
1364+
Various function templates in subclause \ref{exec.snd}
1365+
can throw an exception of type \exposid{unspecified-exception}.
1366+
Each such exception object is of an unspecified type
1367+
such that a \grammarterm{handler} of type \tcode{exception}
1368+
matches\iref{except.handle} the exception object
1369+
but a \grammarterm{handler} of type \tcode{dependent_sender_error} does not.
1370+
\begin{note}
1371+
There is no requirement that two such exception objects have the same type.
1372+
\end{note}
1373+
13621374
\rSec2[exec.snd.expos]{Exposition-only entities}
13631375

13641376
\pnum
@@ -2064,8 +2076,6 @@
20642076
}
20652077
};
20662078
\end{codeblock}
2067-
where \tcode{\placeholder{unspecified-exception}} is
2068-
a type derived from \tcode{exception}.
20692079

20702080
\pnum
20712081
\indexlibraryglobal{\exposid{decay-copyable-result-datums}}
@@ -2078,8 +2088,6 @@
20782088
});
20792089
}
20802090
\end{codeblock}
2081-
where \tcode{\placeholder{unspecified-exception}} is
2082-
a type derived from \tcode{exception}.
20832091

20842092
\begin{itemdecl}
20852093
template<class T, class Context>
@@ -2982,7 +2990,8 @@
29822990

29832991
\pnum
29842992
\throws
2985-
An exception of an unspecified type derived from \tcode{exception} if
2993+
An exception of type
2994+
\tcode{\placeholder{unspecified-exception}}\iref{exec.snd.general} if
29862995
the expression \tcode{Q()(env)} is ill-formed or has type \tcode{void}, where
29872996
\tcode{env} is an lvalue subexpression whose type is \tcode{Env}.
29882997
\end{itemdescr}
@@ -3818,8 +3827,6 @@
38183827
};
38193828
cs.@\exposid{for-each}@(@\exposid{overload-set}@{fn, [](auto){}});
38203829
\end{codeblock}
3821-
where \tcode{\placeholder{unspecified-exception}} is
3822-
a type derived from \tcode{exception}.
38233830
\end{itemdescr}
38243831

38253832
\pnum
@@ -3968,8 +3975,6 @@
39683975
};
39693976
cs.@\exposid{for-each}@(@\exposid{overload-set}@(fn, [](auto){}));
39703977
\end{codeblock}
3971-
where \tcode{\placeholder{unspecified-exception}} is
3972-
a type derived from \tcode{exception}, and
39733978
where \tcode{\placeholder{is-valid-let-sender}} is \tcode{true} if and only if
39743979
all of the following are \tcode{true}:
39753980
\begin{itemize}
@@ -4254,8 +4259,6 @@
42544259
};
42554260
cs.@\exposid{for-each}@(@\exposid{overload-set}@(fn, [](auto){}));
42564261
\end{codeblock}
4257-
where \tcode{\placeholder{unspecified-exception}} is
4258-
a type derived from \tcode{exception}.
42594262
\end{itemdescr}
42604263

42614264
\pnum
@@ -4473,14 +4476,13 @@
44734476
};
44744477
(fn.template operator()<@\exposid{child-type}@<Sndr, Is>>(), ...);
44754478
\end{codeblock}
4476-
where \tcode{\placeholder{unspecified-exception}} is
4477-
a type derived from \tcode{exception}.
44784479

44794480
\pnum
44804481
\throws
44814482
Any exception thrown as a result of evaluating the \Fundescx{Effects}, or
4482-
an exception of an unspecified type
4483-
derived from \tcode{exception} when \tcode{CD} is ill-formed.
4483+
an exception of type
4484+
\tcode{\placeholder{unspecified-\brk{}exception}}\iref{exec.snd.general}
4485+
when \tcode{CD} is ill-formed.
44844486
\end{itemdescr}
44854487

44864488
\pnum
@@ -4818,8 +4820,6 @@
48184820
};
48194821
}
48204822
\end{codeblock}
4821-
where \tcode{\placeholder{unspecified-exception}} is
4822-
a type derived from \tcode{exception}.
48234823

48244824
\pnum
48254825
Let \tcode{sndr} and \tcode{env} be subexpressions
@@ -5339,8 +5339,10 @@
53395339

53405340
\pnum
53415341
Let \tcode{\placeholder{ssource-t}} be an unspecified type
5342-
that models \exposconcept{stoppable-source} and
5343-
let \tcode{ssource} be an lvalue of type \tcode{\placeholder{ssource-t}}.
5342+
that models \exposconcept{stoppable-source} and \libconcept{default_initializable},
5343+
such that a default-initialized object of type \tcode{\placeholder{ssource-t}}
5344+
has an associated stop state.
5345+
Let \tcode{ssource} be an lvalue of type \tcode{\placeholder{ssource-t}}.
53445346
Let \tcode{\placeholder{stoken-t}} be \tcode{decltype(ssource.get_token())}.
53455347
Let \exposid{future-spawned-sender} be the alias template:
53465348

@@ -8530,8 +8532,13 @@
85308532

85318533
\pnum
85328534
\returns
8533-
A non-null shared pointer to an object
8534-
that implements the \tcode{parallel_scheduler_backend} interface.
8535+
An object \tcode{p},
8536+
such that \tcode{p.get()} points to a \tcode{parallel_scheduler_backend} object
8537+
that is a base-class subobject
8538+
of some most derived object \tcode{o} within its lifetime.
8539+
The lifetime of \tcode{o} does not end
8540+
as long as there exists a \tcode{shared_ptr} object \tcode{q} within its lifetime
8541+
such that \tcode{q.owner_equal(p)} is \tcode{true}.
85358542

85368543
\pnum
85378544
\remarks
@@ -8562,13 +8569,13 @@
85628569
\begin{itemdescr}
85638570
\pnum
85648571
\expects
8565-
The ends of
8566-
the lifetimes of \tcode{*this},
8567-
the object referred to by \tcode{r}, and
8568-
any storage referenced by \tcode{s}
8572+
The ends
8573+
of the lifetime of \tcode{*this},
8574+
of the lifetime of the object referred to by \tcode{r}, and
8575+
of the duration of any storage referenced by \tcode{s}
85698576
all happen after
85708577
the beginning of the evaluation of
8571-
the call to \tcode{set_value}, \tcode{set_error}, or \tcode{set_done}
8578+
the call to \tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped}
85728579
on \tcode{r} (see below).
85738580

85748581
\pnum
@@ -8607,12 +8614,14 @@
86078614
\begin{itemdescr}
86088615
\pnum
86098616
\expects
8610-
The ends of
8611-
the lifetimes of \tcode{*this},
8612-
the object referred to by \tcode{r}, and
8613-
any storage referenced by \tcode{s}
8617+
The ends
8618+
of the lifetime of \tcode{*this},
8619+
of the lifetime of the object referred to by \tcode{r}, and
8620+
of the duration of any storage referenced by \tcode{s}
86148621
all happen after
8615-
the beginning of the evaluation of one of the expressions below.
8622+
the beginning of the evaluation of the call to
8623+
\tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped}
8624+
on \tcode{r} (see below).
86168625

86178626
\pnum
86188627
\effects
@@ -8666,12 +8675,14 @@
86668675
\begin{itemdescr}
86678676
\pnum
86688677
\expects
8669-
The ends of
8670-
the lifetimes of \tcode{*this},
8671-
the object referred to by \tcode{r}, and
8672-
any storage referenced by \tcode{s}
8678+
The ends
8679+
of the lifetime of \tcode{*this},
8680+
of the lifetime of the object referred to by \tcode{r}, and
8681+
of the duration of any storage referenced by \tcode{s}
86738682
all happen after
8674-
the beginning of the evaluation of one of the expressions below.
8683+
the beginning of the evaluation of the call to
8684+
\tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped}
8685+
on \tcode{r} (see below).
86758686

86768687
\pnum
86778688
\effects

0 commit comments

Comments
 (0)