std::default_accessor

来自cppreference.com
< cpp‎ | container‎ | mdspan
 
 
 
 
在标头 <mdspan> 定义
template< class ElementType >
class default_accessor;
(C++23 起)

类模板 std::default_accessor 的特例是 std::mdspan 在没有提供用户指定的访问器策略时使用的默认 访问器策略 (AccessorPolicy)

default_accessor 的每个特化均实现 semiregular且为可平凡复制 (TriviallyCopyable)

模板形参

ElementType - 元素类型。应当为既非抽象类类型也非数组类型的完整对象类型。否则程序非良构

成员类型

成员类型 定义
offset_policy default_accessor
element_type ElementType
reference ElementType&
data_handle_type ElementType*

成员函数

(构造函数)
构造 default_accessor
(公开成员函数)
access
返回实参提供的第 n 个元素
(公开成员函数)
offset
返回按偏移值推进后的数据句柄
(公开成员函数)

std::default_accessor::default_accessor

constexpr default_accessor() noexcept = default;
(1)
template< class OtherElementType >
constexpr default_accessor( default_accessor<OtherElementType> ) noexcept {}
(2)
1) 默认构造 default_accessor
2)default_accessor<OtherElementType> 构造 default_accessor。此构造函数没有可见效果。仅当 std::is_convertible_v<OtherElementType(*)[], element_type(*)[]> 为 true 时此重载才参与重载决议。

std::default_accessor::access

constexpr reference access( data_handle_type p, std::size_t i ) const noexcept;

等价于 return p[i];

std::default_accessor::offset

constexpr data_handle_type offset( data_handle_type p, std::size_t i ) const noexcept;

等价于 return p + i;

示例