This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.
Section: 33.9 [exec.snd] Status: New Submitter: Frank Birbacher Opened: 2025-02-14 Last modified: 2025-02-23
Priority: Not Prioritized
View all issues with New status.
Discussion:
In certain clauses for defining senders the unspecified order of evaluation of function arguments can lead to retrieving values from a move-from state of a sender. An example is 33.9.12.4 [exec.continues.on] where paragraph 3 states:
transform_sender(get-domain-early(sndr), make-sender(continues_on, sch, sndr))
In this expression the evaluation of get-domain-early(sndr)
can happen before or after
the make-sender
. The latter can steal the value from sndr
by moving from it. So
get-domain-early
may see the moved-from state of sndr
and fail to obtain anything.
33.9.12.7 [exec.then] p3
33.9.12.8 [exec.let] p4
33.9.12.9 [exec.bulk] p2
33.9.12.10 [exec.split] p4
33.9.12.11 [exec.when.all] p3
33.9.12.12 [exec.into.variant] p3
33.9.12.13 [exec.stopped.opt] p2
33.9.12.14 [exec.stopped.err] p2
33.9.13.2 [exec.sync.wait.var] p1
Proposed resolution: