Skip to content

Commit 6c9ab3e

Browse files
committed
LWG wording feedback from March 20, 2024
1 parent 10c4bca commit 6c9ab3e

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

execution.bs

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4085,11 +4085,11 @@ template<class C>
40854085
non-senders as arguments and that returns a sender.
40864086

40874087
* A <dfn export=true>sender adaptor</dfn> is a function that constructs and
4088-
returns a parent sender from a set of one or more child senders and a
4089-
(possibly empty) set of additional arguments. An asynchronous operation
4090-
created by a <dfn export=true>parent sender</dfn> is a parent to the
4091-
child operations created by the <dfn export=true lt="child sender">child
4092-
senders</dfn>.
4088+
returns a <dfn export=true>parent sender</dfn> from a set of one or more
4089+
<dfn export=true lt="child sender">child senders</dfn> and a (possibly
4090+
empty) set of additional arguments. An asynchronous operation created by
4091+
a parent sender is a parent operation to the child operations created by
4092+
the child senders.
40934093

40944094
* A <dfn export=true>sender consumer</dfn> is a function that takes one or
40954095
more senders and a (possibly empty) set of additional arguments, and
@@ -5558,7 +5558,7 @@ struct default_domain {
55585558
<pre highlight="c++">
55595559
template &lt;sender Sndr, queryable... Env>
55605560
requires (sizeof...(Env) <= 1)
5561-
constexpr sender decltype(auto) default_domain::transform_sender(Sndr&& sndr, const Env&... env) noexcept(<i>see below</i>);
5561+
constexpr sender decltype(auto) transform_sender(Sndr&& sndr, const Env&... env) noexcept(<i>see below</i>);
55625562
</pre>
55635563

55645564
1. Let <code><i>e</i></code> be the expression
@@ -5571,7 +5571,7 @@ template &lt;sender Sndr, queryable... Env>
55715571

55725572
<pre highlight="c++">
55735573
template &lt;sender Sndr, queryable Env>
5574-
constexpr queryable decltype(auto) default_domain::transform_env(Sndr&& sndr, Env&& env) noexcept;
5574+
constexpr queryable decltype(auto) transform_env(Sndr&& sndr, Env&& env) noexcept;
55755575
</pre>
55765576

55775577
4. Let <code><i>e</i></code> be the expression
@@ -5585,13 +5585,11 @@ template &lt;sender Sndr, queryable Env>
55855585

55865586
<pre highlight="c++">
55875587
template&lt;class Tag, sender Sndr, class... Args>
5588-
constexpr decltype(auto) default_domain::apply_sender(Tag, Sndr&& sndr, Args&&... args) noexcept(<i>see below</i>);
5588+
constexpr decltype(auto) apply_sender(Tag, Sndr&& sndr, Args&&... args) noexcept(<i>see below</i>);
55895589
</pre>
55905590

55915591
7. Let <code><i>e</i></code> be the expression
5592-
`Tag().apply_sender(std::forward<Sndr>(sndr), std::forward<Args>(args)...)`
5593-
if that expression is well-formed; otherwise, this function shall not
5594-
participate in overload resolution.
5592+
`Tag().apply_sender(std::forward<Sndr>(sndr), std::forward<Args>(args)...)`.
55955593

55965594
8. <i>Constraints:</i> <code><i>e</i></code> is a well-formed expression.
55975595

@@ -5607,18 +5605,20 @@ template&lt;class Domain, sender Sndr, queryable... Env>
56075605
constexpr sender decltype(auto) transform_sender(Domain dom, Sndr&& sndr, const Env&... env) noexcept(<i>see below</i>);
56085606
</pre>
56095607

5610-
1. Let <code><i>sndr2</i></code> be the expression
5608+
1. Let <code><i>transformed-sndr</i></code> be the expression
56115609
`dom.transform_sender(std::forward<Sndr>(sndr), env...)` if that expression
56125610
is well-formed; otherwise,
56135611
`default_domain().transform_sender(std::forward<Sndr>(sndr), env...)`. Let
5614-
<code><i>sndr3</i></code> be <code><i>sndr2</i></code> if
5615-
<code><i>sndr2</i></code> and `sndr` have the same type ignoring *cv*
5616-
qualifiers; otherwise, <code>transform_sender(dom, <i>sndr2</i>, env...)</code>.
5612+
<code><i>final-sndr</i></code> be the expression
5613+
<code><i>transformed-sndr</i></code> if <code><i>transformed-sndr</i></code>
5614+
and `sndr` have the same type ignoring *cv* qualifiers; otherwise, it is the
5615+
expression <code>transform_sender(dom, <i>transformed-sndr</i>,
5616+
env...)</code>.
56175617

5618-
2. <i>Returns:</i> <code><i>sndr3</i></code>.
5618+
2. <i>Returns:</i> <code><i>final-sndr</i></code>.
56195619

56205620
3. <i>Remarks:</i> The exception specification is equivalent to
5621-
<code>noexcept(<i>sndr3</i>)</code>.
5621+
<code>noexcept(<i>final-sndr</i>)</code>.
56225622

56235623
### `execution::transform_env` <b>[exec.snd.transform.env]</b> ### {#spec-execution.env_transform}
56245624

@@ -5897,12 +5897,11 @@ template&lt;class Domain, class Tag, sender Sndr, class... Args>
58975897
chains. The adaptors also support function call syntax with equivalent
58985898
semantics.
58995899

5900-
3. Unless otherwise specified, a sender adaptor is required to not begin
5901-
executing any functions that would observe or modify any of the arguments
5902-
of the adaptor before the returned sender is connected with a receiver using
5903-
`connect`, and `start` is called on the resulting operation state. This
5904-
requirement applies to any function that is selected by the implementation
5905-
of the sender adaptor.
5900+
3. Unless otherwise specified, a sender adaptor is prohibited from causing
5901+
observable effects, apart from moving and copying its arguments, before the
5902+
returned sender is connected with a receiver using `connect`, and `start` is
5903+
called on the resulting operation state. This requirement applies to any
5904+
function that is selected by the implementation of the sender adaptor.
59065905

59075906
4. Unless otherwise specified, a parent sender ([async.ops]) with a single child
59085907
sender `sndr` has an associated attribute object equal to
@@ -5915,7 +5914,7 @@ template&lt;class Domain, class Tag, sender Sndr, class... Args>
59155914
5. Unless otherwise specified, when a parent sender is connected to a receiver
59165915
`rcvr`, any receiver used to connect a child sender has an associated
59175916
environment equal to <code><i>FWD-ENV</i>(get_env(rcvr))</code>. This
5918-
requirements applies to any sender returned from a function that is selected
5917+
requirement applies to any sender returned from a function that is selected
59195918
by the implementation of such sender adaptor.
59205919

59215920
6. For any sender type, receiver type, operation state type, queryable type, or

0 commit comments

Comments
 (0)