Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 08:54:13

0001 /*
0002  * SPDX-PackageName: "covfie, a part of the ACTS project"
0003  * SPDX-FileCopyrightText: 2022 CERN
0004  * SPDX-License-Identifier: MPL-2.0
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 }