Namespaces
Variants

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

From ja.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)
指定された次元における配列型のサイズを取得する
(クラステンプレート)