File indexing completed on 2025-09-17 08:54:13
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include <memory>
0010
0011 #include <sycl/sycl.hpp>
0012
0013 namespace covfie::utility::sycl {
0014 struct device_deleter {
0015 device_deleter(const ::sycl::queue & q)
0016 : queue(q)
0017 {
0018 }
0019
0020 device_deleter(device_deleter &&) = default;
0021
0022 device_deleter & operator=(device_deleter &&) = default;
0023
0024 void operator()(void * p) const
0025 {
0026 ::sycl::free(p, queue);
0027 }
0028
0029 private:
0030 ::sycl::queue queue;
0031 };
0032
0033 template <typename T>
0034 using unique_device_ptr = std::unique_ptr<T, device_deleter>;
0035 }