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
&&
,
/*make-unsigned-like-t*/
<
ranges::
range_difference_t
<
R
>>
)
-
>
|
(4) | (начиная с C++20) |
Эти руководства по выводу предоставляются для std::ranges::subrange .
subrange
является размерным, если удовлетворяет условию
std::
sized_sentinel_for
<
S, I
>
, как определено аргументом шаблона по умолчанию.
subrange
всегда является sized.
subrange
является размерным, если размер может быть получен из диапазона или его итератора и ограничителя.
subrange
всегда является sized.
Для определения
/* make-unsigned-like-t */
см.
make-unsigned-like-t
.
Примечания
При создании объекта
subrange
,
- для (1,2) поведение не определено, если пара итератор-страж не обозначает допустимый диапазон,
- для (2,4) поведение не определено, если заданный размер не равен размеру диапазона.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3404 | C++20 | meaningless deduction guides from pair-like types were provided | removed |