38 #ifndef ECUDA_PTR_UNIQUE_PTR_HPP
39 #define ECUDA_PTR_UNIQUE_PTR_HPP
43 #include "../global.hpp"
45 #include "../type_traits.hpp"
83 template<
typename T,
class Deleter=default_device_delete<T> >
101 typedef typename ecuda::add_pointer<T>::type
pointer;
116 #ifdef ECUDA_CPP11_AVAILABLE
123 #ifdef ECUDA_CPP11_AVAILABLE
126 current_ptr = std::move(src.ptr);
127 deleter = std::move(src.deleter);
131 current_ptr = std::move(src.ptr);
132 deleter = std::move(src.deleter);
163 #ifdef ECUDA_CPP11_AVAILABLE
175 return *(current_ptr+i);
180 template<
typename T2,
class D2>
__HOST__ __DEVICE__ bool operator< ( const unique_ptr<T2,D2>& other )
const {
return get() < other.get(); }
182 template<
typename T2,
class D2>
__HOST__ __DEVICE__ bool operator<=( const unique_ptr<T2,D2>& other )
const {
return get() <= other.get(); }
__DEVICE__ ecuda::add_lvalue_reference< T >::type operator*() const __NOEXCEPT__
__HOST__ __DEVICE__ pointer release() __NOEXCEPT__
A smart pointer that retains sole ownership of an object.
__HOST__ __DEVICE__ bool operator==(const unique_ptr< T2, D2 > &other) const
__HOST__ __DEVICE__ void reset(pointer ptr=pointer()) __NOEXCEPT__
__HOST__ __DEVICE__ __CONSTEXPR__ unique_ptr() __NOEXCEPT__
__HOST__ __DEVICE__ void swap(T &a, T &b) __NOEXCEPT__
__HOST__ __DEVICE__ ~unique_ptr()
__HOST__ __DEVICE__ unique_ptr(T *ptr) __NOEXCEPT__
__HOST__ __DEVICE__ bool operator>=(const unique_ptr< T2, D2 > &other) const
__HOST__ __DEVICE__ bool operator!=(const unique_ptr< T2, D2 > &other) const
__HOST__ __DEVICE__ void swap(unique_ptr &other) __NOEXCEPT__
__HOST__ __DEVICE__ unique_ptr(T *ptr, Deleter deleter) __NOEXCEPT__
__DEVICE__ ecuda::add_lvalue_reference< T >::type operator[](std::size_t i) const
__HOST__ __DEVICE__ pointer get() const
__HOST__ __DEVICE__ bool operator>(const unique_ptr< T2, D2 > &other) const
__HOST__ __DEVICE__ const deleter_type & get_deleter() const
__HOST__ __DEVICE__ deleter_type & get_deleter()
__HOST__ __DEVICE__ pointer operator->() const __NOEXCEPT__
ecuda::add_pointer< T >::type pointer