1#ifndef KOKKOS_EXECUTION_EXECUTION_SPACE_CONTINUES_ON_HPP
2#define KOKKOS_EXECUTION_EXECUTION_SPACE_CONTINUES_ON_HPP
23template <stdexec::receiver Rcvr,
typename FwdPolicy = FwdWithExec>
30 stdexec::set_value(std::move(
rcvr));
33 template <
typename Error>
35 stdexec::set_error(std::move(
rcvr), std::forward<Error>(err));
39 stdexec::set_stopped(std::move(
rcvr));
43 constexpr auto get_env() const noexcept -> std::conditional_t<
46 experimental::execution::__envs::__without_t,
52 if constexpr (std::same_as<FwdPolicy, FwdWithoutExec>) {
53 return experimental::execution::without(stdexec::__fwd_env(stdexec::get_env(
rcvr)),
get_exec);
55 return stdexec::__fwd_env(stdexec::get_env(
rcvr));
61template <stdexec::sender Sndr>
70 stdexec::receiver Rcvr,
71 typename FwdPolicy = std::conditional_t<
73 stdexec::__detail::__completing_domain_t<stdexec::set_value_t, Sndr, stdexec::env_of_t<Rcvr>>,
80 stdexec::env_of_t<Rcvr>
86 stdexec::env_of_t<Rcvr>
92 auto connect(Rcvr rcvr) &&
noexcept(std::is_nothrow_move_constructible_v<Rcvr>)
96 return stdexec::connect(std::forward<Sndr>(
sndr), recv_t{.rcvr = std::move(rcvr)});
104 template <
typename Env, stdexec::__is_instance_of<Scheduler> Schd, stdexec::sender Sndr>
105 auto operator()(
const Env&, stdexec::continues_on_t, Schd&&, Sndr&& sndr)
const
106 noexcept(std::is_nothrow_constructible_v<ContinuesOnSender<Sndr>, Sndr&&>) {
#define KOKKOS_EXECUTION_IMPL_FORWARDING_ATTRIBUTES_GET_ENV(_type_, _obj_)
#define KOKKOS_EXECUTION_COMPL_SIGS_KEEP(_sndr_type_)
#define KOKKOS_EXECUTION_STDEXEC_PRAGMA_DIAGNOSTIC_IGNORED
Basic list of ignored diagnostics when including anything from stdexec.
constexpr bool has_when_all_child_with_at_least_one_child_completing_on_v
constexpr get_exec_t get_exec
constexpr bool has_fork_join_child_with_at_least_one_child_completing_on_v
Receiver for continues_on.
constexpr auto get_env() const noexcept -> std::conditional_t< std::same_as< FwdPolicy, FwdWithoutExec >, stdexec::__call_result_t< experimental::execution::__envs::__without_t, stdexec::__fwd_env_t< stdexec::env_of_t< Rcvr > >, get_exec_t >, stdexec::__fwd_env_t< stdexec::env_of_t< Rcvr > > >
void set_value() &&noexcept
stdexec::receiver_t receiver_concept
void set_error(Error &&err) &&noexcept
void set_stopped() &&noexcept
stdexec::sender_t sender_concept
auto connect(Rcvr rcvr) &&noexcept(std::is_nothrow_move_constructible_v< Rcvr >) -> stdexec::connect_result_t< Sndr, ContinuesOnReceiver< Rcvr, FwdPolicy > >