命名空间
变体
操作

std::default_accessor

来自 cppreference.cn
< cpp‎ | 容器‎ | 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
(公开成员函数)
访问
返回参数提供的第 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(*)[]> 为真时才参与重载决议。

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;

[编辑] 示例