Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | ranges
 
 
Bereichsbibliothek
Range-Adaptoren
 
Definiert in der Header-Datei <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 Iterator-Typ des Typs T zu erhalten.
2) Wird verwendet, um den konstanten Iterator-Typ des range-Typs R zu erhalten.
3) Wird verwendet, um den Sentinel-Typ des Range-Typs R zu erhalten.
4) Wird verwendet, um den konstanten Sentinel-Typ des Range-Typs R zu erhalten.

Inhalt

[bearbeiten] Template-Parameter

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

[bearbeiten] Hinweise

iterator_t kann auf Nicht-Range-Typen angewendet werden, z. B. Arrays mit unbekannter Größe.

[bearbeiten] Defect reports

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

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3946 C++23 const_iterator_t und const_sentinel_t waren inkonsistent
mit dem Ergebnis von ranges::cbegin bzw. ranges::cend
korrigiert

[bearbeiten] Siehe auch

berechnet die zugehörigen Typen eines Iterators
(Alias-Schablone)[bearbeiten]
ermittelt Größen-, Differenz- und Wertetypen eines Ranges
(Alias-Template)[edit]
ermittelt Referenztypen eines Ranges
(Alias-Template)[edit]