Section: 33.9.1 [exec.snd.general] Status: New Submitter: Eric Niebler Opened: 2025-02-03 Last modified: 2025-02-07
Priority: 1
View all issues with New status.
Discussion:
Imported from cplusplus/sender-receiver #308.
33.9.1 [exec.snd.general]/p1 reads:
Subclauses 33.9.11 [exec.factories] and 33.9.12 [exec.adapt] define customizable algorithms that return senders. Each algorithm has a default implementation. LetThe emphasized sentence is the problem. Since P2300 got lazy customization, the expressionsndrbe the result of an invocation of such an algorithm or an object equal to the result (18.2 [concepts.equality]), and letSndrbedecltype((sndr)). Letrcvrbe a receiver of typeRcvrwith associated environmentenvof typeEnvsuch thatsender_to<Sndr, Rcvr>istrue. For the default implementation of the algorithm that producedsndr, connectingsndrtorcvrand starting the resulting operation state (33.3 [exec.async.ops]) necessarily results in the potential evaluation (6.3 [basic.def.odr]) of a set of completion operations whose first argument is a subexpression equal torcvr. LetSigsbe a pack of completion signatures corresponding to this set of completion operations. Then the type of the expressionget_completion_signatures(sndr, env)is a specialization of the class templatecompletion_signatures( [exec.util.cmplsig]), the set of whose template arguments isSigs. If a user-provided implementation of the algorithm that producedsndris 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 ofSigsshall correspond to error or stopped completion operations, unless otherwise specified.
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.
[2025-02-07; Reflector poll]
Set priority to 1 after reflector poll.
Proposed resolution: