std::ranges::subrange<I,S,K>:: subrange
|
subrange
(
)
requires
std::
default_initializable
<
I
>
=
default
;
|
(1) | (начиная с C++20) |
|
constexpr
subrange
(
/*convertible-to-non-slicing*/
<
I
>
auto
i, S s
)
requires ( ! /*StoreSize*/ ) ; |
(2) | (начиная с C++20) |
|
constexpr
subrange
(
/*convertible-to-non-slicing*/
<
I
>
auto
i, S s,
/*make-unsigned-like-t*/
<
std::
iter_difference_t
<
I
>>
n
)
|
(3) | (начиная с C++20) |
|
template
<
/*different-from*/
<
subrange
>
R
>
requires
ranges::
borrowed_range
<
R
>
&&
|
(4) | (начиная с C++20) |
|
template
<
ranges::
borrowed_range
R
>
requires
/*конвертируемый-без-срезов*/
<
ranges::
iterator_t
<
R
>
, I
>
&&
|
(5) | (начиная с C++20) |
Создает
subrange
.
Для определений
/*make-unsigned-like-t*/
и
/*different-from*/
см.
make-unsigned-like-t
и
different-from
соответственно.
| Перегрузка | Члены данных | ||
|---|---|---|---|
begin_
|
end_
|
size_
(только если
StoreSize
равно
true
)
|
|
| (1) | инициализировано значением | инициализировано значением | инициализировано значением 0 |
| (2) | инициализировано значением std :: move ( i ) | инициализировано значением s | Н/Д |
| (3) | инициализировано значением n | ||
| (4) | инициализировано значением std :: move ( ranges:: begin ( r ) ) | инициализировано значением ranges:: end ( r ) |
инициализировано значением
static_cast
<
decltype
(
size_
)
>
(
ranges::
size
(
r
)
)
|
| (5) | инициализировано значением n | ||
-
[i,s)не является допустимым диапазоном. -
n
==
to-unsigned-like ( ranges:: distance ( i, s ) ) равно false .
Параметры
| i | - | итератор, обозначающий начало диапазона |
| s | - | страж, обозначающий конец диапазона |
| r | - | диапазон |
| n | - | подсказка размера, должна быть равна размеру диапазона |
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| P2393R1 | C++20 |
для перегрузки
(
4
)
,
size_
может инициализироваться с помощью
ranges::
size
(
r
)
, но оно
не всегда неявно преобразуется в соответствующий unsigned-integer-like тип |
преобразование сделано
явным |