<mdspan>ヘッダでは、任意のメモリブロックに対して多次元配列のようにアクセスする機能を定義する。
フリースタンディング
このヘッダのほとんどの機能は、フリースタンディング処理系でも使用できる。ただし、例外を送出する一部の機能などは、フリースタンディング処理系では提供されない、または削除される。詳細は各機能のページを参照。
多次元配列サイズ
| 名前 | 説明 | 対応バージョン |
|---|---|---|
extents |
多次元配列のサイズを表す値 (class template) | C++23 |
dextents |
全次元が動的な多次元配列のサイズを表す値 (alias template) | C++23 |
dims |
全次元が動的な多次元配列のサイズを表す値 (alias template) | C++26 |
dynamic_extent |
動的な要素数をもつことを指示する定数 (variable) | C++26 |
レイアウトマッピング
| 名前 | 説明 | 対応バージョン |
|---|---|---|
layout_left |
列優先(Fortran/Matlabスタイル)レイアウトマッピングポリシー (class) | C++23 |
layout_right |
行優先(C/C++スタイル)レイアウトマッピングポリシー (class) | C++23 |
layout_stride |
ストライド幅指定レイアウトマッピングポリシー (class) | C++23 |
layout_left_padded |
パディングあり列優先レイアウトマッピングポリシー (class template) | C++26 |
layout_right_padded |
パディングあり行優先レイアウトマッピングポリシー (class template) | C++26 |
要素アクセサ
| 名前 | 説明 | 対応バージョン |
|---|---|---|
default_accessor |
デフォルト要素アクセサ (class template) | C++23 |
aligned_accessor |
アライメント保証付き要素アクセサ (class template) | C++26 |
多次元配列ビュー
| 名前 | 説明 | 対応バージョン |
|---|---|---|
mdspan |
多次元配列ビュー (class template) | C++23 |
多次元配列部分ビュー
| 名前 | 説明 | 対応バージョン |
|---|---|---|
strided_slice |
指定次元のストライド指定要素取り出しを指示する集成体クラステンプレート (class template) | C++26 |
full_extent_t |
指定次元の全要素取り出しを指示するタグ型 (class) | C++26 |
full_extent |
指定次元の全要素取り出しを指示するタグ値 (variable) | C++26 |
submdspan_mapping_result |
多次元配列部分ビューのレイアウトマッピング情報 (class template) | C++26 |
subextents |
多次元配列部分ビューの多次元配列サイズを計算する (function template) | C++26 |
canonical_slices |
多次元配列部分ビュー取得時の多次元インデックスを正規化する (function template) | C++26 |
submdspan |
多次元配列部分ビューを取得する (function template) | C++26 |
バージョン
言語
- C++23
関連項目
参照
- P0009R18 MDSPAN
- P2630R4 Submdspan
- P2642R6 Padded mdspan layouts
- P2897R7
aligned_accessor: An mdspan accessor expressing pointer over-alignment - P3663R3 Future-proof
submdspan_mapping - LWG Issue 4275.
std::dynamic_extentshould also be defined in<mdspan>- C++26で、
<span>で定義されるdynamic_extentが<mdspan>のインクルードによっても利用可能になった
- C++26で、
- P2833R2 Freestanding Library: inout expected
span- C++26で、このヘッダが(例外を送出するメンバなど一部を除いて)フリースタンディング処理系に対応した