C++ named requirements: LessThanComparable
Le type doit fonctionner avec
<
opérateur et le résultat doit avoir une sémantique standard.
Table des matières |
Exigences
Le type
T
satisfait
LessThanComparable
si étant données les expressions
a
,
b
et
c
de type
T
ou
const
T
(depuis C++11)
, l'expression suivante est valide et a ses effets spécifiés :
| Expression | Type | Effets |
|---|---|---|
| a < b |
satisfait
BooleanTestable
(jusqu'à C++20) |
Établit une relation de
ordre strict faible
avec les propriétés suivantes :
|
modélise
boolean-testable
(depuis C++20) |
Notes
Pour satisfaire cette exigence, les types qui n'ont pas d'opérateurs de comparaison intégrés opérateurs de comparaison doivent fournir un opérateur operator < défini par l'utilisateur.
Pour les types qui sont à la fois EqualityComparable et LessThanComparable , la bibliothèque standard C++ établit une distinction entre
- Égalité , qui est la valeur de l'expression a == b et
- Équivalence , qui est la valeur de l'expression ! ( a < b ) && ! ( b < a ) .
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 | la convertibilité vers bool était trop faible pour refléter les attentes des implémentations | exigences renforcées |
Voir aussi
|
un
BinaryPredicate
qui établit une relation d'ordre
(exigence nommée) |
|
spécifie qu'une
relation
impose un ordre faible strict
(concept) |