Created on 2025-02-03.00:00:00 last changed 3 months ago
[ 2025-02-07; Reflector poll ]
Set priority to 1 after reflector poll.
Imported from cplusplus/sender-receiver #308.
[exec.snd.general]/p1 reads:
Subclauses [exec.factories] and [exec.adapt] define customizable algorithms that return senders. Each algorithm has a default implementation. Let `sndr` be the result of an invocation of such an algorithm or an object equal to the result ([concepts.equality]), and let `Sndr` be `decltype((sndr))`. Let `rcvr` be a receiver of type `Rcvr` with associated environment `env` of type `Env` such thatThe emphasized sentence is the problem. Since P2300 got lazy customization, the expression `get_completion_signatures(snd, env)` could dispatch to a customization. We should define a low-level exposition-only `get-completion-signatures` function that does the same as `get_completion_signatures` except without the sender transformation. Then we can express `get_completion_signatures` in terms of that.sender_to<Sndr, Rcvr>
is `true`. For the default implementation of the algorithm that produced `sndr`, connecting `sndr` to `rcvr` and starting the resulting operation state ([exec.async.ops]) necessarily results in the potential evaluation ([basic.def.odr]) of a set of completion operations whose first argument is a subexpression equal to `rcvr`. Let `Sigs` be a pack of completion signatures corresponding to this set of completion operations. Then the type of the expression `get_completion_signatures(sndr, env)` is a specialization of the class template `completion_signatures` ([exec.util.cmplsig]), the set of whose template arguments is `Sigs`. If a user-provided implementation of the algorithm that produced `sndr` is selected instead of the default, any completion signature that is in the set of types denoted bycompletion_signatures_of_t<Sndr, Env>
and that is not part of `Sigs` shall correspond to error or stopped completion operations, unless otherwise specified.
History | |||
---|---|---|---|
Date | User | Action | Args |
2025-02-07 22:17:52 | admin | set | messages: + msg14611 |
2025-02-03 00:00:00 | admin | create |