Namespaces
Variants

std:: extents, std:: dextents, std:: dims

From cppreference.net
ヘッダーで定義 <mdspan>
template < class IndexType, std:: size_t ... Extents >
class extents ;
(1) (C++23以降)
template < class IndexType, std:: size_t Rank >
using dextents = /* 下記参照 */
(2) (C++23以降)
template < std:: size_t Rank, class IndexType = std:: size_t >
using dims = std :: dextents < IndexType, Rank > ;
(3) (C++26以降)
1) ランクが sizeof... ( Extents ) に等しい多次元インデックス空間を表します。
2) 全動的 extents のための便利なエイリアステンプレート。 d std:: dynamic_extent とすると、その各特殊化 dextents < IndexType, Rank > extents < IndexType /*, d, d, ..., d*/ > と等価である(すなわち、 d が合計 Rank 回繰り返される)。
3) デフォルトのインデックス型として std:: size_t を使用した、全動的 extents の便利なエイリアステンプレート。

extents の各特殊化は、 regular コンセプトをモデル化し、 TriviallyCopyable です。

目次

テンプレートパラメータ

IndexType - 各非動的 Extents の型。符号付きまたは符号なし整数型でなければならない。それ以外の場合、プログラムは不適格となる
Extents - 各ランクインデックスに対するエクステント(整数区間のサイズ)を表す。その各要素は、 std:: dynamic_extent に等しい(この場合、動的エクステントを表し、エクステントサイズは動的に決定される)、または IndexType 型の値として表現可能である(この場合、静的エクステントを表し、エクステントサイズはその値そのもの)、いずれかでなければならない。それ以外の場合、プログラムは不適格となる
Rank - 全動的 extents のランクを表す

メンバー型

メンバー型 定義
index_type IndexType
size_type std:: make_unsigned_t < index_type >
rank_type std::size_t

データメンバ

メンバー名 定義
std:: array < index_type, rank_dynamic ( ) > dynamic-extents (非公開) 各動的エクステントのサイズを格納する配列。
説明専用メンバーオブジェクト*

メンバー関数

extents を構築する
(public member function)
オブザーバー
[static]
extents の静的ランクを返す
(public static member function)
extents の動的ランクを返す
(public static member function)
特定のランクインデックスにおける extents の静的エクステントサイズを返す
(public static member function)
特定のランクインデックスにおける extents の動的エクステントサイズを返す
(public member function)
ヘルパー
範囲 [0, i) におけるエクステントサイズの積を返す
( 説明専用メンバー関数* )
範囲 [i+1, rank()) におけるエクステントサイズの積を返す
( 説明専用メンバー関数* )
入力を整数型にキャストする
( 説明専用メンバー関数* )
(private)
特定のランクインデックス以下の動的エクステントの数を返す
( 説明専用メンバー関数* )
特定の引数 i に対して、範囲 [0, r+1) に正確に i + 1 個の動的エクステントが存在するような数 r を返す
( 説明専用メンバー関数* )

非メンバー関数

(C++23)
2つの extents の各次元における基盤となる範囲を比較する
(関数)

推論ガイド (C++23)

関連項目

(C++11)
配列型の次元数を取得する
(クラステンプレート)
(C++11)
指定された次元における配列型のサイズを取得する
(クラステンプレート)