nothrow-sentinel-for, nothrow-sized-sentinel-for
Von de.cppreference.net
template< class S, class I >
concept /*nothrow-sentinel-for*/ = std::sentinel_for<S, I>;
|
(1) | (nur zur Veranschaulichung*) |
template< class I >
concept /*nothrow-sized-sentinel-for*/ =
/*nothrow-sentinel-for*/<S, I> &&
std::sized_sentinel_for<S, I>;
|
(2) | (seit C++26) (nur zur Veranschaulichung*) |
Diese Konzepte, die nur zur Veranschaulichung dienen, legen fest, dass von Operationen, die von den spezialisierten <Speicher>-Algorithmen zwischen Iteratoren und Sentinel-Werten benötigt werden, keine Ausnahmen ausgelöst werden.
Semantische Anforderungen
1) Die Typen
S und I modellieren nothrow-sentinel-for nur dann, wenn bei der Kopierkonstruktion, Verschiebungskonstruktion, Kopierzuweisung, Verschiebungszuweisung oder Vergleichen zwischen gültigen Werten der Typen I und S keine Ausnahmen ausgelöst werden.2) Die Typen
S und I modellieren nothrow-sized-sentinel-for nur dann, wenn bei der --Operation für gültige Werte der Typen I und S keine Ausnahmen ausgelöst werden.Anmerkungen
Diese Konzepte erlauben, dass einige sentinel_for- und sized_sentinel_for-Operationen Ausnahmen auslösen.
Siehe auch
(C++20) |
gibt an, dass ein Typ ein Sentinel für einen input_or_output_iterator-Typ ist (Konzept) |
(C++20) |
gibt an, dass die --Operation auf einen Iterator und einen Sentinel angewendet werden kann, um ihre Differenz in konstanter Zeit zu berechnen (Konzept) |