cl::sycl::multi_ptr< void, asp > Class Template Reference
Generic pointer class, specialization for void. More...
#include <multi_pointer.h>
Public Types | |
using | value_type = typename multi_ptr_base::element_type |
using | difference_type = typename multi_ptr_base::difference_type |
using | pointer = typename multi_ptr_base::pointer_t |
using | pointer = typename multi_ptr_base::const_pointer_t |
Public Member Functions | |
multi_ptr ()=default | |
Default constructor. More... | |
multi_ptr (ptr_t ptr) | |
Initialize the object using the given pointer. More... | |
template<int dimensions, access::mode Mode, access::placeholder isPlaceholder = access::placeholder::false_t, COMPUTECPP_ENABLE_IF( void,(detail::address_space_trait< void, asp >::hasTarget)) > | |
multi_ptr (cl::sycl::accessor< void, dimensions, Mode, detail::address_space_trait< void, asp >::targetValue, isPlaceholder > acc) | |
Initialize the object using an accessor. More... | |
template<COMPUTECPP_ENABLE_IF(void,(!std::is_same< ptr_t, ptr_unqual_t >::value)) > | |
multi_ptr (ptr_unqual_t ptr) | |
Initialize the object using the given non address space qualified pointer. More... | |
template<typename ElementType , COMPUTECPP_ENABLE_IF(ElementType,(!std::is_same< ElementType, void >::value)) > | |
multi_ptr (const multi_ptr< ElementType, asp > &ptr) | |
Explicit conversion from a multi_ptr<ElementType> More... | |
template<typename ElementType , int dimensions, access::mode Mode, access::placeholder isPlaceholder, COMPUTECPP_ENABLE_IF( ElementType,(detail::address_space_trait< ElementType, asp >::hasTarget)) > | |
multi_ptr (accessor< ElementType, dimensions, Mode, detail::address_space_trait< ElementType, asp >::targetValue, isPlaceholder > acc) | |
Initialize the object using an accessor. More... | |
template<typename ElementType > | |
operator multi_ptr< ElementType, asp > () const | |
Explicit conversion to a multi_ptr<ElementType> More... | |
Protected Types | |
using | multi_ptr_base = detail::multi_ptr_base< void, asp > |
Detailed Description
template<cl::sycl::access::address_space asp>
class cl::sycl::multi_ptr< void, asp >
Generic pointer class, specialization for void.
- Template Parameters
-
asp The address space the pointer class points to.
Definition at line 848 of file multi_pointer.h.
Member Typedef Documentation
◆ difference_type
using cl::sycl::multi_ptr< void, asp >::difference_type = typename multi_ptr_base::difference_type |
Definition at line 869 of file multi_pointer.h.
◆ multi_ptr_base
|
protected |
Definition at line 850 of file multi_pointer.h.
◆ pointer [1/2]
using cl::sycl::multi_ptr< void, asp >::pointer = typename multi_ptr_base::pointer_t |
Definition at line 871 of file multi_pointer.h.
◆ pointer [2/2]
using cl::sycl::multi_ptr< void, asp >::pointer = typename multi_ptr_base::const_pointer_t |
Definition at line 874 of file multi_pointer.h.
◆ value_type
using cl::sycl::multi_ptr< void, asp >::value_type = typename multi_ptr_base::element_type |
Definition at line 868 of file multi_pointer.h.
Constructor & Destructor Documentation
◆ multi_ptr() [1/6]
|
default |
Default constructor.
◆ multi_ptr() [2/6]
|
inline |
Initialize the object using the given pointer.
- Parameters
-
ptr Pointer that the class should manipulate.
Definition at line 895 of file multi_pointer.h.
◆ multi_ptr() [3/6]
|
inline |
Initialize the object using an accessor.
- Template Parameters
-
dimensions Accessor dimensions Mode Accessor mode isPlaceholder Whether the accessor is a placeholder COMPUTECPP_ENABLE_IF This constructor is only available for access::address_space::global_space access::address_space::constant_space access::address_space::local_space
- Parameters
-
acc Accessor to retrieve the pointer from
Definition at line 911 of file multi_pointer.h.
◆ multi_ptr() [4/6]
cl::sycl::multi_ptr< void, asp >::multi_ptr | ( | ptr_unqual_t | ptr | ) |
Initialize the object using the given non address space qualified pointer.
This conversion is defined by the device compiler.
- Template Parameters
-
COMPUTECPP_ENABLE_IF Only available if the provided pointer is not address space qualified.
- Parameters
-
ptr Pointer that is not address space qualified that the class should manipulate
- Note
- This constructor has to be declared in order for the offload device compiler to deduce address spaces, but it should not be defined because it should never actually be used in Offload. It is used in the ASP compiler, however.
◆ multi_ptr() [5/6]
|
inlineexplicit |
Explicit conversion from a multi_ptr<ElementType>
- Template Parameters
-
ElementType Underlying type of the pointer to convert COMPUTECPP_ENABLE_IF Only enabled if ElementType is not void
- Parameters
-
ptr Pointer to convert to multi_ptr<void>
Definition at line 948 of file multi_pointer.h.
◆ multi_ptr() [6/6]
|
inline |
Initialize the object using an accessor.
- Template Parameters
-
ElementType Underlying type of the accessor data dimensions Accessor dimensions Mode Accessor mode isPlaceholder Whether the accessor is a placeholder COMPUTECPP_ENABLE_IF This constructor is only available for access::address_space::global_space access::address_space::constant_space access::address_space::local_space
- Parameters
-
acc Accessor to retrieve the pointer from
Definition at line 967 of file multi_pointer.h.
Member Function Documentation
◆ operator multi_ptr< ElementType, asp >()
|
inlineexplicit |
Explicit conversion to a multi_ptr<ElementType>
- Returns
- This pointer object converted to a multi_ptr<ElementType>
Definition at line 977 of file multi_pointer.h.
The documentation for this class was generated from the following file: