Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions source/algorithms.tex
Original file line number Diff line number Diff line change
Expand Up @@ -7839,9 +7839,11 @@
\pnum
Let \tcode{pred} be \tcode{equal_to\{\}}
for the overloads with no parameter \tcode{pred}, and
let $E$ be
let $E(\tcode{i})$ be
\begin{itemize}
\setlength{\emergencystretch}{1em}
\item
\tcode{false} if \tcode{i} is equal to \tcode{first}; otherwise
\item
\tcode{bool(pred(*(i - 1), *i))}
for the overloads in namespace \tcode{std};
Expand All @@ -7859,10 +7861,9 @@

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

\pnum
\returns
Expand Down Expand Up @@ -7942,6 +7943,8 @@
let $E(\tcode{i})$ be
\begin{itemize}
\setlength{\emergencystretch}{1em}
\item
\tcode{false} if \tcode{i} is equal to \tcode{first}; otherwise
\item
\tcode{bool(pred(*i, *(i - 1)))}
for the overloads in namespace \tcode{std};
Expand All @@ -7954,13 +7957,13 @@
Let:
\begin{itemize}
\item
$M$ be the number of iterators \tcode{i} in the range \range{first + 1}{last}
$M$ be the number of iterators \tcode{i} in the range \range{first}{last}
for which $E(\tcode{i})$ is \tcode{false};
\item
\tcode{result_last} be \tcode{result + $M$ + 1}
\tcode{result_last} be \tcode{result + $M$}
for the overloads with no parameter \tcode{result_last} or \tcode{result_r};
\item
$N$ be $\min(M + 1, \ \tcode{result_last - result})$.
$N$ be $\min(M, \ \tcode{result_last - result})$.
\end{itemize}

\pnum
Expand Down Expand Up @@ -8006,9 +8009,9 @@

\pnum
\effects
Copies only the first element from $N$ consecutive groups of equivalent elements
referred to by the iterator \tcode{i} in the range \range{first + 1}{last}
for which $E(\tcode{i})$ holds
Copies only the first $N$ elements
referred to by the iterator \tcode{i} in the range \range{first}{last}
for which $E(\tcode{i})$ is \tcode{true}
into the range \range{result}{result + $N$}.

\pnum
Expand All @@ -8020,13 +8023,13 @@
\item
\tcode{\{last, result + $N$\}}
for the overloads in namespace \tcode{ranges},
if $N$ is equal to $M + 1$.
if $N$ is equal to $M$.
\item
Otherwise, \tcode{\{j, result_last\}}
for the overloads in namespace \tcode{ranges},
where \tcode{j} is the iterator in \range{first + 1}{last}
where \tcode{j} is the iterator in \range{first}{last}
for which $E(\tcode{j})$ is \tcode{false}
and there are exactly $N - 1$ iterators \tcode{i} in \range{first + 1}{j}
and there are exactly $N$ iterators \tcode{i} in \range{first}{j}
for which $E(\tcode{i})$ is \tcode{false}.
\end{itemize}

Expand Down
75 changes: 43 additions & 32 deletions source/exec.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1364,6 +1364,18 @@
shall denote the same type.
\end{itemize}

\pnum
\indexlibraryglobal{\tcode{\placeholder{unspecified-exception}}}%
Various function templates in subclause \ref{exec.snd}
can throw an exception of type \exposid{unspecified-exception}.
Each such exception object is of an unspecified type
such that a \grammarterm{handler} of type \tcode{exception}
matches\iref{except.handle} the exception object
but a handler of type \tcode{dependent_sender_error} does not.
\begin{note}
There is no requirement that two such exception objects have the same type.
\end{note}

\rSec2[exec.snd.expos]{Exposition-only entities}

\pnum
Expand Down Expand Up @@ -2068,8 +2080,6 @@
}
};
\end{codeblock}
where \tcode{\placeholder{unspecified-exception}} is
a type derived from \tcode{exception}.

\pnum
\indexlibraryglobal{\exposid{decay-copyable-result-datums}}
Expand All @@ -2082,8 +2092,6 @@
});
}
\end{codeblock}
where \tcode{\placeholder{unspecified-exception}} is
a type derived from \tcode{exception}.

\begin{itemdecl}
template<class T, class Context>
Expand Down Expand Up @@ -2986,7 +2994,8 @@

\pnum
\throws
An exception of an unspecified type derived from \tcode{exception} if
An exception of type
\tcode{\placeholder{unspecified-exception}}\iref{exec.snd.general} if
the expression \tcode{Q()(env)} is ill-formed or has type \tcode{void}, where
\tcode{env} is an lvalue subexpression whose type is \tcode{Env}.
\end{itemdescr}
Expand Down Expand Up @@ -3822,8 +3831,6 @@
};
cs.@\exposid{for-each}@(@\exposid{overload-set}@{fn, [](auto){}});
\end{codeblock}
where \tcode{\placeholder{unspecified-exception}} is
a type derived from \tcode{exception}.
\end{itemdescr}

\pnum
Expand Down Expand Up @@ -3972,8 +3979,6 @@
};
cs.@\exposid{for-each}@(@\exposid{overload-set}@(fn, [](auto){}));
\end{codeblock}
where \tcode{\placeholder{unspecified-exception}} is
a type derived from \tcode{exception}, and
where \tcode{\placeholder{is-valid-let-sender}} is \tcode{true} if and only if
all of the following are \tcode{true}:
\begin{itemize}
Expand Down Expand Up @@ -4258,8 +4263,6 @@
};
cs.@\exposid{for-each}@(@\exposid{overload-set}@(fn, [](auto){}));
\end{codeblock}
where \tcode{\placeholder{unspecified-exception}} is
a type derived from \tcode{exception}.
\end{itemdescr}

\pnum
Expand Down Expand Up @@ -4475,14 +4478,13 @@
};
(fn.template operator()<@\exposid{child-type}@<Sndr, Is>>(), ...);
\end{codeblock}
where \tcode{\placeholder{unspecified-exception}} is
a type derived from \tcode{exception}.

\pnum
\throws
Any exception thrown as a result of evaluating the \Fundescx{Effects}, or
an exception of an unspecified type
derived from \tcode{exception} when \tcode{CD} is ill-formed.
an exception of type
\tcode{\placeholder{unspecified-exception}}\iref{exec.snd.general}
when \tcode{CD} is ill-formed.
\end{itemdescr}

\pnum
Expand Down Expand Up @@ -4820,8 +4822,6 @@
};
}
\end{codeblock}
where \tcode{\placeholder{unspecified-exception}} is
a type derived from \tcode{exception}.

\pnum
Let \tcode{sndr} and \tcode{env} be subexpressions
Expand Down Expand Up @@ -5340,8 +5340,10 @@

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

Expand Down Expand Up @@ -8529,8 +8531,13 @@

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

Check failure on line 8540 in source/exec.tex

View workflow job for this annotation

GitHub Actions / Run checks on Linux

exec.tex:8540:trailing whitespace: such that \tcode{q.owner_equal(p)} is \tcode{true}.

\pnum
\remarks
Expand Down Expand Up @@ -8562,12 +8569,12 @@
\pnum
\expects
The ends of
the lifetimes of \tcode{*this},
the object referred to by \tcode{r}, and
any storage referenced by \tcode{s}
the lifetime of \tcode{*this},
of the lifetime of the object referred to by \tcode{r}, and
of the duration of any storage referenced by \tcode{s}
all happen after
the beginning of the evaluation of
the call to \tcode{set_value}, \tcode{set_error}, or \tcode{set_done}
the call to \tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped}
on \tcode{r} (see below).

\pnum
Expand Down Expand Up @@ -8607,11 +8614,13 @@
\pnum
\expects
The ends of
the lifetimes of \tcode{*this},
the object referred to by \tcode{r}, and
any storage referenced by \tcode{s}
the lifetime of \tcode{*this},
of the lifetime of the object referred to by \tcode{r}, and
of the duration of any storage referenced by \tcode{s}
all happen after
the beginning of the evaluation of one of the expressions below.
the beginning of the call to
\tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped}
on \tcode{r} (see below).

\pnum
\effects
Expand Down Expand Up @@ -8667,10 +8676,12 @@
\expects
The ends of
the lifetimes of \tcode{*this},
the object referred to by \tcode{r}, and
any storage referenced by \tcode{s}
of the lifetime of the object referred to by \tcode{r}, and
of the duration of any storage referenced by \tcode{s}
all happen after
the beginning of the evaluation of one of the expressions below.
the beginning of the evaluation of the call to
\tcode{set_value}, \tcode{set_error}, or \tcode{set_stopped}
on \tcode{r} (see below).

\pnum
\effects
Expand Down
Loading
Loading