Namespaces
Variants

std::ranges:: iterator_t, std::ranges:: const_iterator_t, std::ranges:: sentinel_t, std::ranges:: const_sentinel_t

From cppreference.net
Ranges library
Range adaptors
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 .
2) Utilisé pour obtenir le type d'itérateur constant du range type R .
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

calcule les types associés d'un itérateur
(modèle d'alias)
obtient les types de taille, différence et valeur d'une plage
(modèle d'alias)
obtient les types de référence d'une plage
(modèle d'alias)