std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t
De fr.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 de sentinelle du type de plage
R.4) Utilisé pour obtenir le type de sentinelle constant du type de plage
R.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) |