C++ named requirements: AccessorPolicy (since C++23)
AccessorPolicy 定义了如何通过给定的数据句柄和索引来访问元素。它作为策略类用于 std:: mdspan ,通过基础的一维索引来指定对元素引用的访问方式。
目录 |
要求
类型
A
满足
AccessorPolicy
当且仅当其建模
copyable
且以下条件为
true
:
- std:: is_nothrow_move_constructible_v < A >
- std:: is_nothrow_move_assignable_v < A >
- std:: is_nothrow_swappable_v < A >
并且,给定以下类型和值,下表中所示的表达式是有效的,并具有指定的语义:
图例说明
| 类型 | 定义 |
A
|
访问策略类型 |
OP
|
偏移策略类型 |
| 值 | 定义 |
| a |
类型为(可能带有 const 限定)
A
的值
|
| p |
类型为(可能带有 const 限定)
A::data_handle_type
的值
|
| i , j , n | 类型为 std:: size_t 的值 |
成员类型
| 类型 | 定义 | 要求 |
|---|---|---|
A::element_type
|
未指定 |
|
A::data_handle_type
|
未指定 [1] |
|
A::reference
|
未指定 [2] |
|
A::offset_policy
|
OP
|
|
成员函数
| 表达式 | 返回类型 | 语义 |
|---|---|---|
| a. access ( p, i ) | typename A :: reference |
|
| a. offset ( p, i ) |
typename
A
::
offset_policy
::
data_handle_type
|
|
可访问范围
索引范围
[
0
,
N
)
是给定数据句柄和访问器的
可访问范围
,当且仅当对于该范围内的每个索引,
access
成员函数都能生成指向有效元素的引用。
标准库
以下标准库类型满足 AccessorPolicy 要求:
|
(C++23)
|
用于索引访问
mdspan
元素的类型
(类模板) |
|
(C++26)
|
用于对齐访问
mdspan
元素的类型
(类模板) |
|
定义于命名空间
std::linalg
|
|
|
(C++26)
|
std::mdspan
访问器策略,其引用表示固定缩放因子与其嵌套
std::mdspan
访问器引用的乘积
(类模板) |
|
(C++26)
|
std::mdspan
访问器策略,其引用表示其嵌套
std::mdspan
访问器引用的复共轭
(类模板) |