diff --git a/include/beman/execution26/detail/product_type.hpp b/include/beman/execution26/detail/product_type.hpp index 414acff1..8b1d9e49 100644 --- a/include/beman/execution26/detail/product_type.hpp +++ b/include/beman/execution26/detail/product_type.hpp @@ -29,7 +29,7 @@ struct product_type_base<::std::index_sequence, T...> return self.value; } template <::std::size_t J, typename S> - static auto element_get(::beman::execution26::detail::product_type_element&& self) noexcept -> S { + static auto element_get(::beman::execution26::detail::product_type_element&& self) noexcept -> S&& { return ::std::move(self.value); } template <::std::size_t J, typename S> diff --git a/tests/beman/execution26/exec-snd-expos.test.cpp b/tests/beman/execution26/exec-snd-expos.test.cpp index 557d4344..27c1e12e 100644 --- a/tests/beman/execution26/exec-snd-expos.test.cpp +++ b/tests/beman/execution26/exec-snd-expos.test.cpp @@ -1253,11 +1253,11 @@ auto test_write_env() -> void { template struct child_sender : test_detail::product_type {}; auto test_child_type() -> void { - static_assert(std::same_as>>); - static_assert(std::same_as>&>); - static_assert(std::same_as>&>); - static_assert(std::same_as, 0>>); - static_assert(std::same_as, 1>>); + static_assert(std::same_as>>); + static_assert(std::same_as&>>); + static_assert(std::same_as&>>); + static_assert(std::same_as, 0>>); + static_assert(std::same_as, 1>>); } } // namespace