- mdspan[meta header]
- class template[meta id-type]
- std[meta namespace]
- layout_left_padded[meta class]
- cpp26[meta cpp]
namespace std {
template<size_t PaddingValue>
template<class Extents>
class layout_left_padded<PaddingValue>::mapping;
}
- layout_left_padded[link ../layout_left_padded.md]
- Extents[link ../extents.md]
layout_left_padded<S>::mapping<E>は、extents型の多次元配列サイズEをパラメータとして、パディングあり列優先(column major)レイアウトマッピングを表現するクラスである。
layout_left_padded<S>::mapping<E>はトリビアルコピー可能であり、regularのモデルである。
動作説明用の仮想操作LEAST-MULTIPLE-AT-LEAST(x,y)を、次のように定義する。
x == 0のとき、y
- そうでなければ、
y以上で最小となるxの倍数
layout_left_padded<S>::mappingクラステンプレートは、下記の説明専用メンバ変数を保持する。
stride-1 : index_type型の値static-padding-stride
extents_ : extents_type型の多次元配列サイズ情報
また下記の説明専用静的メンバ変数を保持する。
rank_ : size_t型の定数extents_type::rank()
first-static-extent : size_t型の定数extents_type::static_extent(0)
static-padding-stride : size_t型の下記定数
rank_が0または1のとき、値0
padding_valueまたはfirst-static-extentがdynamic_extentと等しいとき、dynamic_extent
- そうでなければ、
LEAST-MULTIPLE-AT-LEAST(padding_value, first-static-extent)
Extentsはextentsの特殊化であること。
rank_dynamic() == 0のとき、多次元インデクス空間Extents()のサイズがindex_type型で表現できること。
- 値
padding_valueがindex_type型で表現できること。
- 以下を満たすとき、
LEAST-MULTIPLE-AT-LEAST(padding_value, first-static-extent)が、size_t型およびindex_type型で表現できること。
- 以下を満たすとき、半開区間
[1, rank_)の全ての値kに対してLEAST-MULTIPLE-AT-LEAST(padding_value, ext.static_extent(0))と全てのext.static_extent(k)を乗じた結果が、size_t型およびindex_type型で表現できること。
| 名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
C++26 |
(destructor) |
デストラクタ |
C++26 |
operator= |
コピー代入演算子 |
C++26 |
| 名前 |
説明 |
対応バージョン |
is_always_unique |
trueを返す |
C++26 |
is_always_exhaustive |
型のExhaustive特性を取得する |
C++26 |
is_always_strided |
trueを返す |
C++26 |
is_unique |
trueを返す |
C++26 |
is_strided |
trueを返す |
C++26 |