7#include <dr/sp/init.hpp>
8#include <sycl/sycl.hpp>
14 requires(std::is_trivially_copyable_v<T> || std::is_void_v<T>)
24#ifdef __SYCL_DEVICE_ONLY__
27 auto &&q = dr::sp::__detail::default_queue();
28 char buffer[
sizeof(T)] __attribute__((aligned(
sizeof(T))));
29 q.memcpy(
reinterpret_cast<T *
>(buffer), pointer_,
sizeof(T)).wait();
30 return *
reinterpret_cast<T *
>(buffer);
35 requires(!std::is_const_v<T>)
37#ifdef __SYCL_DEVICE_ONLY__
40 auto &&q = dr::sp::__detail::default_queue();
41 q.memcpy(pointer_, &value,
sizeof(T)).wait();
47#ifdef __SYCL_DEVICE_ONLY__
48 *pointer_ = *other.pointer_;
Definition: device_ref.hpp:15