C++ named requirements: AccessorPolicy (since C++23)
AccessorPolicy は、与えられたデータハンドルとインデックスから要素にアクセスする方法を定義します。これは std:: mdspan のポリシーとして使用され、基盤となる1次元インデックスを使用した要素への参照アクセスを指定します。
目次 |
要件
型
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
アクセサの参照の複素共役を表す
(クラステンプレート) |