Public Types | Public Member Functions | List of all members
cudf::device_span< T, Extent > Struct Template Reference

Device version of C++20 std::span with reduced feature set. More...

#include <span.hpp>

Inheritance diagram for cudf::device_span< T, Extent >:
cudf::detail::span_base< T, cudf::dynamic_extent, device_span< T, cudf::dynamic_extent > >

Public Types

using base = cudf::detail::span_base< T, Extent, device_span< T, Extent > >
 Base type.
 
- Public Types inherited from cudf::detail::span_base< T, cudf::dynamic_extent, device_span< T, cudf::dynamic_extent > >
using element_type = T
 The type of the elements in the span.
 
using value_type = std::remove_cv< T >
 Stored value type.
 
using size_type = std::size_t
 The type used for the size of the span.
 
using difference_type = std::ptrdiff_t
 std::ptrdiff_t
 
using pointer = T *
 The type of the pointer returned by data()
 
using iterator = T *
 The type of the iterator returned by begin()
 
using const_pointer = T const *
 The type of the pointer returned by data() const.
 
using reference = T &
 The type of the reference returned by operator[](size_type)
 
using const_reference = T const &
 The type of the reference returned by operator[](size_type) const.
 

Public Member Functions

template<typename C , std::enable_if_t< is_device_span_supported_container< C >::value &&std::is_convertible_v< std::remove_pointer_t< decltype(thrust::raw_pointer_cast(std::declval< C & >().data()))>(*)[], T(*)[]> , * = nullptr>
constexpr device_span (C &in)
 
template<typename C , std::enable_if_t< is_device_span_supported_container< C >::value &&std::is_convertible_v< std::remove_pointer_t< decltype(thrust::raw_pointer_cast(std::declval< C & >().data()))>(*)[], T(*)[]> , * = nullptr>
constexpr device_span (C const &in)
 
template<typename OtherT , std::size_t OtherExtent, std::enable_if_t<(Extent==OtherExtent||Extent==dynamic_extent) &&std::is_convertible_v< OtherT(*)[], T(*)[]>, void > * = nullptr>
constexpr device_span (const device_span< OtherT, OtherExtent > &other) noexcept
 
- Public Member Functions inherited from cudf::detail::span_base< T, cudf::dynamic_extent, device_span< T, cudf::dynamic_extent > >
constexpr span_base (pointer data, size_type size)
 Constructs a span from a pointer and a size. More...
 
constexpr span_base (span_base const &) noexcept=default
 Copy constructor.
 
constexpr span_baseoperator= (span_base const &) noexcept=default
 Copy assignment operator. More...
 
constexpr reference front () const
 Returns a reference to the first element in the span. More...
 
constexpr reference back () const
 Returns a reference to the last element in the span. More...
 
constexpr reference operator[] (size_type idx) const
 Returns a reference to the idx-th element of the sequence. More...
 
constexpr iterator begin () const noexcept
 Returns an iterator to the first element of the span. More...
 
constexpr iterator end () const noexcept
 Returns an iterator to the element following the last element of the span. More...
 
constexpr pointer data () const noexcept
 Returns a pointer to the beginning of the sequence. More...
 
constexpr size_type size () const noexcept
 Returns the number of elements in the span. More...
 
constexpr size_type size_bytes () const noexcept
 Returns the size of the sequence in bytes. More...
 
constexpr bool empty () const noexcept
 Checks if the span is empty. More...
 
constexpr device_span< T, cudf::dynamic_extentfirst (size_type count) const noexcept
 Obtains a subspan consisting of the first N elements of the sequence. More...
 
constexpr device_span< T, cudf::dynamic_extentlast (size_type count) const noexcept
 Obtains a subspan consisting of the last N elements of the sequence. More...
 
constexpr device_span< T, cudf::dynamic_extentsubspan (size_type offset, size_type count) const noexcept
 Obtains a span that is a view over the count elements of this span starting at offset. More...
 

Additional Inherited Members

- Static Public Attributes inherited from cudf::detail::span_base< T, cudf::dynamic_extent, device_span< T, cudf::dynamic_extent > >
static constexpr std::size_t extent
 The extent of the span.
 

Detailed Description

template<typename T, std::size_t Extent = cudf::dynamic_extent>
struct cudf::device_span< T, Extent >

Device version of C++20 std::span with reduced feature set.

Definition at line 277 of file span.hpp.

Constructor & Destructor Documentation

◆ device_span() [1/3]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
template<typename C , std::enable_if_t< is_device_span_supported_container< C >::value &&std::is_convertible_v< std::remove_pointer_t< decltype(thrust::raw_pointer_cast(std::declval< C & >().data()))>(*)[], T(*)[]> , * = nullptr>
constexpr cudf::device_span< T, Extent >::device_span ( C &  in)
inlineconstexpr

Constructor from container

Parameters
inThe container to construct the span from

Definition at line 292 of file span.hpp.

◆ device_span() [2/3]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
template<typename C , std::enable_if_t< is_device_span_supported_container< C >::value &&std::is_convertible_v< std::remove_pointer_t< decltype(thrust::raw_pointer_cast(std::declval< C & >().data()))>(*)[], T(*)[]> , * = nullptr>
constexpr cudf::device_span< T, Extent >::device_span ( C const &  in)
inlineconstexpr

Constructor from const container

Parameters
inThe container to construct the span from

Definition at line 305 of file span.hpp.

◆ device_span() [3/3]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
template<typename OtherT , std::size_t OtherExtent, std::enable_if_t<(Extent==OtherExtent||Extent==dynamic_extent) &&std::is_convertible_v< OtherT(*)[], T(*)[]>, void > * = nullptr>
constexpr cudf::device_span< T, Extent >::device_span ( const device_span< OtherT, OtherExtent > &  other)
inlineconstexprnoexcept
Parameters
otherThe span to copy

Definition at line 316 of file span.hpp.


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