std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t
Von de.cppreference.net
| 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.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
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
berechnet die assoziierten Typen eines Iterators
(Alias-Template) |
|
(C++20)
(C++20)
(C++20)
|
ermittelt Größen-, Differenz- und Werttypen eines Ranges
(Alias-Template) |
|
(C++20)
(C++23)
(C++20)
(C++20)
|
ermittelt Referenztypen eines Ranges
(Alias-Template) |