From ab29f7e33acb61d7942506419d0aa9a27880e3d3 Mon Sep 17 00:00:00 2001 From: romintomasetti Date: Tue, 19 May 2026 14:51:46 +0000 Subject: [PATCH 1/3] exec: fork join trailing return type To avoid issues with incomplete types. Signed-off-by: romintomasetti --- include/exec/fork_join.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/exec/fork_join.hpp b/include/exec/fork_join.hpp index c9aa3421e..436b70e44 100644 --- a/include/exec/fork_join.hpp +++ b/include/exec/fork_join.hpp @@ -293,6 +293,9 @@ namespace experimental::execution::__fork_join static constexpr auto __connect = [](_Sender&& __sndr, _Receiver&& __rcvr) noexcept + -> fork_join_impl_t::_opstate_t, + STDEXEC::__data_of<_Sender>, + _Receiver> { using _closures_t = STDEXEC::__data_of<_Sender>; using _sndr_t = STDEXEC::__child_of<_Sender>; From a9a8a19326aaee8c1e00d28a6ba62028f916f213 Mon Sep 17 00:00:00 2001 From: Eric Niebler Date: Tue, 19 May 2026 17:58:16 -0700 Subject: [PATCH 2/3] in `fork_join_t::__connect`, take receiver by value Co-authored-by: Eric Niebler --- include/exec/fork_join.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/exec/fork_join.hpp b/include/exec/fork_join.hpp index 436b70e44..9b78911c4 100644 --- a/include/exec/fork_join.hpp +++ b/include/exec/fork_join.hpp @@ -292,7 +292,7 @@ namespace experimental::execution::__fork_join } static constexpr auto __connect = - [](_Sender&& __sndr, _Receiver&& __rcvr) noexcept + [](_Sender&& __sndr, _Receiver __rcvr) noexcept -> fork_join_impl_t::_opstate_t, STDEXEC::__data_of<_Sender>, _Receiver> From fb9170ab2cca9336d978d28475405ab5c8e80642 Mon Sep 17 00:00:00 2001 From: Eric Niebler Date: Tue, 19 May 2026 19:07:58 -0700 Subject: [PATCH 3/3] format --- include/exec/fork_join.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/exec/fork_join.hpp b/include/exec/fork_join.hpp index 9b78911c4..222b96bf2 100644 --- a/include/exec/fork_join.hpp +++ b/include/exec/fork_join.hpp @@ -291,8 +291,8 @@ namespace experimental::execution::__fork_join } } - static constexpr auto __connect = - [](_Sender&& __sndr, _Receiver __rcvr) noexcept + static constexpr auto __connect = [](_Sender&& __sndr, + _Receiver __rcvr) noexcept -> fork_join_impl_t::_opstate_t, STDEXEC::__data_of<_Sender>, _Receiver>