公共类型 | 公共成员函数 | 所有成员列表
cudf::host_span< T, Extent > 结构模板参考

功能集缩减的 C++20 std::span。 更多...

#include <span.hpp>

cudf::host_span< T, Extent > 的继承图
cudf::detail::span_base< T, cudf::dynamic_extent, host_span< T, cudf::dynamic_extent > >

公共类型

using base = cudf::detail::span_base< T, Extent, host_span< T, Extent > >
 基类型。
 
- 继承自 cudf::detail::span_base< T, cudf::dynamic_extent, host_span< T, cudf::dynamic_extent > > 的公共类型
using element_type = T
 span 中的元素类型。
 
using value_type = std::remove_cv< T >
 存储的值类型。
 
using size_type = std::size_t
 用于 span 大小的类型。
 
using difference_type = std::ptrdiff_t
 std::ptrdiff_t
 
using pointer = T *
 data() 返回的指针类型。
 
using iterator = T *
 begin() 返回的迭代器类型。
 
using const_pointer = T const *
 data() const 返回的指针类型。
 
using reference = T &
 operator[](size_type) 返回的引用类型。
 
using const_reference = T const &
 operator[](size_type) const 返回的引用类型。
 

公共成员函数

constexpr CUDF_HOST_DEVICE host_span (T *data, std::size_t size, bool is_device_accessible)
 从指针和大小构造。 更多...
 
template<typename C , std::enable_if_t< is_host_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 host_span (C &in)
 
template<typename C , std::enable_if_t< is_host_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 host_span (C const &in)
 
template<typename OtherT , std::enable_if_t< std::is_convertible_v< OtherT(*)[], T(*)[]>> * = nullptr>
constexpr host_span (cudf::detail::host_vector< OtherT > &in)
 
template<typename OtherT , std::enable_if_t< std::is_convertible_v< OtherT(*)[], T(*)[]>> * = nullptr>
constexpr host_span (cudf::detail::host_vector< OtherT > 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 host_span (host_span< OtherT, OtherExtent > const &other) noexcept
 
constexpr base::reference operator[] (typename base::size_type idx) const
 返回序列中第 idx 个元素的引用。 更多...
 
constexpr base::reference front () const
 返回 span 中第一个元素的引用。 更多...
 
constexpr base::reference back () const
 返回 span 中最后一个元素的引用。 更多...
 
bool is_device_accessible () const
 返回数据是否设备可访问(例如,pinned memory) 更多...
 
constexpr CUDF_HOST_DEVICE host_span subspan (typename base::size_type offset, typename base::size_type count) const noexcept
 获取一个 span,它是从此 span 的 offset 开始的 count 个元素的视图。 更多...
 
- 继承自 cudf::detail::span_base< T, cudf::dynamic_extent, host_span< T, cudf::dynamic_extent > > 的公共成员函数
constexpr CUDF_HOST_DEVICE span_base (pointer data, size_type size)
 从指针和大小构造一个 span。 更多...
 
constexpr CUDF_HOST_DEVICE span_base (span_base const &) noexcept=default
 复制构造函数。
 
constexpr CUDF_HOST_DEVICE span_baseoperator= (span_base const &) noexcept=default
 复制赋值运算符。 更多...
 
constexpr CUDF_HOST_DEVICE iterator begin () const noexcept
 返回指向 span 第一个元素的迭代器。 更多...
 
constexpr CUDF_HOST_DEVICE iterator end () const noexcept
 返回指向 span 最后一个元素后面的迭代器。 更多...
 
constexpr CUDF_HOST_DEVICE pointer data () const noexcept
 返回序列开头的指针。 更多...
 
constexpr CUDF_HOST_DEVICE size_type size () const noexcept
 返回 span 中的元素数量。 更多...
 
constexpr CUDF_HOST_DEVICE size_type size_bytes () const noexcept
 返回序列的字节大小。 更多...
 
constexpr CUDF_HOST_DEVICE bool empty () const noexcept
 检查 span 是否为空。 更多...
 
constexpr host_span< T, cudf::dynamic_extentfirst (size_type count) const noexcept
 获取由序列中前 N 个元素组成的 subspan。 更多...
 
constexpr host_span< T, cudf::dynamic_extentlast (size_type count) const noexcept
 获取由序列中最后 N 个元素组成的 subspan。 更多...
 

其他继承成员

- 继承自 cudf::detail::span_base< T, cudf::dynamic_extent, host_span< T, cudf::dynamic_extent > > 的静态公共属性
static constexpr std::size_t extent
 span 的范围。
 
- 继承自 cudf::detail::span_base< T, cudf::dynamic_extent, host_span< T, cudf::dynamic_extent > > 的保护属性
pointer _data
 指向 span 中第一个元素的指针。
 
size_type _size
 span 中的元素数量。
 

详细描述

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

功能集缩减的 C++20 std::span。

定义位于文件 span.hpp194 行。

构造函数与析构函数文档

◆ host_span() [1/6]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
constexpr CUDF_HOST_DEVICE cudf::host_span< T, Extent >::host_span ( T *  data,
std::size_t  size,
bool  is_device_accessible 
)
inlineconstexpr

从指针和大小构造。

注意
这需要是 host-device 函数,因为它被 base_2dspan 中的 host-device 函数使用。
参数
data指向 span 中第一个元素的指针
sizespan 中的元素数量
is_device_accessible数据是否设备可访问(例如,pinned memory)

定义位于文件 span.hpp209 行。

◆ host_span() [2/6]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
template<typename C , std::enable_if_t< is_host_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::host_span< T, Extent >::host_span ( C &  in)
inlineconstexpr

从容器构造

参数
in用于构造 span 的容器

定义位于文件 span.hpp223 行。

◆ host_span() [3/6]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
template<typename C , std::enable_if_t< is_host_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::host_span< T, Extent >::host_span ( C const &  in)
inlineconstexpr

从 const 容器构造

参数
in用于构造 span 的容器

定义位于文件 span.hpp236 行。

◆ host_span() [4/6]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
template<typename OtherT , std::enable_if_t< std::is_convertible_v< OtherT(*)[], T(*)[]>> * = nullptr>
constexpr cudf::host_span< T, Extent >::host_span ( cudf::detail::host_vector< OtherT > &  in)
inlineconstexpr

从 host_vector 构造

参数
in用于构造 span 的 host_vector

定义位于文件 span.hpp245 行。

◆ host_span() [5/6]

template<typename T , std::size_t Extent = cudf::dynamic_extent>
template<typename OtherT , std::enable_if_t< std::is_convertible_v< OtherT(*)[], T(*)[]>> * = nullptr>
constexpr cudf::host_span< T, Extent >::host_span ( cudf::detail::host_vector< OtherT > const &  in)
inlineconstexpr

从 const host_vector 构造

参数
in用于构造 span 的 host_vector

定义位于文件 span.hpp255 行。

◆ host_span() [6/6]

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::host_span< T, Extent >::host_span ( host_span< OtherT, OtherExtent > const &  other)
inlineconstexprnoexcept
参数
other要复制的 span

定义位于文件 span.hpp267 行。

成员函数文档

◆ back()

template<typename T , std::size_t Extent = cudf::dynamic_extent>
constexpr base::reference cudf::host_span< T, Extent >::back ( ) const
inlineconstexpr

返回 span 中最后一个元素的引用。

在空 span 上调用 last 会导致未定义行为。

返回
span 中最后一个元素的引用

定义位于文件 span.hpp304 行。

◆ front()

template<typename T , std::size_t Extent = cudf::dynamic_extent>
constexpr base::reference cudf::host_span< T, Extent >::front ( ) const
inlineconstexpr

返回 span 中第一个元素的引用。

在空 span 上调用 front 会导致未定义行为。

返回
span 中第一个元素的引用

定义位于文件 span.hpp295 行。

◆ is_device_accessible()

template<typename T , std::size_t Extent = cudf::dynamic_extent>
bool cudf::host_span< T, Extent >::is_device_accessible ( ) const
inline

返回数据是否设备可访问(例如,pinned memory)

返回
如果数据设备可访问,则返回 true

定义位于文件 span.hpp314 行。

◆ operator[]()

template<typename T , std::size_t Extent = cudf::dynamic_extent>
constexpr base::reference cudf::host_span< T, Extent >::operator[] ( typename base::size_type  idx) const
inlineconstexpr

返回序列中第 idx 个元素的引用。

如果 idx 超出范围(即,大于或等于 size()),则行为未定义。

参数
idx要访问元素的索引
返回
对序列中第 idx 个元素的引用,即 data()[idx]

定义位于文件 span.hpp281 行。

◆ subspan()

template<typename T , std::size_t Extent = cudf::dynamic_extent>
constexpr CUDF_HOST_DEVICE host_span cudf::host_span< T, Extent >::subspan ( typename base::size_type  offset,
typename base::size_type  count 
) const
inlineconstexprnoexcept

获取一个 span,它是对此 span 的 offset 开始的 count 个元素的视图。

参数
offsetsubspan 中第一个元素的偏移量
countsubspan 中的元素数量
返回
序列的 subspan,具有请求的数量和偏移量

定义位于文件 span.hpp323 行。


此结构的文档生成自以下文件: