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 via- getmember 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 by- device_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 to- T*.- 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 another- device_ptrwhose pointer type is convertible to- T*.- Template Parameters
- U – A type whose pointer is convertible to - T*.
- Parameters
- other – A - device_ptrto a- Uto 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 another- device_ptrwhose pointer type is convertible to- T*.- Template Parameters
- U – A type whose pointer is convertible to - T*.
- Parameters
- other – A - device_ptrto a- Uto 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