Namespaces
Variants

std::extents<IndexType,Extents...>:: extents

From cppreference.net
constexpr extents ( ) = default ;
(1) (seit C++23)
template < class OtherIndexType, std:: size_t ... OtherExtents >

constexpr explicit ( /*siehe unten*/ )

extents ( const std:: extents < OtherIndexType, OtherExtents... > & other ) noexcept ;
(2) (seit C++23)
template < class ... OtherIndexTypes >
constexpr explicit extents ( OtherIndexTypes... exts ) noexcept ;
(3) (seit C++23)
template < class OtherIndexType, std:: size_t N >

constexpr explicit ( N ! = rank_dynamic ( ) )

extents ( std:: span < OtherIndexType, N > exts ) noexcept ;
(4) (seit C++23)
template < class OtherIndexType, std:: size_t N >

constexpr explicit ( N ! = rank_dynamic ( ) )

extents ( const std:: array < OtherIndexType, N > & exts ) noexcept ;
(5) (seit C++23)

Konstruieren Sie einen extents . Man kann extents entweder nur aus dynamischen Extents konstruieren, wobei alle Werte gespeichert werden, oder aus allen Extents mit einer Vorbedingung.

1) Standardkonstruktor. Initialisiert alle dynamischen Ausdehnungen mit null.
2) Konvertierung von einem anderen extents -Objekt. Nach der Konstruktion ist * this == other true .
  • Das Verhalten ist undefiniert, wenn
  • other. extent ( r ) ! = static_extent ( r ) für irgendein r gilt, für das static_extent ( r ) eine statische Ausdehnung repräsentiert, oder
  • other. extent ( r ) nicht als Wert vom Typ IndexType darstellbar ist für irgendeinen Rangwert r in other .
  • Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn
  • Dieser Konstruktor ist explicit , wenn
3) Sei N gleich sizeof... ( exts ) und exts_arr gleich std:: array < IndexType, N > { static_cast < IndexType > ( std :: move ( exts ) ) ... } , äquivalent zu extents ( exts_arr ) .
  • Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn
  • Das Verhalten ist undefiniert, wenn
  • N ! = rank_dynamic ( ) und exts_arr [ r ] ungleich static_extent ( r ) ist für irgendein r , für das static_extent ( r ) eine statische Ausdehnung repräsentiert, oder
  • ein Element in exts negativ ist oder nicht als Wert des Typs IndexType darstellbar ist.
4,5) Falls N gleich rank_dynamic ( ) ist, wird für alle d im Bereich [ 0 , rank_dynamic ( ) ) , direkt-nicht-Liste-initialisiert dynamic-extents [ d ] mit std:: as_const ( exts [ d ] ) . Andernfalls wird für alle d im Bereich [ 0 , rank_dynamic ( ) ) , direkt-nicht-Liste-initialisiert dynamic-extents [ d ] mit std:: as_const ( exts [ dynamic-index-inv ( d ) ] ) .
  • Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn
  • Das Verhalten ist undefiniert, falls
  • N ! = rank_dynamic ( ) und exts [ r ] ungleich static_extent ( r ) ist für irgendein r , für das static_extent ( r ) eine statische Ausdehnung repräsentiert, oder
  • exts [ r ] negativ ist oder nicht als Wert vom Typ IndexType darstellbar ist für irgendeinen Rangindex r .

Parameter

other - ein weiteres extents zur Konvertierung
exts - repräsentiert die Extents

Beispiel

Siehe auch