std::ranges::iterator_t, std::ranges::const_iterator_t, std::ranges::sentinel_t, std::ranges::const_sentinel_t
Von cppreference.com
| 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.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 inkonsistentmit dem Ergebnis von ranges::cbegin bzw. ranges::cend |
korrigiert |
[bearbeiten] Siehe auch
| (C++20)(C++20)(C++23)(C++20)(C++20)(C++20) |
berechnet die zugehörigen Typen eines Iterators (Alias-Schablone) |
| (C++20)(C++20)(C++20) |
ermittelt Größen-, Differenz- und Wertetypen eines Ranges (Alias-Template) |
| ermittelt Referenztypen eines Ranges (Alias-Template) |