deduction guides for
std::ranges::subrange
|
헤더 파일에 정의됨
<ranges>
|
||
|
template
<
std::
input_or_output_iterator
I,
std::
sentinel_for
<
I
>
S
>
subrange ( I, S ) - > subrange < I, S > ; |
(1) | (C++20 이후) |
|
template
<
std::
input_or_output_iterator
I,
std::
sentinel_for
<
I
>
S
>
subrange
(
I, S,
/*make-unsigned-like-t*/
<
std::
iter_difference_t
<
I
>>
)
-
>
|
(2) | (C++20 이후) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
)
-
>
|
(3) | (C++20부터) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
,
/*부호없는-유사-타입*/
<
ranges::
range_difference_t
<
R
>>
)
-
>
|
(4) | (C++20 이후) |
이러한 deduction guides 는 std::ranges::subrange 를 위해 제공됩니다.
subrange
는
std::
sized_sentinel_for
<
S, I
>
가 만족되는 경우 기본 템플릿 인자에 의해 결정된 대로 크기가 있는 것으로 간주됩니다.
subrange
는 항상 크기가 지정된 상태입니다.
subrange
는 범위 또는 해당 반복자와 센티넬로부터 크기를 얻을 수 있는 경우 크기 정보를 포함합니다.
subrange
는 항상 크기가 지정됩니다.
/* make-unsigned-like-t */
의 정의는
make-unsigned-like-t
를 참조하십시오.
참고 사항
subrange
객체를 생성하는 동안,
- (1,2) 의 경우, 반복자-감시자 쌍이 유효한 범위를 나타내지 않으면 동작이 정의되지 않습니다,
- (2,4) 의 경우, 주어진 크기가 범위의 크기와 같지 않으면 동작이 정의되지 않습니다.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 3404 | C++20 | pair-like 타입들로부터 의미 없는 deduction guide가 제공됨 | 제거됨 |