std::ranges:: iterator_t, std::ranges:: const_iterator_t, std::ranges:: sentinel_t, std::ranges:: const_sentinel_t
From cppreference.net
|
Défini dans l'en-tête
<ranges>
|
||
|
template
<
class
T
>
using iterator_t = decltype ( ranges:: begin ( std:: declval < T & > ( ) ) ) ; |
(1) | (depuis C++20) |
|
template
<
ranges::
range
R
>
using const_iterator_t = decltype ( ranges:: cbegin ( std:: declval < R & > ( ) ) ) ; |
(2) | (depuis C++23) |
|
template
<
ranges::
range
R
>
using sentinel_t = decltype ( ranges:: end ( std:: declval < R & > ( ) ) ) ; |
(3) | (depuis C++20) |
|
template
<
ranges::
range
R
>
using const_sentinel_t = decltype ( ranges:: cend ( std:: declval < R & > ( ) ) ) ; |
(4) | (depuis C++23) |
1)
Utilisé pour obtenir le type d'itérateur du type
T
.
3)
Utilisé pour obtenir le type sentinelle du type de plage
R
.
4)
Utilisé pour obtenir le type sentinelle constant du type de plage
R
.
Table des matières |
Paramètres du modèle
| T | - | un type pouvant être utilisé dans std::ranges::begin |
| R | - |
un type de
range
ou un type de
sized_range
|
Notes
iterator_t
peut être appliqué à des types non-range, par exemple des tableaux avec une limite inconnue.
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 3946 | C++23 |
const_iterator_t
et
const_sentinel_t
étaient incohérents
avec le résultat de
ranges::cbegin
et
ranges::cend
respectivement
|
ajusté |
Voir aussi
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
calcule les types associés d'un itérateur
(modèle d'alias) |
|
(C++20)
(C++20)
(C++20)
|
obtient les types de taille, différence et valeur d'une plage
(modèle d'alias) |
|
(C++20)
(C++23)
(C++20)
(C++20)
|
obtient les types de référence d'une plage
(modèle d'alias) |