std::ranges:: less
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<functional>
|
||
|
struct
less
;
|
(depuis C++20) | |
Objet fonction pour effectuer des comparaisons. Déduit les types de paramètres de l'opérateur d'appel de fonction à partir des arguments (mais pas le type de retour).
Table des matières |
Types imbriqués
| Type imbriqué | Définition |
is_transparent
|
unspecified |
Fonctions membres
|
operator()
|
vérifie si le premier argument est
inférieur
au second
(fonction membre publique) |
std::ranges::less:: operator()
|
template
<
class
T,
class
U
>
constexpr bool operator ( ) ( T && t, U && u ) const ; |
||
Étant donnée l'expression std:: forward < T > ( t ) < std:: forward < U > ( u ) comme expr :
-
Si
expr
résulte en un appel à l'
opérateur intégré
operator
<
comparant des pointeurs, étant donné le
type composite de pointeur
de
t
et
u
comme
P:
-
-
Si le
t
converti précède le
u
converti (tous deux de type
P) dans l'ordre total strict défini par l'implémentation sur les pointeurs , retourne true , sinon retourne false . -
Si la séquence de conversion de
TversPou la séquence de conversion deUversPn'est pas préservatrice d'égalité , le comportement est indéfini.
-
Si le
t
converti précède le
u
converti (tous deux de type
- Sinon :
-
- Retourne le résultat de expr .
- Si std:: totally_ordered_with < T, U > n'est pas modélisé, le comportement est indéfini.
Cette surcharge participe à la résolution de surcharge seulement si std:: totally_ordered_with < T, U > est satisfait.
S'il existe une expression
expr1
de type
T
et une expression
expr2
de type
U
, telles que les résultats de comparaison de
expr1
et
expr2
violent
l'ordre total strict
(les règles sont définies ci-dessous), le comportement est indéfini.
Les résultats de comparaison de expr1 et expr2 suivent un ordre total strict seulement si exactement une des expressions suivantes est true :
- std :: ranges:: less { } ( expr1, expr2 )
- std :: ranges:: less { } ( expr2, expr1 )
- std :: ranges:: equal_to { } ( expr1, expr2 )
Notes
Contrairement à
std::less
,
std::ranges::less
requiert que les six opérateurs de comparaison
<
,
<=
,
>
,
>=
,
==
et
!=
soient valides (via la contrainte
totally_ordered_with
).
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
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 correct |
|---|---|---|---|
| LWG 3530 | C++20 | les vérifications syntaxiques ont été assouplies lors de la comparaison de pointeurs | seules les exigences sémantiques sont assouplies |
Voir aussi
|
objet fonction implémentant
x
<
y
(modèle de classe) |