Created on 2025-11-05.00:00:00 last changed 3 weeks ago
Proposed resolution:
This wording is relative to N5014.
Modify [exec.inline.scheduler] as indicated:
-3- Let `sndr` be an expression of type inline-sender, let `rcvr` be an expression such that receiver_of<decltype((rcvr)), CS> is `true` where `CS` is completion_signatures<set_value_t()>, then:
- (3.1) — the expression `connect(sndr, rcvr)` has type inline-state<remove_cvref_t<decltype((rcvr))>> and is potentially-throwing if and only if `((void)sndr, auto(rcvr))` is potentially-throwing, and
- (3.2) — the expression get_completion_scheduler<set_value_t>(get_env(sndr)) has type `inline_scheduler`
and is potentially-throwing if and only if `get_env(sndr)` is potentially-throwing.
[exec.inline.scheduler] bullet (3.2) reads:
- (3.2) — the expression get_completion_scheduler<set_value_t>(get_env(sndr)) has type `inline_scheduler` and is potentially-throwing if and only if `get_env(sndr)` is potentially-throwing.
`get_env(sndr)` is never potentially-throwing because it mandates that `sndr.get_env()` cannot throw, see [exec.get.env].
also, get_completion_scheduler<set_*_t>(attrs) mandates that attrs.query(get_completion_scheduler<set_*_t>) cannot throw.| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2025-11-15 07:17:38 | admin | set | messages: + msg15740 |
| 2025-11-05 00:00:00 | admin | create | |