Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/covfie/sycl/utility/unique_ptr.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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 }