1#ifndef KOKKOS_EXECUTION_EXECUTION_SPACE_THEN_HPP
2#define KOKKOS_EXECUTION_EXECUTION_SPACE_THEN_HPP
14template <
typename Functor>
15requires(std::same_as<void, std::invoke_result_t<Functor>>)
19 template <std::
integral T>
27 template <
typename Sndr,
typename Env>
28 using policy_t = Kokkos::RangePolicy<exec_of_t<Sndr, Env>, Kokkos::LaunchBounds<1>>;
30 template <
typename Env,
typename Functor,
typename Sndr>
33 template <
typename Env,
typename Functor, execution_space_completing_sender<Env> Sndr>
35 auto operator()(
const Env& env, stdexec::then_t, Functor&& functor, Sndr&& sndr)
const
36 noexcept(std::is_nothrow_constructible_v<
42 auto schd = stdexec::get_completion_scheduler<stdexec::set_value_t>(stdexec::get_env(sndr), env);
49 std::forward<Sndr>(sndr)};
typename stdexec::__completion_scheduler_of_t< stdexec::set_value_t, Sndr, Env >::execution_space exec_of_t
Type of the execution space extracted from a sender's completion scheduler.
consteval std::string_view dispatch_label() noexcept
View the dispatch label as a std::string_view.
ParallelForClosure< std::string_view, Functor, ExecPolicy > closure_t
Inspired by https://github.com/kokkos/kokkos/blob/69273c3a4e7b6adeb95066341ca201d62fe1e698/core/src/i...
void operator()(const T) const
Custom algorithm for the Kokkos::parallel_for construct.