Namespaces
Variants

std::mdspan<T,Extents,LayoutPolicy,AccessorPolicy>:: mdspan

From cppreference.net
constexpr mdspan ( ) ;
(1) (C++23以降)
template < class ... OtherIndexTypes >
constexpr explicit mdspan ( data_handle_type p, OtherIndexTypes... exts ) ;
(2) (C++23以降)
template < class OtherIndexType, std:: size_t N >

constexpr explicit ( N ! = rank_dynamic ( ) )

mdspan ( data_handle_type p, std:: span < OtherIndexType, N > exts ) ;
(3) (C++23以降)
template < class OtherIndexType, std:: size_t N >

constexpr explicit ( N ! = rank_dynamic ( ) )
mdspan ( data_handle_type p,

const std:: array < OtherIndexType, N > & exts ) ;
(4) (C++23以降)
constexpr mdspan ( data_handle_type p, const extents_type & ext ) ;
(5) (C++23以降)
constexpr mdspan ( data_handle_type p, const mapping_type & m ) ;
(6) (C++23以降)
constexpr mdspan ( data_handle_type p, const mapping_type & m,
const accessor_type & a ) ;
(7) (C++23以降)
template < class OtherElementType, class OtherExtents,

class OtherLayoutPolicy, class OtherAccessor >
constexpr explicit ( /* 下記参照 */ )
mdspan ( const mdspan < OtherElementType, OtherExtents,

OtherLayoutPolicy, OtherAccessor > & other ) ;
(8) (C++23以降)
constexpr mdspan ( const mdspan & rhs ) = default ;
(9) (C++23以降)
constexpr mdspan ( mdspan && rhs ) = default ;
(10) (C++23以降)

mdspan を構築します。オプションでユーザー提供のデータハンドル p 、レイアウトマッピング m 、およびアクセサ a を使用します。エクステント exts または ext が指定された場合、それらは extents_type に変換され、レイアウトマッピングの初期化に使用されます。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - HTMLタグ、属性、
タグ内のテキストは翻訳していません
- C++固有の用語(Parameters、Effects、Constraints、Example、References、See also)は原文のまま保持しました
- 書式と構造は完全に維持されています

パラメータ

p - 基盤データへのハンドル
m - レイアウトマッピング
a - アクセサ
ext - std::extents オブジェクト
exts - 多次元エクステントを表す
other - 変換元の別のmdspan
rhs - コピーまたはムーブ元の別のmdspan

効果

以下の表にリストされているデータメンバについて:

オーバーロード 初期化対象...
ptr_ map_ acc_
( 1 ) (空)
( 2 ) std :: move ( p ) extents_type
( static_cast < index_type >
( std :: move ( exts ) ) ... )
(空)
( 3 ) extents_type ( exts )
( 4 )
( 5 ) ext
( 6 ) m
( 7 ) a
( 8 ) other. ptr_ other. map_ other. acc_

制約条件と補足情報

1) このオーバーロードは、以下のすべての値が true の場合にのみオーバーロード解決に参加します:
map_ および acc_ のこのコンストラクタ呼び出し後の値に対して、 [ 0 , map_  . required_span_size ( ) ) ptr_ および acc_ accessible range でない場合、動作は未定義です。
2) このオーバーロードは、以下のすべての値が true である場合にのみ、オーバーロード解決に参加します:
If [ 0 , map_  . required_span_size ( ) ) is not an accessible range of p and acc_ for the values of map_ and acc_ after the invocation of these constructors, the behavior is undefined.
もし [ 0 , map_  . required_span_size ( ) ) p および acc_ のアクセス可能な範囲ではなく、これらのコンストラクタの呼び出し後の map_ および acc_ の値に対して、動作は未定義です。
3,4) これらのオーバーロードは、以下のすべての値が true である場合にのみオーバーロード解決に参加します:
If [ 0 , map_  . required_span_size ( ) ) p および acc_ に対するアクセス可能な範囲ではなく、かつこれらコンストラクタの呼び出し後の map_ および acc_ の値の場合、動作は未定義です。
5) このオーバーロードは、以下のすべての値が true の場合にのみ、オーバーロード解決に参加します:
If [ 0 , map_  . required_span_size ( ) ) p および acc_ に対してアクセス可能な範囲ではなく、かつこれらコンストラクタの呼び出し後の map_ および acc_ の値である場合、動作は未定義です。
6) このオーバーロードは、 std:: is_default_constructible_v < accessor_type > true の場合にのみ、オーバーロード解決に参加します。
[ 0 , m. required_span_size ( ) ) p および acc_ のアクセス可能な範囲でない場合、このコンストラクタの呼び出し後の acc_ の値に対する動作は未定義です。
7) 0 [ 0 , m. required_span_size ( ) ) p a のアクセス可能な範囲でない場合、動作は未定義です。
8) explicit 内の式は以下と等価である: ! std:: is_convertible_v < const OtherLayoutPolicy :: template mapping < OtherExtents > & ,
mapping_type >
|| ! std:: is_convertible_v < const OtherAccessor & , accessor_type >
このオーバーロードは、以下のすべての値が true の場合にのみ、オーバーロード解決に参加します:
以下のいずれかの値が false の場合、プログラムは不適格です:
[ 0 , map_  . required_span_size ( ) ) ptr_ および acc_ のアクセス可能な範囲ではない場合(このコンストラクタ呼び出し後の ptr_ map_ および acc_ の値に対して)、動作は未定義です。

extents_type の何らかのランクインデックス r について static_extent ( r ) == std:: dynamic_extent
|| static_extent ( r ) == other. extent ( r )
false の場合、動作は未定義です。

(C++26まで)

extents_type の何らかのランクインデックス r について static_extent ( r ) == std:: dynamic_extent
|| static_extent ( r ) == other. extent ( r )
false の場合:

  • 実装が ハードニング されている場合、 契約違反 が発生します。さらに、契約違反ハンドラが「observe」評価セマンティクスの下で戻った場合、動作は未定義です。
  • 実装がハードニングされていない場合、動作は未定義です。
(C++26から)

参考文献

  • C++23標準 (ISO/IEC 14882:2024):
  • 24.7.3.6.2 コンストラクタ [mdspan.mdspan.cons]

関連項目