DPC++ Runtime
Runtime libraries for oneAPI DPC++
multi_ptr.hpp File Reference
#include <CL/__spirv/spirv_ops.hpp>
#include <sycl/access/access.hpp>
#include <sycl/aliases.hpp>
#include <sycl/detail/defines_elementary.hpp>
#include <sycl/detail/type_traits.hpp>
#include <sycl/half_type.hpp>
#include <cstddef>
#include <iterator>
#include <type_traits>
Include dependency graph for multi_ptr.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sycl::_V1::detail::LegacyPointerTypes< ElementType, Space >
 
struct  sycl::_V1::detail::LegacyPointerTypes< ElementType, access::address_space::constant_space >
 
struct  sycl::_V1::detail::LegacyReferenceTypes< ElementType, Space >
 
struct  sycl::_V1::detail::LegacyReferenceTypes< ElementType, access::address_space::constant_space >
 

Namespaces

 sycl
 
 sycl::_V1
 
 sycl::_V1::detail
 

Typedefs

using sycl::_V1::value_type = const void
 
using sycl::_V1::pointer = std::conditional_t< is_decorated, decorated_type *, std::add_pointer_t< value_type > >
 
using sycl::_V1::difference_type = std::ptrdiff_t
 

Functions

template<typename ElementType , access::address_space Space, access::decorated DecorateAddress = access::decorated::legacy>
class sycl::_V1::__SYCL_TYPE (multi_ptr) multi_ptr
 Provides constructors for address space qualified and non address space qualified pointers to allow interoperability between plain C++ and OpenCL C. More...
 
template<access::address_space Space, access::decorated DecorateAddress>
class sycl::_V1::__SYCL_TYPE (multi_ptr) multi_ptr< const void
 Specialization of multi_ptr for const void. More...
 
 sycl::_V1::multi_ptr ()
 
 sycl::_V1::multi_ptr (const multi_ptr &)=default
 
 sycl::_V1::multi_ptr (multi_ptr &&)=default
 
 sycl::_V1::multi_ptr (typename multi_ptr< const void, Space, access::decorated::yes >::pointer ptr)
 
 sycl::_V1::multi_ptr (std::nullptr_t)
 
template<typename ElementType , 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::global_space || Space == access::address_space::generic_space || Space == access::address_space::ext_intel_global_device_space)>>
 sycl::_V1::multi_ptr (accessor< ElementType, Dimensions, Mode, target::device, isPlaceholder, PropertyListT > Accessor)
 
template<typename ElementType , 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::local_space>>
 sycl::_V1::__SYCL2020_DEPRECATED ("multi_ptr construction using target::local specialized " "accessor is deprecated since SYCL 2020") multi_ptr(accessor< ElementType
 
PropertyListT int access::address_space multi_ptr & sycl::_V1::operator= (multi_ptr &&)=default
 
multi_ptr & sycl::_V1::operator= (std::nullptr_t)
 
pointer sycl::_V1::get () const
 
 sycl::_V1::__SYCL2020_DEPRECATED ("Conversion to pointer type is deprecated since SYCL " "2020. Please use get() instead.") operator pointer() const
 
template<typename ElementType , typename = typename std::enable_if_t<std::is_const_v<ElementType>>>
 sycl::_V1::operator multi_ptr< ElementType, Space, DecorateAddress > () 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)>>
 sycl::_V1::operator multi_ptr< const void, GlobalSpace, DecorateAddress > () const
 
template<typename ElementType >
 sycl::_V1::operator multi_ptr< ElementType, Space, DecorateAddress > () 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)>>
 sycl::_V1::operator multi_ptr< void, GlobalSpace, DecorateAddress > () const
 

Variables

static constexpr bool sycl::_V1::is_decorated
 
static constexpr access::address_space sycl::_V1::address_space = Space
 
 sycl::_V1::Mode
 
 sycl::_V1::isPlaceholder
 
PropertyListT sycl::_V1::Accessor
 
PropertyListT int access::address_space sycl::_V1::RelaySpace = Space