// Copyright 2025, Amlal El Mahrouss (amlal@nekernel.org) // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // Official repository: https://github.com/ocl-foss-org/core #ifndef OCL_SMART_PTR #define OCL_SMART_PTR #include #include #include #include namespace ocl { template > using unique_ptr = std::unique_ptr; template using shared_ptr = std::shared_ptr; template using weak_ptr = std::weak_ptr; /// @brief Constructs a `delete_ptr`, that is, a pointer that isn't deleted from the heap. template inline auto delete_ptr(Type* object) -> shared_ptr { return shared_ptr{object, boost::null_deleter{}}; } } // namespace ocl #endif // ifndef OCL_SMART_PTR