1#ifndef KOKKOS_EXECUTION_EXECUTION_SPACE_GET_EXEC_HPP
2#define KOKKOS_EXECUTION_EXECUTION_SPACE_GET_EXEC_HPP
4#include "Kokkos_Core.hpp"
16 :
public stdexec::__query<get_exec_t>
17 , stdexec::forwarding_query_t {
18 using stdexec::__query<
get_exec_t>::operator();
30template <Kokkos::ExecutionSpace Exec>
45 const Exec&
get() const noexcept {
58#define KOKKOS_EXECUTION_UPSERT_EXEC_TYPE(_exec_type_, _rcvr_type_) \
59 Impl::upsert_in_env_or_join_t< \
60 Kokkos::Execution::ExecutionSpaceImpl::get_exec_t, \
61 stdexec::__fwd_env_t<stdexec::env_of_t<_rcvr_type_>>, \
62 Kokkos::Execution::ExecutionSpaceImpl::ExecutionSpaceRef<_exec_type_> \
66#define KOKKOS_EXECUTION_UPSERT_EXEC(_exec_type_, _exec_, _rcvr_type_, _rcvr_) \
68 constexpr auto get_env() const noexcept -> KOKKOS_EXECUTION_UPSERT_EXEC_TYPE(_exec_type_, _rcvr_type_) { \
69 return Impl::upsert_in_env_or_join( \
70 Kokkos::Execution::ExecutionSpaceImpl::get_exec, \
71 stdexec::__fwd_env(stdexec::get_env(_rcvr_)), \
72 Kokkos::Execution::ExecutionSpaceImpl::ExecutionSpaceRef{_exec_}); \
constexpr get_exec_t get_exec
ExecutionSpaceRef & operator=(const ExecutionSpaceRef &) noexcept=default
const Exec & get() const noexcept
constexpr ExecutionSpaceRef(const Exec &exec) noexcept
constexpr const ExecutionSpaceRef & query(const get_exec_t &) const noexcept
ExecutionSpaceRef()=delete
friend constexpr auto operator<=>(const ExecutionSpaceRef &, const ExecutionSpaceRef &) noexcept=default
ExecutionSpaceRef(const ExecutionSpaceRef &) noexcept=default
ExecutionSpaceRef(ExecutionSpaceRef &&) noexcept=default