44 #ifndef KOKKOS_ANONYMOUSSPACE_HPP
45 #define KOKKOS_ANONYMOUSSPACE_HPP
47 #include <Kokkos_Core_fwd.hpp>
48 #include <Kokkos_Concepts.hpp>
55 class AnonymousSpace {
58 typedef AnonymousSpace memory_space;
59 typedef Kokkos::DefaultExecutionSpace execution_space;
60 typedef size_t size_type;
63 typedef Kokkos::Device< execution_space, memory_space > device_type;
66 AnonymousSpace() =
default;
67 AnonymousSpace( AnonymousSpace && rhs ) =
default;
68 AnonymousSpace(
const AnonymousSpace & rhs ) =
default;
69 AnonymousSpace & operator = ( AnonymousSpace && ) =
default;
70 AnonymousSpace & operator = (
const AnonymousSpace & ) =
default;
71 ~AnonymousSpace() =
default;
74 static constexpr
const char* name() {
return "Anonymous"; }
85 template<
typename OtherSpace>
86 struct MemorySpaceAccess< Kokkos::AnonymousSpace , OtherSpace > {
87 enum { assignable =
true };
88 enum { accessible =
true };
89 enum { deepcopy =
true };
92 template<
typename OtherSpace>
93 struct MemorySpaceAccess< OtherSpace, Kokkos::AnonymousSpace > {
94 enum { assignable =
true };
95 enum { accessible =
true };
96 enum { deepcopy =
true };
100 struct MemorySpaceAccess< Kokkos::AnonymousSpace, Kokkos::AnonymousSpace > {
101 enum { assignable =
true };
102 enum { accessible =
true };
103 enum { deepcopy =
true };
106 template<
typename OtherSpace>
107 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>
118 KOKKOS_INLINE_FUNCTION
static void verify(
void) {}
119 KOKKOS_INLINE_FUNCTION
static void verify(
const void *) {}
126 #endif // #define KOKKOS_ANONYMOUSSPACE_HPP