class template
std::layout_left::mapping(C++23)
概要
layout_left::mapping<E>
は、extents
型の多次元配列サイズE
をパラメータとして、Fortran/Matlab多次元配列と互換性のある列優先(column major)レイアウトマッピングを表現するクラスである。
layout_left::mapping<E>
はトリビアルコピー可能であり、regular
のモデルである。
説明専用メンバ変数
layout_left::mapping
クラステンプレートは、下記の説明専用メンバ変数を保持する。
メンバ関数
構築・破棄
名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
C++23 |
(destructor) |
デストラクタ |
C++23 |
operator= |
コピー代入演算子 |
C++23 |
観測
静的メンバ関数
名前 |
説明 |
対応バージョン |
is_always_unique |
true を返す |
C++23 |
is_always_exhaustive |
true を返す |
C++23 |
is_always_strided |
true を返す |
C++23 |
is_unique |
true を返す |
C++23 |
is_exhaustive |
true を返す |
C++23 |
is_strided |
true を返す |
C++23 |
メンバ型
非メンバ(Hidden friends)関数
比較演算子
例
#include <mdspan>
#include <iostream>
int main()
{
double arr[] = {1, 2, 3, 4, 5, 6};
// 要素数2x3の2次元配列/列優先レイアウト
using Ext2x3 = std::extents<size_t, 2, 3>;
using Mapping = std::layout_left::mapping<Ext2x3>;
std::mdspan mat{arr, Mapping{}};
for (size_t i = 0; i < mat.extent(0); ++i) {
for (size_t j = 0; j < mat.extent(1); ++j) {
std::cout << (j ? " " : "") << mat[i, j];
}
std::cout << "\n";
}
}
出力
1 3 5
2 4 6
バージョン
言語
処理系
関連項目
参照