std::ranges:: iterator_t, std::ranges:: const_iterator_t, std::ranges:: sentinel_t, std::ranges:: const_sentinel_t
From cppreference.net
|
Definiert im 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.
Inhaltsverzeichnis |
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) |