You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There appears to be an issue with let_value wrapping single-shot (move only) senders, when the resulting sender is passed to spawn_detached.
The following code doesn't compile:
unifex::any_sender_of<> s = unifex::just();
auto a1 = std::move(s) | unifex::let_value([]() { returnunifex::just(); });
auto scope = unifex::v2::async_scope{};
unifex::spawn_detached(std::move(a1), scope);
As far as I understand, the problem is that let_value's connect function is not constrained on sender_to<member_t<Sender, Predecessor>, predecessor_receiver<...>>.
So when async_scope checks requires sender_to<const Sender&, remove_cvref_t<Receiver>> it tries to instantiate let_value's connect which of course fails inside operation on connect_result_t<const Sender &, predecessor_receiver>.
The text was updated successfully, but these errors were encountered:
Hi,
There appears to be an issue with
let_value
wrapping single-shot (move only) senders, when the resulting sender is passed tospawn_detached
.The following code doesn't compile:
As far as I understand, the problem is that
let_value
'sconnect
function is not constrained onsender_to<member_t<Sender, Predecessor>, predecessor_receiver<...>>
.So when
async_scope
checksrequires sender_to<const Sender&, remove_cvref_t<Receiver>>
it tries to instantiatelet_value
'sconnect
which of course fails insideoperation
onconnect_result_t<const Sender &, predecessor_receiver>
.The text was updated successfully, but these errors were encountered: