std::extents<IndexType,Extents...>:: extents
|
constexpr
extents
(
)
=
default
;
|
(1) | (начиная с C++23) |
|
template
<
class
OtherIndexType,
std::
size_t
...
OtherExtents
>
constexpr
explicit
(
/*см. ниже*/
)
|
(2) | (начиная с C++23) |
|
template
<
class
...
OtherIndexTypes
>
constexpr explicit extents ( OtherIndexTypes... exts ) noexcept ; |
(3) | (начиная с C++23) |
|
template
<
class
OtherIndexType,
std::
size_t
N
>
constexpr
explicit
(
N
!
=
rank_dynamic
(
)
)
|
(4) | (начиная с C++23) |
|
template
<
class
OtherIndexType,
std::
size_t
N
>
constexpr
explicit
(
N
!
=
rank_dynamic
(
)
)
|
(5) | (начиная с C++23) |
Создайте
extents
. Можно создать
extents
только из динамических экстентов, которые сохраняют все значения, или из всех экстентов с предусловием.
extents
. После конструирования,
*
this
==
other
равно
true
.
- Поведение не определено, если
-
- other. extent ( r ) ! = static_extent ( r ) для любого r , для которого static_extent ( r ) представляет статическую размерность, или
- other. extent ( r ) не может быть представлено как значение типа IndexType для любого значения ранга r в other .
- Эта перегрузка участвует в разрешении перегрузки только если
-
- sizeof... ( OtherExtents ) == rank ( ) равно true , и
-
(
(
OtherExtents
==
std::
dynamic_extent
||
Extents
==
std::
dynamic_extent
||
OtherExtents == Extents ) && ... ) равно true .
- Этот конструктор является explicit , если
-
- ( ( Extents ! = std:: dynamic_extent && OtherExtents == std:: dynamic_extent ) || ... ) равно true , или
- std:: numeric_limits < IndexType > :: max ( ) < std:: numeric_limits < OtherIndexType > :: max ( ) равно true .
- Эта перегрузка участвует в разрешении перегрузки только если
-
- ( std:: is_convertible_v < OtherIndexTypes, IndexType > && ... ) является true ,
- ( std:: is_nothrow_constructible_v < IndexType, OtherIndexTypes > && ... ) является true , и
- N == rank_dynamic ( ) || N == rank ( ) является true .
- Поведение не определено, если
-
- N ! = rank_dynamic ( ) и exts_arr [ r ] не равно static_extent ( r ) для любого r , для которого static_extent ( r ) представляет статическую размерность, или
- элемент в exts отрицателен или не представим в качестве значения типа IndexType .
[
0
,
rank_dynamic
(
)
)
,
прямое-не-списковое-инициализирует
dynamic-extents
[
d
]
с помощью
std::
as_const
(
exts
[
d
]
)
. Иначе, для всех
d
в
[
0
,
rank_dynamic
(
)
)
, прямое-не-списковое-инициализирует
dynamic-extents
[
d
]
с помощью
std::
as_const
(
exts
[
dynamic-index-inv
(
d
)
]
)
.
- Эта перегрузка участвует в разрешении перегрузки только если
-
- std:: is_convertible_v < const OtherIndexType & , IndexType > равно true ,
- std:: is_nothrow_constructible_v < IndexType, const OtherIndexType & > равно true , и
- N == rank_dynamic ( ) || N == rank ( ) равно true .
- Поведение не определено, если
-
- N ! = rank_dynamic ( ) и exts [ r ] не равно static_extent ( r ) для любого r , для которого static_extent ( r ) представляет статическую размерность, или
- exts [ r ] отрицательно или не представимо как значение типа IndexType для любого индекса размерности r .
Параметры
| other | - |
другой
extents
для преобразования из
|
| exts | - | представляет размерности |
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
|||