Namespaces
Variants

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

Von de.cppreference.net
 
 
Ranges-Bibliothek
Bereichsadapter
 
Definiert in Header <ranges>
template< class T >
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
(1) (seit C++20)
template< ranges::range R >
using const_iterator_t = decltype(ranges::cbegin(std::declval<R&>()));
(2) (seit C++23)
template< ranges::range R >
using sentinel_t = decltype(ranges::end(std::declval<R&>()));
(3) (seit C++20)
template< ranges::range R >
using const_sentinel_t = decltype(ranges::cend(std::declval<R&>()));
(4) (seit C++23)
1) Wird verwendet, um den Iteratortyp des Typs T zu erhalten.
2) Wird verwendet, um den konstanten Iteratortyp des Bereichstyps R zu erhalten.
3) Wird verwendet, um den Sentinel-Typ des Bereichstyps R zu erhalten.
4) Wird verwendet, um den konstanten Sentinel-Typ des Bereichstyps R zu erhalten.

Template-Parameter

T - ein Typ, der in std::ranges::begin verwendet werden kann
R - ein range -Typ oder ein sized_range -Typ

Hinweise

iterator_t kann auf Nicht-Bereichstypen angewendet werden, z.B. Arrays mit unbekannter Grenze.

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Veröffentlichtes Verhalten Korrigiertes Verhalten
LWG 3946 C++23 const_iterator_t und const_sentinel_t waren inkonsistent
mit dem Ergebnis von ranges::cbegin und ranges::cend jeweils
angepasst

Siehe auch

berechnet die assoziierten Typen eines Iterators
(Alias-Template)
ermittelt Größen-, Differenz- und Werttypen eines Ranges
(Alias-Template)
ermittelt Referenztypen eines Ranges
(Alias-Template)