thrust::device_ptr
Defined in thrust/device_ptr.h
-
template<typename T>
class device_ptr : public thrust::pointer<T, thrust::device_system_tag, thrust::device_reference<T>, thrust::device_ptr<T>> device_ptris a pointer-like object which points to an object that resides in memory associated with the device system.device_ptrhas pointer semantics: it may be dereferenced safely from anywhere, including the host, and may be manipulated with pointer arithmetic.device_ptrcan be created with device_new, device_malloc, device_malloc_allocator, device_allocator, or device_pointer_cast, or by explicitly calling its constructor with a raw pointer.The raw pointer contained in a
device_ptrmay be obtained viagetmember function or the raw_pointer_cast free function.Algorithms operating on
device_ptrtypes will automatically be dispatched to the device system.See also
device_new
See also
device_malloc
See also
See also
See also
device_pointer_cast
See also
raw_pointer_cast
Note
device_ptris not a smart pointer; it is the programmer’s responsibility to deallocate memory pointed to bydevice_ptr.Public Functions
-
_CCCL_HIDE_FROM_ABI device_ptr() = default
-
inline device_ptr(std::nullptr_t)
Construct a null
device_ptr.- Parameters
ptr – A null pointer.
- Post
get() == nullptr.
-
template<typename U>
inline explicit device_ptr(U *ptr) Construct a
device_ptrfrom a raw pointer which is convertible toT*.- Template Parameters
U – A type whose pointer is convertible to
T*.- Parameters
ptr – A raw pointer to a
Uin device memory to construct from.- Pre
std::is_convertible_v<U*, T*> == true.- Pre
ptrpoints to a location in device memory.- Post
get() == nullptr.
-
template<typename U>
inline device_ptr(device_ptr<U> const &other) Copy construct a
device_ptrfrom anotherdevice_ptrwhose pointer type is convertible toT*.- Template Parameters
U – A type whose pointer is convertible to
T*.- Parameters
other – A
device_ptrto aUto construct from.- Pre
std::is_convertible_v<U*, T*> == true.- Post
get() == other.get().
-
template<typename U>
inline device_ptr &operator=(device_ptr<U> const &other) Set this
device_ptrto point to the same object as anotherdevice_ptrwhose pointer type is convertible toT*.- Template Parameters
U – A type whose pointer is convertible to
T*.- Parameters
other – A
device_ptrto aUto assign from.- Pre
std::is_convertible_v<U*, T*> == true.- Post
get() == other.get().- Returns
*this.
-
inline device_ptr &operator=(std::nullptr_t)
Set this
device_ptrto null.- Parameters
ptr – A null pointer.
- Post
get() == nullptr.- Returns
*this.
-
T *get() const
Return the raw pointer that this
device_ptrpoints to.
-
_CCCL_HIDE_FROM_ABI device_ptr() = default