Template Class unique_ptr

Class Documentation

template<typename T, typename D = std::function<void(typename std::remove_all_extents<T>::type*)>>
class unique_ptr

smart pointer with device code getters

Behaves identically to std::unique_ptr for host code. Kernel code holds no ownership over unique_ptr unique_ptr lifetime is managed by host code only

Public Types

using pointer = typename std::unique_ptr<T, D>::pointer
using element_type = typename std::unique_ptr<T, D>::element_type
using deleter_type = typename std::unique_ptr<T, D>::deleter_type

Public Functions

inline constexpr unique_ptr() noexcept
inline constexpr unique_ptr(std::nullptr_t) noexcept
inline explicit unique_ptr(pointer p) noexcept
inline unique_ptr(pointer p, D d1) noexcept
inline unique_ptr(unique_ptr &&u) noexcept
inline void swap(unique_ptr &other) noexcept
inline explicit unique_ptr(std::unique_ptr<T, D> &&p) noexcept
template<class U, class E>
inline unique_ptr(unique_ptr<U, E> &&u) noexcept
inline unique_ptr &operator=(unique_ptr &&r) noexcept
template<class U, class E>
inline unique_ptr &operator=(unique_ptr<U, E> &&r) noexcept
inline unique_ptr &operator=(std::nullptr_t) noexcept
inline pointer release() noexcept
inline void reset(pointer ptr = pointer()) noexcept
inline pointer get() const noexcept
__device__ inline pointer get() const noexcept
inline D &get_deleter() noexcept
inline const D &get_deleter() const noexcept
inline explicit operator bool() const noexcept
__device__ inline explicit operator bool() const noexcept
inline std::add_lvalue_reference<T>::type operator*() const noexcept(noexcept(*std::declval<pointer>()))
__device__ inline std::add_lvalue_reference<T>::type operator*() const noexcept
inline pointer operator->() const noexcept
__device__ inline pointer operator->() const noexcept