From 7d98501461a2cc639beea377ffd5eb60d9688fcc Mon Sep 17 00:00:00 2001 From: Eric Niebler Date: Wed, 7 Oct 2026 16:11:28 +0000 Subject: [PATCH] perfectly forward `__make_sexpr` arguments into the returned sender --- include/stdexec/__detail/__basic_sender.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/stdexec/__detail/__basic_sender.hpp b/include/stdexec/__detail/__basic_sender.hpp index a52dff5dd..ab89a3d8c 100644 --- a/include/stdexec/__detail/__basic_sender.hpp +++ b/include/stdexec/__detail/__basic_sender.hpp @@ -461,9 +461,11 @@ namespace STDEXEC struct __make_sexpr_t { template - constexpr auto operator()(_Data __data = {}, _Child... __child) const + constexpr auto operator()(_Data&& __data = {}, _Child&&... __child) const + noexcept(__nothrow_decay_copyable<_Data, _Child...>) + -> __sexpr_t<_Tag, __decay_t<_Data>, __decay_t<_Child>...> { - return __sexpr_t<_Tag, _Data, _Child...>{ + return { {_Tag(), static_cast<_Data&&>(__data), static_cast<_Child&&>(__child)...} }; }