45 #ifndef KOKKOS_ANONYMOUSSPACE_HPP
46 #define KOKKOS_ANONYMOUSSPACE_HPP
48 #include <Kokkos_Core_fwd.hpp>
49 #include <Kokkos_Concepts.hpp>
56 class AnonymousSpace {
59 typedef AnonymousSpace memory_space;
60 typedef Kokkos::DefaultExecutionSpace execution_space;
61 typedef size_t size_type;
64 typedef Kokkos::Device<execution_space, memory_space> device_type;
67 AnonymousSpace() =
default;
68 AnonymousSpace(AnonymousSpace &&rhs) =
default;
69 AnonymousSpace(
const AnonymousSpace &rhs) =
default;
70 AnonymousSpace &operator=(AnonymousSpace &&) =
default;
71 AnonymousSpace &operator=(
const AnonymousSpace &) =
default;
72 ~AnonymousSpace() =
default;
75 static constexpr
const char *name() {
return "Anonymous"; }
86 template <
typename OtherSpace>
87 struct MemorySpaceAccess<Kokkos::AnonymousSpace, OtherSpace> {
88 enum { assignable =
true };
89 enum { accessible =
true };
90 enum { deepcopy =
true };
93 template <
typename OtherSpace>
94 struct MemorySpaceAccess<OtherSpace, Kokkos::AnonymousSpace> {
95 enum { assignable =
true };
96 enum { accessible =
true };
97 enum { deepcopy =
true };
101 struct MemorySpaceAccess<Kokkos::AnonymousSpace, Kokkos::AnonymousSpace> {
102 enum { assignable =
true };
103 enum { accessible =
true };
104 enum { deepcopy =
true };
107 template <
typename OtherSpace>
108 struct VerifyExecutionCanAccessMemorySpace<OtherSpace, Kokkos::AnonymousSpace> {
110 KOKKOS_INLINE_FUNCTION
static void verify(
void) {}
111 KOKKOS_INLINE_FUNCTION
static void verify(
const void *) {}
114 template <
typename OtherSpace>
115 struct VerifyExecutionCanAccessMemorySpace<Kokkos::AnonymousSpace, OtherSpace> {
117 KOKKOS_INLINE_FUNCTION
static void verify(
void) {}
118 KOKKOS_INLINE_FUNCTION
static void verify(
const void *) {}
125 #endif // #define KOKKOS_ANONYMOUSSPACE_HPP