deduction guides for
std::ranges::subrange
|
Definido en el encabezado
<ranges>
|
||
|
template
<
std::
input_or_output_iterator
I,
std::
sentinel_for
<
I
>
S
>
subrange ( I, S ) - > subrange < I, S > ; |
(1) | (desde 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) | (desde C++20) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
)
-
>
|
(3) | (desde C++20) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
,
/*tipo-sin-signo-similar*/
<
ranges::
range_difference_t
<
R
>>
)
-
>
|
(4) | (desde C++20) |
Estas guías de deducción se proporcionan para std::ranges::subrange .
subrange
tiene tamaño si se satisface
std::
sized_sentinel_for
<
S, I
>
, según lo determinado por el argumento de plantilla predeterminado.
subrange
siempre tiene tamaño.
subrange
tiene tamaño si se puede obtener del rango o de su iterador y centinela.
subrange
siempre tiene tamaño.
Para la definición de
/* make-unsigned-like-t */
, véase
make-unsigned-like-t
.
Notas
Mientras se construye el objeto
subrange
,
- para (1,2) , el comportamiento es indefinido si el par iterador-centinela no denota un rango válido,
- para (2,4) , el comportamiento es indefinido si el tamaño dado no es 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 de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3404 | C++20 | se proporcionaron guías de deducción sin sentido de tipos similares a pair | eliminadas |