命名空间
变体
操作

C++ 命名要求: AccessorPolicy (自 C++23 起)

来自 cppreference.cn
< cpp‎ | named req
 
 
C++ 命名要求
随机数
(C++11)
并发
(C++11)
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)
(C++17)
(C++14)
范围
多维视图
(C++23)
AccessorPolicy
(C++23)
其他
(C++11)
(C++11)
(C++11)
(C++11)

 

AccessorPolicy 定义了如何从给定的数据句柄访问元素及其索引。它在 std::mdspan 中用作策略,以指定使用底层 1D 索引访问元素的引用。

目录

[编辑] 要求

如果类型 A 建模 copyable,并且以下条件为 true,则类型 A 满足 AccessorPolicy

并且,给定以下类型和值,下表所示的表达式是有效的,并具有指示的语义

[编辑] 图例

类型 定义
A accessor policy 类型
OP offset policy 类型
定义
a 类型为(可能带有 const 限定符)A 的值
p 类型为(可能带有 const 限定符)A::data_handle_type 的值
ijn 类型为 std::size_t 的值

[编辑] 成员类型

名称 类型 要求
A::element_type (未指定)
  • 一个完整的对象类型,它不是抽象类类型
A::data_handle_type (未指定),但类型不必是 element_type*
A::reference (未指定),但类型不必是 element_type&
A::offset_policy OP
  • 满足 AccessorPolicy 的要求
  • std::constructible_from<OP, const A&>true
  • typename OP​::​element_typetypename A​::​element_type 是相同的类型

[编辑] 成员函数

表达式 返回类型 语义
a.access(p, i) typename A::reference
a.offset(p, i) typename A::offset_policy::data_handle_type
  • 一个值 q,使得对于 bA::offset_policy(a),以及任何整数 n,对于它 [0n)pa 的可访问范围[note 1]
  • [0n - i)qb 的可访问范围;并且
  • b.access(q, j) 提供对与 a.access(p, i + j) 相同元素的访问,对于范围 [0n - i) 中的每个 j
  1. 索引范围 [0N) 是给定数据句柄和访问器的可访问范围,如果对于范围内的每个索引,access 成员函数产生对元素的有效引用。

[编辑] 标准库

以下标准库类型满足 AccessorPolicy 要求

用于索引访问 mdspan 元素的类型
(类模板) [编辑]
用于对齐访问 mdspan 元素的类型
(类模板) [编辑]
定义于命名空间 std::linalg
(C++26)
std::mdspan 访问器策略,其引用表示固定比例因子与其嵌套的 std::mdspan 访问器的引用的乘积
(类模板) [编辑]
std::mdspan 访问器策略,其引用表示其嵌套的 std::mdspan 访问器的引用的复共轭
(类模板) [编辑]