DPC++ Runtime
Runtime libraries for oneAPI DPC++
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress > Class Template Reference

Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C. More...

#include <sycl/multi_ptr.hpp>

Collaboration diagram for sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >:

Public Types

using value_type = ElementType
 
using pointer = std::conditional_t< is_decorated, decorated_type *, std::add_pointer_t< value_type > >
 
using reference = std::conditional_t< is_decorated, decorated_type &, std::add_lvalue_reference_t< value_type > >
 
using iterator_category = std::random_access_iterator_tag
 
using difference_type = std::ptrdiff_t
 

Public Member Functions

 multi_ptr ()
 
 multi_ptr (const multi_ptr &)=default
 
 multi_ptr (multi_ptr &&)=default
 
 multi_ptr (typename multi_ptr< ElementType, Space, access::decorated::yes >::pointer ptr)
 
 multi_ptr (std::nullptr_t)
 
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::global_space || Space == access::address_space::ext_intel_global_device_space)>>
 multi_ptr (accessor< ElementType, Dimensions, Mode, access::target::device, isPlaceholder, PropertyListT > Accessor)
 
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space)>>
 multi_ptr (accessor< ElementType, Dimensions, Mode, access::target::local, isPlaceholder, PropertyListT > Accessor)
 
template<int Dimensions, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space)>>
 multi_ptr (local_accessor< ElementType, Dimensions > Accessor)
 
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename RelayElementType = ElementType, typename = typename std::enable_if_t< _Space == Space && (Space == access::address_space::generic_space || Space == access::address_space::global_space || Space == access::address_space::ext_intel_global_device_space) && std::is_const<RelayElementType>::value && std::is_same<RelayElementType, ElementType>::value>>
 multi_ptr (accessor< typename std::remove_const_t< RelayElementType >, Dimensions, Mode, access::target::device, isPlaceholder, PropertyListT > Accessor)
 
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space RelaySpace = Space, typename RelayElementType = ElementType, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space) && std::is_const<RelayElementType>::value && std::is_same<RelayElementType, ElementType>::value>>
 multi_ptr (accessor< typename std::remove_const_t< RelayElementType >, Dimensions, Mode, access::target::local, isPlaceholder, PropertyListT > Accessor)
 
template<int Dimensions, access::address_space RelaySpace = Space, typename RelayElementType = ElementType, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space) && std::is_const<RelayElementType>::value && std::is_same<RelayElementType, ElementType>::value>>
 multi_ptr (local_accessor< typename std::remove_const_t< RelayElementType >, Dimensions > Accessor)
 
multi_ptroperator= (const multi_ptr &)=default
 
multi_ptroperator= (multi_ptr &&)=default
 
multi_ptroperator= (std::nullptr_t)
 
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, typename = std::enable_if_t<Space == access::address_space::generic_space && OtherSpace != access::address_space::constant_space>>
multi_ptroperator= (const multi_ptr< value_type, OtherSpace, OtherIsDecorated > &Other)
 
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, typename = std::enable_if_t<Space == access::address_space::generic_space && OtherSpace != access::address_space::constant_space>>
multi_ptroperator= (multi_ptr< value_type, OtherSpace, OtherIsDecorated > &&Other)
 
reference operator* () const
 
pointer operator-> () const
 
reference operator[] (difference_type index) const
 
pointer get () const
 
decorated_type * get_decorated () const
 
std::add_pointer_t< value_typeget_raw () const
 
 __SYCL2020_DEPRECATED ("Conversion to pointer type is deprecated since SYCL " "2020. Please use get() instead.") operator pointer() const
 
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && RelaySpace == access::address_space::generic_space && (OtherSpace == access::address_space::private_space || OtherSpace == access::address_space::global_space || OtherSpace == access::address_space::local_space)>>
 operator multi_ptr< value_type, OtherSpace, OtherIsDecorated > ()
 
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, typename RelayElementType = ElementType, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< std::is_same<RelayElementType, ElementType>::value && !std::is_const<RelayElementType>::value && RelaySpace == Space && RelaySpace == access::address_space::generic_space && (OtherSpace == access::address_space::private_space || OtherSpace == access::address_space::global_space || OtherSpace == access::address_space::local_space)>>
 operator multi_ptr< const value_type, OtherSpace, OtherIsDecorated > ()
 
template<access::decorated ConvIsDecorated, typename RelayElementType = ElementType, typename = typename std::enable_if_t< std::is_same<RelayElementType, ElementType>::value && !std::is_const<RelayElementType>::value>>
 operator multi_ptr< void, Space, ConvIsDecorated > () const
 
template<access::decorated ConvIsDecorated, typename RelayElementType = ElementType, typename = typename std::enable_if_t< std::is_same<RelayElementType, ElementType>::value && std::is_const<RelayElementType>::value>>
 operator multi_ptr< const void, Space, ConvIsDecorated > () const
 
template<access::decorated ConvIsDecorated>
 operator multi_ptr< const value_type, Space, ConvIsDecorated > () const
 
 operator multi_ptr< value_type, Space, detail::NegateDecorated< DecorateAddress >::value > () const
 
template<access::address_space GlobalSpace = access::address_space::global_space, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && GlobalSpace == access::address_space::global_space && (Space == access::address_space::ext_intel_global_device_space || Space == access::address_space::ext_intel_global_host_space)>>
 operator multi_ptr< ElementType, GlobalSpace, DecorateAddress > () const
 
template<access::address_space _Space = Space, typename = typename std::enable_if_t< _Space == Space && Space == access::address_space::global_space>>
void prefetch (size_t NumElements) const
 
multi_ptroperator++ ()
 
multi_ptr operator++ (int)
 
multi_ptroperator-- ()
 
multi_ptr operator-- (int)
 
multi_ptroperator+= (difference_type r)
 
multi_ptroperator-= (difference_type r)
 
multi_ptr operator+ (difference_type r) const
 
multi_ptr operator- (difference_type r) const
 

Static Public Attributes

static constexpr bool is_decorated
 
static constexpr access::address_space address_space = Space
 

Detailed Description

template<typename ElementType, access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
class sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >

Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C.

Definition at line 78 of file multi_ptr.hpp.

Member Typedef Documentation

◆ difference_type

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
using sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::difference_type = std::ptrdiff_t

Definition at line 94 of file multi_ptr.hpp.

◆ iterator_category

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
using sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::iterator_category = std::random_access_iterator_tag

Definition at line 93 of file multi_ptr.hpp.

◆ pointer

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
using sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::pointer = std::conditional_t<is_decorated, decorated_type *, std::add_pointer_t<value_type> >

Definition at line 89 of file multi_ptr.hpp.

◆ reference

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
using sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::reference = std::conditional_t<is_decorated, decorated_type &, std::add_lvalue_reference_t<value_type> >

Definition at line 91 of file multi_ptr.hpp.

◆ value_type

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
using sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::value_type = ElementType

Definition at line 88 of file multi_ptr.hpp.

Constructor & Destructor Documentation

◆ multi_ptr() [1/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( )
inline

Definition at line 108 of file multi_ptr.hpp.

◆ multi_ptr() [2/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( const multi_ptr< ElementType, Space, DecorateAddress > &  )
default

◆ multi_ptr() [3/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( multi_ptr< ElementType, Space, DecorateAddress > &&  )
default

◆ multi_ptr() [4/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( typename multi_ptr< ElementType, Space, access::decorated::yes >::pointer  ptr)
inlineexplicit

Definition at line 111 of file multi_ptr.hpp.

◆ multi_ptr() [5/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( std::nullptr_t  )
inline

Definition at line 114 of file multi_ptr.hpp.

◆ multi_ptr() [6/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::global_space || Space == access::address_space::ext_intel_global_device_space)>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( accessor< ElementType, Dimensions, Mode, access::target::device, isPlaceholder, PropertyListT >  Accessor)
inline

Definition at line 126 of file multi_ptr.hpp.

◆ multi_ptr() [7/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space)>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( accessor< ElementType, Dimensions, Mode, access::target::local, isPlaceholder, PropertyListT >  Accessor)
inline

Definition at line 139 of file multi_ptr.hpp.

◆ multi_ptr() [8/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<int Dimensions, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space)>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( local_accessor< ElementType, Dimensions Accessor)
inline

Definition at line 150 of file multi_ptr.hpp.

◆ multi_ptr() [9/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space _Space = Space, typename RelayElementType = ElementType, typename = typename std::enable_if_t< _Space == Space && (Space == access::address_space::generic_space || Space == access::address_space::global_space || Space == access::address_space::ext_intel_global_device_space) && std::is_const<RelayElementType>::value && std::is_same<RelayElementType, ElementType>::value>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( accessor< typename std::remove_const_t< RelayElementType >, Dimensions, Mode, access::target::device, isPlaceholder, PropertyListT >  Accessor)
inline

Definition at line 176 of file multi_ptr.hpp.

◆ multi_ptr() [10/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<int Dimensions, access::mode Mode, access::placeholder isPlaceholder, typename PropertyListT , access::address_space RelaySpace = Space, typename RelayElementType = ElementType, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space) && std::is_const<RelayElementType>::value && std::is_same<RelayElementType, ElementType>::value>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( accessor< typename std::remove_const_t< RelayElementType >, Dimensions, Mode, access::target::local, isPlaceholder, PropertyListT >  Accessor)
inline

Definition at line 192 of file multi_ptr.hpp.

◆ multi_ptr() [11/11]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<int Dimensions, access::address_space RelaySpace = Space, typename RelayElementType = ElementType, typename = typename std::enable_if_t< RelaySpace == Space && (Space == access::address_space::generic_space || Space == access::address_space::local_space) && std::is_const<RelayElementType>::value && std::is_same<RelayElementType, ElementType>::value>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::multi_ptr ( local_accessor< typename std::remove_const_t< RelayElementType >, Dimensions Accessor)
inline

Definition at line 206 of file multi_ptr.hpp.

Member Function Documentation

◆ __SYCL2020_DEPRECATED()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::__SYCL2020_DEPRECATED ( "Conversion to pointer type is deprecated since SYCL " "2020. Please use get() instead."  ) const
inline

Definition at line 249 of file multi_ptr.hpp.

References std::get().

◆ get()

◆ get_decorated()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
decorated_type* sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::get_decorated ( ) const
inline

◆ get_raw()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
std::add_pointer_t<value_type> sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::get_raw ( ) const
inline

Definition at line 245 of file multi_ptr.hpp.

References std::get().

◆ operator multi_ptr< const value_type, OtherSpace, OtherIsDecorated >()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, typename RelayElementType = ElementType, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< std::is_same<RelayElementType, ElementType>::value && !std::is_const<RelayElementType>::value && RelaySpace == Space && RelaySpace == access::address_space::generic_space && (OtherSpace == access::address_space::private_space || OtherSpace == access::address_space::global_space || OtherSpace == access::address_space::local_space)>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator multi_ptr< const value_type, OtherSpace, OtherIsDecorated > ( )
inlineexplicit

Definition at line 281 of file multi_ptr.hpp.

References sycl::_V1::detail::cast_AS().

◆ operator multi_ptr< const value_type, Space, ConvIsDecorated >()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::decorated ConvIsDecorated>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator multi_ptr< const value_type, Space, ConvIsDecorated > ( ) const
inline

Definition at line 311 of file multi_ptr.hpp.

References sycl::_V1::detail::cast_AS(), and sycl::_V1::Space.

◆ operator multi_ptr< const void, Space, ConvIsDecorated >()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::decorated ConvIsDecorated, typename RelayElementType = ElementType, typename = typename std::enable_if_t< std::is_same<RelayElementType, ElementType>::value && std::is_const<RelayElementType>::value>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator multi_ptr< const void, Space, ConvIsDecorated > ( ) const
inline

Definition at line 304 of file multi_ptr.hpp.

References sycl::_V1::detail::cast_AS().

◆ operator multi_ptr< ElementType, GlobalSpace, DecorateAddress >()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::address_space GlobalSpace = access::address_space::global_space, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && GlobalSpace == access::address_space::global_space && (Space == access::address_space::ext_intel_global_device_space || Space == access::address_space::ext_intel_global_host_space)>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator multi_ptr< ElementType, GlobalSpace, DecorateAddress > ( ) const
inlineexplicit

Definition at line 337 of file multi_ptr.hpp.

◆ operator multi_ptr< value_type, OtherSpace, OtherIsDecorated >()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, access::address_space RelaySpace = Space, typename = typename std::enable_if_t< RelaySpace == Space && RelaySpace == access::address_space::generic_space && (OtherSpace == access::address_space::private_space || OtherSpace == access::address_space::global_space || OtherSpace == access::address_space::local_space)>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator multi_ptr< value_type, OtherSpace, OtherIsDecorated > ( )
inlineexplicit

Definition at line 262 of file multi_ptr.hpp.

References sycl::_V1::detail::cast_AS().

◆ operator multi_ptr< value_type, Space, detail::NegateDecorated< DecorateAddress >::value >()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator multi_ptr< value_type, Space, detail::NegateDecorated< DecorateAddress >::value > ( ) const
inline

Definition at line 318 of file multi_ptr.hpp.

References sycl::_V1::Space.

◆ operator multi_ptr< void, Space, ConvIsDecorated >()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::decorated ConvIsDecorated, typename RelayElementType = ElementType, typename = typename std::enable_if_t< std::is_same<RelayElementType, ElementType>::value && !std::is_const<RelayElementType>::value>>
sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator multi_ptr< void, Space, ConvIsDecorated > ( ) const
inline

Definition at line 293 of file multi_ptr.hpp.

References sycl::_V1::detail::cast_AS().

◆ operator*()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
reference sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator* ( ) const
inline

Definition at line 239 of file multi_ptr.hpp.

◆ operator+()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator+ ( difference_type  r) const
inline

Definition at line 383 of file multi_ptr.hpp.

References sycl::_V1::r.

◆ operator++() [1/2]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator++ ( )
inline

Definition at line 357 of file multi_ptr.hpp.

◆ operator++() [2/2]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator++ ( int  )
inline

Definition at line 361 of file multi_ptr.hpp.

◆ operator+=()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator+= ( difference_type  r)
inline

Definition at line 375 of file multi_ptr.hpp.

References sycl::_V1::r.

◆ operator-()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator- ( difference_type  r) const
inline

Definition at line 386 of file multi_ptr.hpp.

References sycl::_V1::r.

◆ operator--() [1/2]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator-- ( )
inline

Definition at line 366 of file multi_ptr.hpp.

◆ operator--() [2/2]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator-- ( int  )
inline

Definition at line 370 of file multi_ptr.hpp.

◆ operator-=()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator-= ( difference_type  r)
inline

Definition at line 379 of file multi_ptr.hpp.

References sycl::_V1::r.

◆ operator->()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
pointer sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator-> ( ) const
inline

Definition at line 240 of file multi_ptr.hpp.

References std::get().

◆ operator=() [1/5]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator= ( const multi_ptr< ElementType, Space, DecorateAddress > &  )
default

◆ operator=() [2/5]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, typename = std::enable_if_t<Space == access::address_space::generic_space && OtherSpace != access::address_space::constant_space>>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator= ( const multi_ptr< value_type, OtherSpace, OtherIsDecorated > &  Other)
inline

◆ operator=() [3/5]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator= ( multi_ptr< ElementType, Space, DecorateAddress > &&  )
default

◆ operator=() [4/5]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::address_space OtherSpace, access::decorated OtherIsDecorated, typename = std::enable_if_t<Space == access::address_space::generic_space && OtherSpace != access::address_space::constant_space>>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator= ( multi_ptr< value_type, OtherSpace, OtherIsDecorated > &&  Other)
inline

Definition at line 234 of file multi_ptr.hpp.

◆ operator=() [5/5]

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
multi_ptr& sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator= ( std::nullptr_t  )
inline

Definition at line 214 of file multi_ptr.hpp.

◆ operator[]()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
reference sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::operator[] ( difference_type  index) const
inline

Definition at line 241 of file multi_ptr.hpp.

◆ prefetch()

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
template<access::address_space _Space = Space, typename = typename std::enable_if_t< _Space == Space && Space == access::address_space::global_space>>
void sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::prefetch ( size_t  NumElements) const
inline

Definition at line 350 of file multi_ptr.hpp.

References __spirv_ocl_prefetch().

Member Data Documentation

◆ address_space

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
constexpr access::address_space sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::address_space = Space
staticconstexpr

Definition at line 86 of file multi_ptr.hpp.

◆ is_decorated

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
constexpr bool sycl::_V1::multi_ptr< ElementType, Space, DecorateAddress >::is_decorated
staticconstexpr
Initial value:

Definition at line 84 of file multi_ptr.hpp.


The documentation for this class was generated from the following files: