C++ 具名要求:访问器策略 (AccessorPolicy) (C++23 起)

来自cppreference.com
< cpp‎ | named req


 
 
C++ 具名要求
 

访问器策略 (AccessorPolicy) 定义了从给定的指向元素的数据句柄和一个索引,如何访问元素。它被用作 std::mdspan 的一项策略,以指定如何使用底层一维索引访问元素的引用。

要求

如果类型 A 实现了 copyable,并且以下各项均为 true,则它满足 访问器策略 (AccessorPolicy)

而且,给定下列类型和值,下表中展示的各表达式均有效并具有指定的语义:

凡例

类型 定义
A 访问器策略类型
OP 偏移策略类型
定义
a (可能 const 限定的)A 类型的值
p (可能 const 限定的)A::data_handle_type 类型的值
i, j, n std::size_t 类型的值

成员类型

名称 类型 要求
A::element_type (未指明)
  • 并非抽象类类型的完整对象类型
A::data_handle_type (未指明),但类型不必是 element_type*
  • 实现 copyable
  • 下列条件均为 true
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),并且对于满足 [0n)pa 的可访问范围[note 1]的任意整数 n
  • [0n - i)qb 的可访问范围;并且
  • 对于范围 [0n - i) 中的每个 jb.access(q, j) 提供到与 a.access(p, i + j) 相同元素的访问。
  1. 对于索引范围 [0N),如果访问器的成员函数 access 对范围中的每个索引都产生有效的元素引用,则它是给定数据句柄和访问器的可访问范围

参阅

指示索引访问 mdspan 元素的方式的类型
(类模板)