Title
Missing rvalue reference qualification for task_scheduler::ts-sender::connect()
Status
new
Section
[exec.task.scheduler]
Submitter
Dietmar Kühl

Created on 2025-09-01.00:00:00 last changed 2 weeks ago

Messages

Date: 2025-09-01.20:15:39

Proposed resolution:

Add an rvalue qualifier to the declaration of connect in [exec.task.scheduler] paragraph 8:

namespace std::execution {
  class task_scheduler::ts-sender {     // exposition only
  public:
    using sender_concept = sender_t;

    template<receiver Rcvr>
      state<Rcvr> connect(Rcvr&& rcvr) &&;
  };
}

In the specification in [exec.task.scheduler] paragraph 10 add an rvalue qualifier to connect:

template<receiver Rcvr>
  state<Rcvr> connect(Rcvr&& rcvr) &&;

-10- Effects: Let r be an object of a type that models receiver and whose completion handlers result in invoking the corresponding completion handlers of rcvr or copy thereof. Returns an object of type state<Rcvr> containing an operation state object initialized with connect(SENDER(*this), std::move(r)).

Date: 2025-09-01.00:00:00

The result of schedule(sched) for a scheduler sched is only required to be movable. An object of this type may need to be forwarded to an operation state constructor by task_scheduler::ts-sender::connect. Thus, this function should be qualified with an rvalue reference.

History
Date User Action Args
2025-09-01 20:15:39adminsetmessages: + msg15000
2025-09-01 00:00:00admincreate