kokkos-execution 0.0.1
Loading...
Searching...
No Matches
get_exec.hpp
Go to the documentation of this file.
1#ifndef KOKKOS_EXECUTION_IMPL_GET_EXEC_HPP
2#define KOKKOS_EXECUTION_IMPL_GET_EXEC_HPP
3
4#include "Kokkos_Core.hpp"
5
7
13struct get_exec_t : public stdexec::__query<get_exec_t> {
14 using stdexec::__query<get_exec_t>::operator();
15};
16
17inline constexpr get_exec_t get_exec{};
18
26template <Kokkos::ExecutionSpace Exec>
28 using execution_space = Exec;
29
31
32 explicit constexpr ExecutionSpaceRef(const execution_space& exec) noexcept
33 : m_exec_ptr(&exec) {
34 }
35
37 ExecutionSpaceRef(const ExecutionSpaceRef&) noexcept = default;
38 ExecutionSpaceRef& operator=(const ExecutionSpaceRef&) noexcept = default;
39 ExecutionSpaceRef(ExecutionSpaceRef&&) noexcept = default;
40 ExecutionSpaceRef& operator=(ExecutionSpaceRef&&) noexcept = default;
41 ~ExecutionSpaceRef() noexcept = default;
42
43 const execution_space& get() const noexcept {
44 return *m_exec_ptr;
45 }
46
47 friend constexpr auto operator<=>(const ExecutionSpaceRef&, const ExecutionSpaceRef&) noexcept = default;
48
49 [[nodiscard]]
50 constexpr const ExecutionSpaceRef& query(const get_exec_t&) const noexcept {
51 return *this;
52 }
53};
54
55} // namespace Kokkos::Execution::Impl
56
57#endif // KOKKOS_EXECUTION_IMPL_GET_EXEC_HPP
constexpr get_exec_t get_exec
Definition get_exec.hpp:17
ExecutionSpaceRef & operator=(const ExecutionSpaceRef &) noexcept=default
ExecutionSpaceRef(const ExecutionSpaceRef &) noexcept=default
ExecutionSpaceRef(ExecutionSpaceRef &&) noexcept=default
friend constexpr auto operator<=>(const ExecutionSpaceRef &, const ExecutionSpaceRef &) noexcept=default
const execution_space & get() const noexcept
Definition get_exec.hpp:43
constexpr ExecutionSpaceRef(const execution_space &exec) noexcept
Definition get_exec.hpp:32
constexpr const ExecutionSpaceRef & query(const get_exec_t &) const noexcept
Definition get_exec.hpp:50