no-throw-input-iterator, no-throw-forward-iterator, no-throw-sentinel-for, no-throw-input-range, no-throw-forward-range
| template< class I > Konzept no-throw-input-iterator = |
(1) | (nur Exposition*) |
| template< class I > konzept no-throw-forward-iterator = |
(2) | (nur Exposition*) |
| template< class S, class I > konzept no-throw-sentinel-for = std::sentinel_for<S, I>; |
(3) | (nur Exposition*) |
| template< class R > konzept no-throw-input-range = |
(4) | (nur Exposition*) |
| template< class R > konzept no-throw-forward-range = |
(5) | (nur Exposition*) |
Diese exposition-only Konzepte spezifizieren, dass keine Ausnahmen von Operationen geworfen werden, die von Algorithmen auf Iteratoren, Sentinels und Ranges benötigt werden.
no-throw-input-iterator erfordert, dass das Dereferenzieren des Iterators einen Lvalue liefert, wie bei contiguous_iterator und LegacyForwardIterator.[bearbeiten] Semantische Anforderungen
Wie alle Standardkonzepte wird jedes hier aufgeführte Konzept nur dann modelliert, wenn alle Konzepte, die es einschließt, modelliert werden.
I modelliert no-throw-input-iterator nur, wenn keine Ausnahmen von Inkrement-, Kopierkonstruktion, Move-Konstruktion, Kopierzuweisung, Move-Zuweisung oder Indirektion durch gültige Iteratoren geworfen werden.S und I modellieren no-throw-sentinel-for nur, wenn keine Ausnahmen von Kopierkonstruktion, Move-Konstruktion, Kopierzuweisung, Move-Zuweisung oder Vergleichen zwischen gültigen Werten vom Typ I und S geworfen werden.R modelliert no-throw-input-range nur, wenn keine Ausnahmen von Aufrufen von ranges::begin und ranges::end auf einem Objekt vom Typ R geworfen werden.[bearbeiten] Hinweise
Diese Konzepte erlauben es einigen Operationen auf Iteratoren und Sentinels, Ausnahmen zu werfen, z.B. Operationen auf ungültigen Werten.
[bearbeiten] Siehe auch
| (C++20) |
spezifiziert, dass ein Typ ein Eingabeiterator ist, d. h. seine referenzierten Werte können gelesen werden und er kann sowohl prä- als auch post-inkrementiert werden (Konzept) |
| (C++20) |
spezifiziert, dass ein input_iterator ein Vorwärtsiterator ist, der Gleichheitsvergleich und Multi-Pass unterstützt(Konzept) |
| (C++20) |
spezifiziert, dass ein Typ ein Sentinel für einen input_or_output_iterator-Typ ist(Konzept) |
| (C++20) |
spezifiziert einen Range, dessen Iteratortyp input_iterator erfüllt(Konzept) |
| (C++20) |
spezifiziert einen Range, dessen Iteratortyp forward_iterator erfüllt(Konzept) |