最終更新日時(UTC):
が更新

履歴 編集

class template
<mdspan>

std::layout_right_padded::mapping(C++26)

namespace std {
  template<size_t PaddingValue>
  template<class Extents>
  class layout_right_padded<PaddingValue>::mapping;
}

概要

layout_right_padded<S>::mapping<E>は、extents型の多次元配列サイズEをパラメータとして、パディングあり行優先(row major)レイアウトマッピングを表現するクラスである。

layout_right_padded<S>::mapping<E>トリビアルコピー可能であり、regularのモデルである。

説明専用の仮想操作

動作説明用の仮想操作LEAST-MULTIPLE-AT-LEAST(x,y)を、次のように定義する。

  • x == 0のとき、y
  • そうでなければ、y以上で最小となるxの倍数

説明専用メンバ変数

layout_right_padded<S>::mappingクラステンプレートは、下記の説明専用メンバ変数を保持する。

また下記の説明専用静的メンバ変数を保持する。

  • rank_ : size_t型の定数extents_type::rank()
  • last-static-extent : size_t型の定数extents_type::static_extent(rank_ - 1)
  • static-padding-stride : size_t型の下記定数
    • rank_0または1のとき、値0
    • padding_valueまたはlast-static-extentdynamic_extentと等しいとき、dynamic_extent
    • そうでなければ、LEAST-MULTIPLE-AT-LEAST(padding_value, last-static-extent)

適格要件

  • Extentsextentsの特殊化であること。
  • rank_dynamic() == 0のとき、多次元インデクス空間Extents()のサイズがindex_type型で表現できること。
  • padding_valueindex_type型で表現できること。
  • 以下を満たすとき、LEAST-MULTIPLE-AT-LEAST(padding_value, last-static-extent)が、size_t型およびindex_type型で表現できること。
  • 以下を満たすとき、半開区間[1, rank_ - 1)の全ての値kに対してLEAST-MULTIPLE-AT-LEAST(padding_value, ext.static_extent(rank_ - 1))と全てのext.static_extent(k)を乗じた結果が、size_t型およびindex_type型で表現できること。

メンバ関数

構築・破棄

名前 説明 対応バージョン
(constructor) コンストラクタ C++26
(destructor) デストラクタ C++26
operator= コピー代入演算子 C++26

観測

名前 説明 対応バージョン
extents 多次元配列のサイズextents_を取得する C++26
strides ストライド幅配列を取得する C++26
required_span_size 要素アクセス範囲を取得する C++26
operator() 多次元配列インデクスから要素位置へ変換する C++26
is_exhaustive Exhaustive特性を取得する C++26
stride 指定次元のストライド幅を取得する 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

メンバ型

名前 説明 対応バージョン
extents_type Extents C++26
index_type Extents::index_type C++26
size_type Extents::size_type C++26
rank_type Extents::rank_type C++26
layout_type layout_right_padded<PaddingValue> C++26

非メンバ(Hidden friends)関数

名前 説明 対応バージョン
submdspan_mapping submdspanサポート C++26

比較演算子

名前 説明 対応バージョン
operator== 等値比較 C++26
operator!= 非等値比較 (==により使用可能) C++26

バージョン

言語

  • C++26

処理系

関連項目

参照