DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
cl::sycl::buffer< T, dimensions, AllocatorT, typename > Class Template Reference

Defines a shared array that can be used by kernels in queues. More...

#include <CL/sycl/buffer.hpp>

Public Types

using value_type = T
 
using reference = value_type &
 
using const_reference = const value_type &
 
using allocator_type = AllocatorT
 
template<int dims>
using EnableIfOneDimension = typename detail::enable_if_t< 1==dims >
 
template<class Container >
using EnableIfContiguous = detail::void_t< detail::enable_if_t< std::is_convertible< detail::remove_pointer_t< decltype(std::declval< Container >().data())>(*)[], const T(*)[]>::value >, decltype(std::declval< Container >().size())>
 
template<class It >
using EnableIfItInputIterator = detail::enable_if_t< std::is_convertible< typename std::iterator_traits< It >::iterator_category, std::input_iterator_tag >::value >
 
template<typename ItA , typename ItB >
using EnableIfSameNonConstIterators = typename detail::enable_if_t< std::is_same< ItA, ItB >::value &&!std::is_const< ItA >::value, ItA >
 

Public Member Functions

 buffer (const range< dimensions > &bufferRange, const property_list &propList={})
 
 buffer (const range< dimensions > &bufferRange, AllocatorT allocator, const property_list &propList={})
 
 buffer (T *hostData, const range< dimensions > &bufferRange, const property_list &propList={})
 
 buffer (T *hostData, const range< dimensions > &bufferRange, AllocatorT allocator, const property_list &propList={})
 
template<typename _T = T>
 buffer (EnableIfSameNonConstIterators< T, _T > const *hostData, const range< dimensions > &bufferRange, const property_list &propList={})
 
template<typename _T = T>
 buffer (EnableIfSameNonConstIterators< T, _T > const *hostData, const range< dimensions > &bufferRange, AllocatorT allocator, const property_list &propList={})
 
 buffer (const std::shared_ptr< T > &hostData, const range< dimensions > &bufferRange, AllocatorT allocator, const property_list &propList={})
 
 buffer (const std::shared_ptr< T[]> &hostData, const range< dimensions > &bufferRange, AllocatorT allocator, const property_list &propList={})
 
 buffer (const std::shared_ptr< T > &hostData, const range< dimensions > &bufferRange, const property_list &propList={})
 
 buffer (const std::shared_ptr< T[]> &hostData, const range< dimensions > &bufferRange, const property_list &propList={})
 
template<class InputIterator , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfItInputIterator<InputIterator>>
 buffer (InputIterator first, InputIterator last, AllocatorT allocator, const property_list &propList={})
 
template<class InputIterator , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfItInputIterator<InputIterator>>
 buffer (InputIterator first, InputIterator last, const property_list &propList={})
 
template<class Container , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfContiguous<Container>>
 buffer (Container &container, AllocatorT allocator, const property_list &propList={})
 
template<class Container , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfContiguous<Container>>
 buffer (Container &container, const property_list &propList={})
 
 buffer (buffer< T, dimensions, AllocatorT > &b, const id< dimensions > &baseIndex, const range< dimensions > &subRange)
 
template<int N = dimensions, typename = EnableIfOneDimension<N>>
 buffer (cl_mem MemObject, const context &SyclContext, event AvailableEvent={})
 
 buffer (const buffer &rhs)=default
 
 buffer (buffer &&rhs)=default
 
bufferoperator= (const buffer &rhs)=default
 
bufferoperator= (buffer &&rhs)=default
 
 ~buffer ()=default
 
bool operator== (const buffer &rhs) const
 
bool operator!= (const buffer &rhs) const
 
range< dimensions > get_range () const
 
 __SYCL2020_DEPRECATED ("get_count() is deprecated, please use size() instead") size_t get_count() const
 
size_t size () const noexcept
 
 __SYCL2020_DEPRECATED ("get_size() is deprecated, please use byte_size() instead") size_t get_size() const
 
size_t byte_size () const noexcept
 
AllocatorT get_allocator () const
 
template<access::mode Mode, access::target Target = access::target::global_buffer>
accessor< T, dimensions, Mode, Target, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > get_access (handler &CommandGroupHandler)
 
template<access::mode mode>
accessor< T, dimensions, mode, access::target::host_buffer, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > get_access ()
 
template<access::mode mode, access::target target = access::target::global_buffer>
accessor< T, dimensions, mode, target, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > get_access (handler &commandGroupHandler, range< dimensions > accessRange, id< dimensions > accessOffset={})
 
template<access::mode mode>
accessor< T, dimensions, mode, access::target::host_buffer, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > get_access (range< dimensions > accessRange, id< dimensions > accessOffset={})
 
template<typename Destination = std::nullptr_t>
void set_final_data (Destination finalData=nullptr)
 
void set_write_back (bool flag=true)
 
bool is_sub_buffer () const
 
template<typename ReinterpretT , int ReinterpretDim>
buffer< ReinterpretT, ReinterpretDim, AllocatorT > reinterpret (range< ReinterpretDim > reinterpretRange) const
 
template<typename ReinterpretT , int ReinterpretDim = dimensions>
std::enable_if<(sizeof(ReinterpretT)==sizeof(T)) &&(dimensions==ReinterpretDim), buffer< ReinterpretT, ReinterpretDim, AllocatorT > >::type reinterpret () const
 
template<typename ReinterpretT , int ReinterpretDim = dimensions>
std::enable_if<(ReinterpretDim==1) &&((dimensions !=ReinterpretDim)||(sizeof(ReinterpretT) !=sizeof(T))), buffer< ReinterpretT, ReinterpretDim, AllocatorT > >::type reinterpret () const
 
template<typename propertyT >
bool has_property () const
 
template<typename propertyT >
propertyT get_property () const
 

Friends

template<typename A , int dims, typename C , typename Enable >
class buffer
 
template<typename DataT , int dims, access::mode mode, access::target target, access::placeholder isPlaceholder, typename PropertyListT >
class accessor
 

Detailed Description

template<typename T, int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
class cl::sycl::buffer< T, dimensions, AllocatorT, typename >

Defines a shared array that can be used by kernels in queues.

Buffers can be 1-, 2-, and 3-dimensional. They have to be accessed using accessor classes.

See also
Accessors

Definition at line 38 of file buffer.hpp.

Member Typedef Documentation

◆ allocator_type

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::allocator_type = AllocatorT

Definition at line 43 of file buffer.hpp.

◆ const_reference

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::const_reference = const value_type &

Definition at line 42 of file buffer.hpp.

◆ EnableIfContiguous

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<class Container >
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::EnableIfContiguous = detail::void_t<detail::enable_if_t<std::is_convertible< detail::remove_pointer_t<decltype( std::declval<Container>().data())> (*)[], const T (*)[]>::value>, decltype(std::declval<Container>().size())>

Definition at line 53 of file buffer.hpp.

◆ EnableIfItInputIterator

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<class It >
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::EnableIfItInputIterator = detail::enable_if_t< std::is_convertible<typename std::iterator_traits<It>::iterator_category, std::input_iterator_tag>::value>

Definition at line 57 of file buffer.hpp.

◆ EnableIfOneDimension

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<int dims>
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::EnableIfOneDimension = typename detail::enable_if_t<1 == dims>

Definition at line 45 of file buffer.hpp.

◆ EnableIfSameNonConstIterators

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename ItA , typename ItB >
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::EnableIfSameNonConstIterators = typename detail::enable_if_t< std::is_same<ItA, ItB>::value && !std::is_const<ItA>::value, ItA>

Definition at line 60 of file buffer.hpp.

◆ reference

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::reference = value_type &

Definition at line 41 of file buffer.hpp.

◆ value_type

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
using cl::sycl::buffer< T, dimensions, AllocatorT, typename >::value_type = T

Definition at line 40 of file buffer.hpp.

Constructor & Destructor Documentation

◆ buffer() [1/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( const range< dimensions > &  bufferRange,
const property_list propList = {} 
)
inline

Definition at line 62 of file buffer.hpp.

◆ buffer() [2/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( const range< dimensions > &  bufferRange,
AllocatorT  allocator,
const property_list propList = {} 
)
inline

Definition at line 70 of file buffer.hpp.

◆ buffer() [3/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( T hostData,
const range< dimensions > &  bufferRange,
const property_list propList = {} 
)
inline

Definition at line 79 of file buffer.hpp.

◆ buffer() [4/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( T hostData,
const range< dimensions > &  bufferRange,
AllocatorT  allocator,
const property_list propList = {} 
)
inline

Definition at line 88 of file buffer.hpp.

◆ buffer() [5/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename _T = T>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( EnableIfSameNonConstIterators< T, _T > const *  hostData,
const range< dimensions > &  bufferRange,
const property_list propList = {} 
)
inline

Definition at line 99 of file buffer.hpp.

◆ buffer() [6/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename _T = T>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( EnableIfSameNonConstIterators< T, _T > const *  hostData,
const range< dimensions > &  bufferRange,
AllocatorT  allocator,
const property_list propList = {} 
)
inline

Definition at line 110 of file buffer.hpp.

◆ buffer() [7/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( const std::shared_ptr< T > &  hostData,
const range< dimensions > &  bufferRange,
AllocatorT  allocator,
const property_list propList = {} 
)
inline

Definition at line 121 of file buffer.hpp.

◆ buffer() [8/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( const std::shared_ptr< T[]> &  hostData,
const range< dimensions > &  bufferRange,
AllocatorT  allocator,
const property_list propList = {} 
)
inline

Definition at line 132 of file buffer.hpp.

◆ buffer() [9/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( const std::shared_ptr< T > &  hostData,
const range< dimensions > &  bufferRange,
const property_list propList = {} 
)
inline

Definition at line 143 of file buffer.hpp.

◆ buffer() [10/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( const std::shared_ptr< T[]> &  hostData,
const range< dimensions > &  bufferRange,
const property_list propList = {} 
)
inline

Definition at line 153 of file buffer.hpp.

◆ buffer() [11/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<class InputIterator , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfItInputIterator<InputIterator>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( InputIterator  first,
InputIterator  last,
AllocatorT  allocator,
const property_list propList = {} 
)
inline

Definition at line 166 of file buffer.hpp.

◆ buffer() [12/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<class InputIterator , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfItInputIterator<InputIterator>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( InputIterator  first,
InputIterator  last,
const property_list propList = {} 
)
inline

Definition at line 179 of file buffer.hpp.

◆ buffer() [13/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<class Container , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfContiguous<Container>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( Container &  container,
AllocatorT  allocator,
const property_list propList = {} 
)
inline

Definition at line 192 of file buffer.hpp.

◆ buffer() [14/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<class Container , int N = dimensions, typename = EnableIfOneDimension<N>, typename = EnableIfContiguous<Container>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( Container &  container,
const property_list propList = {} 
)
inline

Definition at line 206 of file buffer.hpp.

◆ buffer() [15/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( buffer< T, dimensions, AllocatorT > &  b,
const id< dimensions > &  baseIndex,
const range< dimensions > &  subRange 
)
inline

Definition at line 209 of file buffer.hpp.

◆ buffer() [16/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<int N = dimensions, typename = EnableIfOneDimension<N>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( cl_mem  MemObject,
const context SyclContext,
event  AvailableEvent = {} 
)
inline

Definition at line 228 of file buffer.hpp.

◆ buffer() [17/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( const buffer< T, dimensions, AllocatorT, typename > &  rhs)
default

◆ buffer() [18/18]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::buffer ( buffer< T, dimensions, AllocatorT, typename > &&  rhs)
default

◆ ~buffer()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::~buffer ( )
default

Member Function Documentation

◆ __SYCL2020_DEPRECATED() [1/2]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::__SYCL2020_DEPRECATED ( "get_count() is  deprecated,
please use size() instead  
) const
inline

Definition at line 262 of file buffer.hpp.

◆ __SYCL2020_DEPRECATED() [2/2]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
cl::sycl::buffer< T, dimensions, AllocatorT, typename >::__SYCL2020_DEPRECATED ( "get_size() is  deprecated,
please use byte_size() instead  
) const
inline

Definition at line 266 of file buffer.hpp.

◆ byte_size()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
size_t cl::sycl::buffer< T, dimensions, AllocatorT, typename >::byte_size ( ) const
inlinenoexcept

Definition at line 269 of file buffer.hpp.

◆ get_access() [1/4]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<access::mode mode>
accessor<T, dimensions, mode, access::target::host_buffer, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > cl::sycl::buffer< T, dimensions, AllocatorT, typename >::get_access ( )
inline

Definition at line 288 of file buffer.hpp.

◆ get_access() [2/4]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<access::mode Mode, access::target Target = access::target::global_buffer>
accessor<T, dimensions, Mode, Target, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > cl::sycl::buffer< T, dimensions, AllocatorT, typename >::get_access ( handler CommandGroupHandler)
inline

Definition at line 279 of file buffer.hpp.

◆ get_access() [3/4]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<access::mode mode, access::target target = access::target::global_buffer>
accessor<T, dimensions, mode, target, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > cl::sycl::buffer< T, dimensions, AllocatorT, typename >::get_access ( handler commandGroupHandler,
range< dimensions >  accessRange,
id< dimensions >  accessOffset = {} 
)
inline

Definition at line 298 of file buffer.hpp.

◆ get_access() [4/4]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<access::mode mode>
accessor<T, dimensions, mode, access::target::host_buffer, access::placeholder::false_t, ext::oneapi::accessor_property_list<> > cl::sycl::buffer< T, dimensions, AllocatorT, typename >::get_access ( range< dimensions >  accessRange,
id< dimensions >  accessOffset = {} 
)
inline

Definition at line 308 of file buffer.hpp.

◆ get_allocator()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
AllocatorT cl::sycl::buffer< T, dimensions, AllocatorT, typename >::get_allocator ( ) const
inline

Definition at line 271 of file buffer.hpp.

◆ get_property()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename propertyT >
propertyT cl::sycl::buffer< T, dimensions, AllocatorT, typename >::get_property ( ) const
inline

Definition at line 390 of file buffer.hpp.

◆ get_range()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
range<dimensions> cl::sycl::buffer< T, dimensions, AllocatorT, typename >::get_range ( ) const
inline

Definition at line 260 of file buffer.hpp.

◆ has_property()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename propertyT >
bool cl::sycl::buffer< T, dimensions, AllocatorT, typename >::has_property ( ) const
inline

Definition at line 386 of file buffer.hpp.

◆ is_sub_buffer()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
bool cl::sycl::buffer< T, dimensions, AllocatorT, typename >::is_sub_buffer ( ) const
inline

Definition at line 344 of file buffer.hpp.

Referenced by cl::sycl::buffer< char, 1 >::buffer().

◆ operator!=()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
bool cl::sycl::buffer< T, dimensions, AllocatorT, typename >::operator!= ( const buffer< T, dimensions, AllocatorT, typename > &  rhs) const
inline

Definition at line 254 of file buffer.hpp.

◆ operator=() [1/2]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
buffer& cl::sycl::buffer< T, dimensions, AllocatorT, typename >::operator= ( buffer< T, dimensions, AllocatorT, typename > &&  rhs)
default

◆ operator=() [2/2]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
buffer& cl::sycl::buffer< T, dimensions, AllocatorT, typename >::operator= ( const buffer< T, dimensions, AllocatorT, typename > &  rhs)
default

◆ operator==()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
bool cl::sycl::buffer< T, dimensions, AllocatorT, typename >::operator== ( const buffer< T, dimensions, AllocatorT, typename > &  rhs) const
inline

Definition at line 252 of file buffer.hpp.

◆ reinterpret() [1/3]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename ReinterpretT , int ReinterpretDim = dimensions>
std::enable_if< (sizeof(ReinterpretT) == sizeof(T)) && (dimensions == ReinterpretDim), buffer<ReinterpretT, ReinterpretDim, AllocatorT> >::type cl::sycl::buffer< T, dimensions, AllocatorT, typename >::reinterpret ( ) const
inline

Definition at line 364 of file buffer.hpp.

◆ reinterpret() [2/3]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename ReinterpretT , int ReinterpretDim = dimensions>
std::enable_if< (ReinterpretDim == 1) && ((dimensions != ReinterpretDim) || (sizeof(ReinterpretT) != sizeof(T))), buffer<ReinterpretT, ReinterpretDim, AllocatorT> >::type cl::sycl::buffer< T, dimensions, AllocatorT, typename >::reinterpret ( ) const
inline

Definition at line 374 of file buffer.hpp.

◆ reinterpret() [3/3]

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename ReinterpretT , int ReinterpretDim>
buffer<ReinterpretT, ReinterpretDim, AllocatorT> cl::sycl::buffer< T, dimensions, AllocatorT, typename >::reinterpret ( range< ReinterpretDim >  reinterpretRange) const
inline

Definition at line 348 of file buffer.hpp.

◆ set_final_data()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename Destination = std::nullptr_t>
void cl::sycl::buffer< T, dimensions, AllocatorT, typename >::set_final_data ( Destination  finalData = nullptr)
inline

Definition at line 338 of file buffer.hpp.

◆ set_write_back()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
void cl::sycl::buffer< T, dimensions, AllocatorT, typename >::set_write_back ( bool  flag = true)
inline

Definition at line 342 of file buffer.hpp.

◆ size()

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
size_t cl::sycl::buffer< T, dimensions, AllocatorT, typename >::size ( ) const
inlinenoexcept

Friends And Related Function Documentation

◆ accessor

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename DataT , int dims, access::mode mode, access::target target, access::placeholder isPlaceholder, typename PropertyListT >
friend class accessor
friend

Definition at line 402 of file buffer.hpp.

◆ buffer

template<typename T , int dimensions = 1, typename AllocatorT = cl::sycl::buffer_allocator, typename = typename detail::enable_if_t<(dimensions > 0) && (dimensions <= 3)>>
template<typename A , int dims, typename C , typename Enable >
friend class buffer
friend

Definition at line 399 of file buffer.hpp.


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