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.

4471. Remove test for get_env noexcept-ness from inline_scheduler

Section: 33.13.4 [exec.inline.scheduler] Status: New Submitter: Eric Niebler Opened: 2025-11-05 Last modified: 2025-11-15

Priority: Not Prioritized

View all issues with New status.

Discussion:

33.13.4 [exec.inline.scheduler] bullet (3.2) reads:

get_env(sndr) is never potentially-throwing because it mandates that sndr.get_env() cannot throw, see 33.5.4 [exec.get.env].

also, get_completion_scheduler<set_*_t>(attrs) mandates that attrs.query(get_completion_scheduler<set_*_t>) cannot throw.

Proposed resolution:

This wording is relative to N5014.

  1. Modify 33.13.4 [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.