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
는 저장되는 모든 값인 동적 익스텐트(dynamic extents)만으로 구성하거나, 선결 조건과 함께 모든 익스텐트로부터 구성할 수 있습니다.
extents
객체로부터의 변환. 생성 후에는
*
this
==
other
가
true
입니다.
- 다음 중 하나라도 참이면 동작은 정의되지 않음:
-
- other. extent ( r ) ! = static_extent ( r ) 가 정적 범위를 나타내는 임의의 r 에 대해 성립하거나,
- other. extent ( r ) 가 IndexType 타입의 값으로 표현 불가능한 경우 other 내의 임의의 차원 값 r 에 대해.
- 이 오버로드는 다음 조건이 충족될 때만 오버로드 해결에 참여함:
-
- 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 ( ) 이고 정적 범위를 나타내는 임의의 r 에 대해 exts_arr [ 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 ( ) 이고 정적 범위를 나타내는 어떤 r 에 대해 exts [ r ] 가 static_extent ( r ) 와 같지 않거나,
- 어떤 랭크 인덱스 r 에 대해 exts [ r ] 가 음수이거나 IndexType 타입의 값으로 표현할 수 없는 경우입니다.
매개변수
| other | - |
변환할 다른
extents
|
| exts | - | extents를 나타냄 |
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
|||