deduction guides for
std::ranges::subrange
|
Défini dans l'en-tête
<ranges>
|
||
|
template
<
std::
input_or_output_iterator
I,
std::
sentinel_for
<
I
>
S
>
subrange ( I, S ) - > subrange < I, S > ; |
(1) | (depuis 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) | (depuis C++20) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
)
->
|
(3) | (depuis C++20) |
|
template
<
ranges::
borrowed_range
<
R
>
>
subrange
(
R
&&
,
/*make-unsigned-like-t*/
<
ranges::
range_difference_t
<
R
>>
)
-
>
|
(4) | (depuis C++20) |
Ces guides de déduction sont fournis pour std::ranges::subrange .
subrange
est dimensionné si
std::
sized_sentinel_for
<
S, I
>
est satisfait, tel que déterminé par l'argument de template par défaut.
subrange
est toujours dimensionné.
subrange
est dimensionné si la taille peut être obtenue à partir de la plage ou de son itérateur et de son sentinelle.
subrange
est toujours dimensionné.
Pour la définition de
/* make-unsigned-like-t */
, voir
make-unsigned-like-t
.
Notes
Lors de la construction de l'objet
subrange
,
- pour (1,2) , le comportement est indéfini si la paire itérateur-sentinelle ne dénote pas une plage valide,
- pour (2,4) , le comportement est indéfini si la taille donnée n'est pas égale à la taille de la plage.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 3404 | C++20 | des guides de déduction inutiles depuis les types de type paire étaient fournis | supprimés |