std::extents<IndexType,Extents...>:: extents
constexpr
extents
(
)
=
default
;
|
(1) | (since C++23) |
template
<
class
OtherIndexType,
std::
size_t
...
OtherExtents
>
constexpr
explicit
(
/*see below*/
)
|
(2) | (since C++23) |
template
<
class
...
OtherIndexTypes
>
constexpr explicit extents ( OtherIndexTypes... exts ) noexcept ; |
(3) | (since C++23) |
template
<
class
OtherIndexType,
std::
size_t
N
>
constexpr
explicit
(
N
!
=
rank_dynamic
(
)
)
|
(4) | (since C++23) |
template
<
class
OtherIndexType,
std::
size_t
N
>
constexpr
explicit
(
N
!
=
rank_dynamic
(
)
)
|
(5) | (since C++23) |
Construct an
extents
. One can construct
extents
from just dynamic extents, which are all the values getting stored, or from all the extents with a precondition.
extents
object. After construction,
*
this
==
other
is
true
.
- The behavior is undefined if
-
- other. extent ( r ) ! = static_extent ( r ) for any r for which static_extent ( r ) represents a static extent, or
- other. extent ( r ) is not representable as a value of type IndexType for any rank value r in other .
- This overload participates in overload resolution only if
-
- sizeof... ( OtherExtents ) == rank ( ) is true , and
-
(
(
OtherExtents
==
std::
dynamic_extent
||
Extents
==
std::
dynamic_extent
||
OtherExtents == Extents ) && ... ) is true .
- This constructor is explicit if
-
- ( ( Extents ! = std:: dynamic_extent && OtherExtents == std:: dynamic_extent ) || ... ) is true , or
- std:: numeric_limits < IndexType > :: max ( ) < std:: numeric_limits < OtherIndexType > :: max ( ) is true .
- This overload participates in overload resolution only if
-
- ( std:: is_convertible_v < OtherIndexTypes, IndexType > && ... ) is true ,
- ( std:: is_nothrow_constructible_v < IndexType, OtherIndexTypes > && ... ) is true , and
- N == rank_dynamic ( ) || N == rank ( ) is true .
- The behavior is undefined if
-
- N ! = rank_dynamic ( ) and exts_arr [ r ] is not equal to static_extent ( r ) for any r for which static_extent ( r ) represents a static extent, or
- an element in exts is negative or not representable as a value of type IndexType .
[
0
,
rank_dynamic
(
)
)
,
direct-non-list-initializes
dynamic-extents
[
d
]
with
std::
as_const
(
exts
[
d
]
)
. Otherwise, for all
d
in
[
0
,
rank_dynamic
(
)
)
, direct-non-list-initializes
dynamic-extents
[
d
]
with
std::
as_const
(
exts
[
dynamic-index-inv
(
d
)
]
)
.
- This overload participates in overload resolution only if
-
- std:: is_convertible_v < const OtherIndexType & , IndexType > is true ,
- std:: is_nothrow_constructible_v < IndexType, const OtherIndexType & > is true , and
- N == rank_dynamic ( ) || N == rank ( ) is true .
- The behavior is undefined if
-
- N ! = rank_dynamic ( ) and exts [ r ] is not equal to static_extent ( r ) for any r for which static_extent ( r ) represents a static extent, or
- exts [ r ] is negative or not representable as a value of type IndexType for any rank index r .
Parameters
other | - |
another
extents
to convert from
|
exts | - | represents the extents |
Example
This section is incomplete
Reason: no example |
See also
|