std::extents<IndexType,Extents...>:: extents
|
constexpr
extents
(
)
=
default
;
|
(1) | (depuis C++23) |
|
template
<
class
OtherIndexType,
std::
size_t
...
OtherExtents
>
constexpr
explicit
(
/*voir ci-dessous*/
)
|
(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
(
)
)
|
(4) | (depuis C++23) |
|
template
<
class
OtherIndexType,
std::
size_t
N
>
constexpr
explicit
(
N
!
=
rank_dynamic
(
)
)
|
(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.
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
-
- sizeof... ( OtherExtents ) == rank ( ) est true , et
-
(
(
OtherExtents
==
std::
dynamic_extent
||
Extents
==
std::
dynamic_extent
||
OtherExtents == Extents ) && ... ) est true .
- Ce constructeur est explicit si
-
- ( ( Extents ! = std:: dynamic_extent && OtherExtents == std:: dynamic_extent ) || ... ) est true , ou
- std:: numeric_limits < IndexType > :: max ( ) < std:: numeric_limits < OtherIndexType > :: max ( ) est true .
- Cette surcharge participe à la résolution de surcharge seulement si
-
- ( std:: is_convertible_v < OtherIndexTypes, IndexType > && ... ) est true ,
- ( std:: is_nothrow_constructible_v < IndexType, OtherIndexTypes > && ... ) est true , et
- N == rank_dynamic ( ) || N == rank ( ) est true .
- 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 .
[
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
-
- std:: is_convertible_v < const OtherIndexType & , IndexType > est true ,
- std:: is_nothrow_constructible_v < IndexType, const OtherIndexType & > est true , et
- N == rank_dynamic ( ) || N == rank ( ) est true .
- 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
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
|||