Namespaces
Variants

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

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

constexpr explicit ( /*voir ci-dessous*/ )

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

constexpr explicit ( N ! = rank_dynamic ( ) )

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

constexpr explicit ( N ! = rank_dynamic ( ) )

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

Construisez un extents . On peut construire un extents à partir uniquement d'extents dynamiques, qui sont toutes les valeurs stockées, ou à partir de tous les extents avec une précondition.

1) Constructeur par défaut. Initialise toutes les dimensions dynamiques à zéro.
2) Conversion depuis un autre objet extents . Après construction, * this == other est true .
  • Le comportement est indéfini si
  • other. extent ( r ) ! = static_extent ( r ) pour tout r pour lequel static_extent ( r ) représente une étendue statique, ou
  • other. extent ( r ) n'est pas représentable comme une valeur de type IndexType pour toute valeur de rang r dans other .
  • Cette surcharge participe à la résolution de surcharge seulement si
  • Ce constructeur est explicit si
3) Soit N égal à sizeof... ( exts ) et exts_arr soit std:: array < IndexType, N > { static_cast < IndexType > ( std :: move ( exts ) ) ... } , équivalent à extents ( exts_arr ) .
  • Cette surcharge participe à la résolution de surcharge seulement si
  • Le comportement est indéfini si
  • N ! = rank_dynamic ( ) et exts_arr [ r ] n'est pas égal à static_extent ( r ) pour tout r pour lequel static_extent ( r ) représente une étendue statique, ou
  • un élément dans exts est négatif ou non représentable comme une valeur de type IndexType .
4,5) Si N est égal à rank_dynamic ( ) , pour tout d dans [ 0 , rank_dynamic ( ) ) , initialise directement (non par liste) dynamic-extents [ d ] avec std:: as_const ( exts [ d ] ) . Sinon, pour tout d dans [ 0 , rank_dynamic ( ) ) , initialise directement (non par liste) dynamic-extents [ d ] avec std:: as_const ( exts [ dynamic-index-inv ( d ) ] ) .
  • Cette surcharge participe à la résolution de surcharge seulement si
  • Le comportement est indéfini si
  • N ! = rank_dynamic ( ) et exts [ r ] n'est pas égal à static_extent ( r ) pour tout r pour lequel static_extent ( r ) représente une étendue statique, ou
  • exts [ r ] est négatif ou non représentable comme une valeur de type IndexType pour tout index de rang r .

Paramètres

autre - un autre extents à convertir
exts - représente les dimensions

Exemple

Voir aussi