std::ranges::subrange<I,S,K>:: subrange
|
subrange
(
)
requires
std::
default_initializable
<
I
>
=
default
;
|
(1) | (desde C++20) |
|
constexpr
subrange
(
/*convertible-to-non-slicing*/
<
I
>
auto
i, S s
)
requires ( ! /*StoreSize*/ ) ; |
(2) | (desde C++20) |
|
constexpr
subrange
(
/*convertible-to-non-slicing*/
<
I
>
auto
i, S s,
/*make-unsigned-like-t*/
<
std::
iter_difference_t
<
I
>>
n
)
|
(3) | (desde C++20) |
|
template
<
/*different-from*/
<
subrange
>
R
>
requires
ranges::
borrowed_range
<
R
>
&&
|
(4) | (desde C++20) |
|
template
<
ranges::
borrowed_range
R
>
requiere
/*convertible-to-non-slicing*/
<
ranges::
iterator_t
<
R
>
, I
>
&&
|
(5) | (desde C++20) |
Construye un
subrange
.
Para las definiciones de
/*make-unsigned-like-t*/
y
/*different-from*/
, consulte
make-unsigned-like-t
y
different-from
respectivamente.
| Sobrecarga | Miembros de datos | ||
|---|---|---|---|
begin_
|
end_
|
size_
(solo si
StoreSize
es
true
)
|
|
| (1) | inicializado por valor | inicializado por valor | inicializado con 0 |
| (2) | inicializado con std :: move ( i ) | inicializado con s | N/A |
| (3) | inicializado con n | ||
| (4) | inicializado con std :: move ( ranges:: begin ( r ) ) | inicializado con ranges:: end ( r ) |
inicializado con
static_cast
<
decltype
(
size_
)
>
(
ranges::
size
(
r
)
)
|
| (5) | inicializado con n | ||
-
[i,s)no es un rango válido. -
n
==
to-unsigned-like ( ranges:: distance ( i, s ) ) es false .
Parámetros
| i | - | iterador que denota el inicio del rango |
| s | - | centinela que denota el final del rango |
| r | - | rango |
| n | - | sugerencia de tamaño, debe ser igual al tamaño del rango |
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| P2393R1 | C++20 |
para la sobrecarga
(
4
)
,
size_
podría inicializarse con
ranges::
size
(
r
)
, pero no siempre es
convertible implícitamente al tipo correspondiente unsigned-integer-like |
se hizo la
conversión explícita |