1#ifndef KOKKOS_EXECUTION_IMPL_MAKE_OPSTATE_HPP
2#define KOKKOS_EXECUTION_IMPL_MAKE_OPSTATE_HPP
10template <
typename DomainType,
template <
typename...>
typename OpStateType>
13 template <
typename Sndr,
typename Rcvr,
typename... Clsrs>
15 using type = OpStateType<Sndr, Rcvr, Clsrs...>;
18 constexpr auto operator()(Sndr&& sndr, Rcvr rcvr, Clsrs... clsrs)
const
19 noexcept(std::is_nothrow_constructible_v<
type, Sndr&&, Rcvr&&, Clsrs&&...>) ->
type {
20 return type(std::forward<Sndr>(sndr), std::move(rcvr), std::move(clsrs)...);
25 struct Huddle<Sndr, Rcvr, Clsrs...> {
27 using clsr_of_sndr_t =
typename stdexec::transform_sender_result_t<Sndr, stdexec::env_of_t<Rcvr>>::closure_t;
36 stdexec::env_of_t<Rcvr>
49 constexpr auto operator()(Sndr&& sndr, Rcvr&& rcvr, Clsrs... clsrs)
const
51 auto trnsfrmd_sndr = stdexec::transform_sender(std::forward<Sndr>(sndr), stdexec::get_env(rcvr));
53 stdexec::__forward_like<Sndr>(trnsfrmd_sndr.sndr),
54 std::forward<Rcvr>(rcvr),
55 std::move(trnsfrmd_sndr.clsr),
Concept that constrains the type of a sender that dispatches a functor for execution.
constexpr auto operator()(Sndr &&sndr, Rcvr &&rcvr, Clsrs... clsrs) const noexcept(sndr_has_nothrow_transform_sender &&is_nothrow_huddle) -> type
static constexpr bool sndr_has_nothrow_transform_sender
static constexpr bool is_nothrow_huddle
typename huddle_fn_t::type type
Huddle< child_of_sndr_t, Rcvr, clsr_of_sndr_t, Clsrs... > huddle_fn_t
typename stdexec::transform_sender_result_t< Sndr, stdexec::env_of_t< Rcvr > >::closure_t clsr_of_sndr_t
stdexec::__child_of< Sndr > child_of_sndr_t
OpStateType< Sndr, Rcvr, Clsrs... > type
constexpr auto operator()(Sndr &&sndr, Rcvr rcvr, Clsrs... clsrs) const noexcept(std::is_nothrow_constructible_v< type, Sndr &&, Rcvr &&, Clsrs &&... >) -> type