名稱空間
變體
操作

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

來自 cppreference.com
 
 
C++ 命名要求
基本
型別屬性
全庫範圍
(C++11)




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
(C++20)
隨機數
併發
(C++11)
Ranges
多維檢視
AccessorPolicy
(C++23)
其他

 

AccessorPolicy 定義瞭如何從給定元素的資料控制代碼和索引訪問元素。它在 std::mdspan 中用作策略,以指定使用底層一維索引訪問元素的引用。

目錄

[編輯] 要求

如果型別 A 滿足 AccessorPolicy,則它建模 copyable,並且以下為 true

並且,給定以下型別和值,下表中顯示錶達式是有效的並具有指示的語義

[編輯] 圖例

型別 定義
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 的可訪問範圍[注 1] 的任意整數 n
  • [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 訪問器引用的複共軛
(類模板) [編輯]