task_scheduler::ts-sender::connect()Section: 33.13.5 [exec.task.scheduler] Status: New Submitter: Dietmar Kühl Opened: 2025-09-01 Last modified: 2025-09-01
Priority: Not Prioritized
View other active issues in [exec.task.scheduler].
View all other issues in [exec.task.scheduler].
View all issues with New status.
Discussion:
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.
Proposed resolution:
Add an rvalue qualifier to the declaration of connect in 33.13.5 [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 33.13.5 [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
rcvror copy thereof. Returns an object of typestate<Rcvr>containing an operation state object initialized withconnect(SENDER(*this), std::move(r)).