std:: incrementable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<iterator>
|
||
|
template
<
class
I
>
concept incrementable
=
|
(depuis C++20) | |
Ce concept spécifie les exigences pour les types qui peuvent être incrémentés avec les opérateurs de pré-incrémentation et post-incrémentation, dont les opérations d'incrémentation sont préservatrices d'égalité , et le type est std::equality_comparable .
Contrairement à
std::weakly_incrementable
, qui ne prend en charge que les algorithmes à passage unique, les algorithmes multidirectionnels à passes multiples peuvent être utilisés avec les types qui modélisent
std::incrementable
.
Exigences sémantiques
I
modélise
std::incrementable
seulement si étant donné deux objets incrémentables
a
et
b
de type
I
:
- bool ( a == b ) implique bool ( a ++ == b ) , et
- bool ( a == b ) implique bool ( ( ( void ) a ++ , a ) == ++ b ) .
Préservation de l'égalité
Les expressions déclarées dans les requires expressions des concepts de la bibliothèque standard doivent être equality-preserving (sauf indication contraire).
Voir aussi
|
(C++20)
|
spécifie qu'un type
semiregular
peut être incrémenté avec les opérateurs de pré-incrémentation et post-incrémentation
(concept) |
|
(C++20)
|
spécifie qu'un type est identique à un autre type
(concept) |