std::incrementable
| Definiert in Header <iterator> |
||
| template< class I > concept incrementable = |
(seit C++20) | |
Dieses Konzept spezifiziert Anforderungen an Typen, die mit den Prä- und Post-Inkrement-Operatoren inkrementiert werden können, deren Inkrementoperationen Gleichheit bewahren und deren Typ std::equality_comparable ist.
Im Gegensatz zu std::weakly_incrementable, das nur Single-Pass-Algorithmen unterstützt, können Multi-Pass-Einweg-Algorithmen mit Typen verwendet werden, die std::incrementable modellieren.
[bearbeiten] Semantische Anforderungen
I modelliert std::incrementable nur, wenn für zwei beliebige inkrementierbare Objekte a und b vom Typ I gilt:
- bool(a == b) impliziert bool(a++ == b), und
- bool(a == b) impliziert bool(((void)a++, a) == ++b).
[bearbeiten] Gleichheitserhaltung
Ausdrücke, die in requires-Ausdrücken der Standardbibliothekskonzepte deklariert sind, müssen gleichheitserhaltend sein (sofern nicht anders angegeben).
[bearbeiten] Siehe auch
| (C++20) |
spezifiziert, dass ein semiregular-Typ mit Prä- und Post-Inkrementoperatoren inkrementiert werden kann(Konzept) |
| (C++20) |
gibt an, dass ein Typ identisch mit einem anderen Typ ist (Konzept) |