Title
Remove test for `get_env noexcept`-ness from `inline_scheduler`
Status
new
Section
[exec.inline.scheduler]
Submitter
Eric Niebler

Created on 2025-11-05.00:00:00 last changed 3 weeks ago

Messages

Date: 2025-11-15.07:17:38

Proposed resolution:

This wording is relative to N5014.

  1. 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.
Date: 2025-11-05.00:00:00

[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:38adminsetmessages: + msg15740
2025-11-05 00:00:00admincreate