C++ 命名要求: AccessorPolicy (C++23 起)
來自 cppreference.com
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 |
(未指定)但型別不必是 element_type* |
|
A::reference |
(未指定)但型別不必是 element_type& |
|
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 訪問器引用的複共軛 (類模板) |