std:: incrementable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<iterator>
|
||
|
template
<
class
I
>
concept incrementable
=
|
(seit C++20) | |
Dieses Konzept legt Anforderungen an Typen fest, die mit den Prä- und Post-Inkrementoperatoren inkrementiert werden können, deren Inkrementoperationen equality-preserving sind, und der Typ ist std::equality_comparable .
Im Gegensatz zu
std::weakly_incrementable
, die nur Einzel-Durchlauf-Algorithmen unterstützen, können Mehrfach-Durchlauf-Einrichtungsalgorithmen mit Typen verwendet werden, die
std::incrementable
modellieren.
Semantische Anforderungen
I
modelliert
std::incrementable
nur wenn für zwei beliebige inkrementierbare Objekte
a
und
b
vom Typ
I
:
- bool ( a == b ) impliziert bool ( a ++ == b ) , und
- bool ( a == b ) impliziert bool ( ( ( void ) a ++ , a ) == ++ b ) .
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).
Siehe auch
|
(C++20)
|
spezifiziert, dass ein
semiregular
Typ mit Prä- und Post-Inkrementoperatoren inkrementiert werden kann
(Konzept) |
|
(C++20)
|
spezifiziert, dass ein Typ identisch mit einem anderen Typ ist
(Konzept) |