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.
let_value/error/stopped should specify the attributes of their sendersSection: 33.9.12.10 [exec.let] Status: New Submitter: Eric Niebler Opened: 2025-10-16 Last modified: 2025-10-23
Priority: 1
View all other issues in [exec.let].
View all issues with New status.
Discussion:
Imported from https://github.com/cplusplus/sender-receiver/issues/346.
let_value(sndr, fn) returns make-sender(let-tag, fn, sndr),
which means that the let_value sender has one child. 33.9.12.1 [exec.adapt.general] bullet (3.2) says:
A parent sender with a single child sender
sndrhas an associated attribute object equal toFWD-ENV(get_env(sndr)).
However, let_value(sndr, fn) does not know where it will be started or where it will complete in the general case.
The function fn could return schedule(some-scheduler), making the let_value operation complete
on some-scheduler. It would be wrong for the let_value(sndr, fn) sender to have sndr's completion
schedulers or domains.
let_value/error/stopped must define impls-for<let_xxx_t>::get-attrs to return
FWD-ENV(get_env(sndr)) except that it handles the get_completion_scheduler_t<Tag>
(for any completion tag Tag) and get_domain_t queries specially.
[2025-10-23; Reflector poll.]
Set priority to 1 after reflector poll.
"Looks like a special case of the problem that P3826 addresses."
Proposed resolution: