std::experimental::ranges:: less
|
Défini dans l'en-tête
<experimental/ranges/functional>
|
||
|
template
<
class
T
=
void
>
requires StrictTotallyOrdered
<
T
>
||
|
(ranges TS) | |
|
template
<>
struct less < void > ; |
(ranges TS) | |
Fonction objet pour effectuer des comparaisons. Le modèle principal invoque
operator
<
sur des lvalues constantes de type
T
. La spécialisation
less<void>
déduit les types de paramètres de l'opérateur d'appel de fonction à partir des arguments (mais pas le type de retour).
Toutes les spécialisations de
less
sont
Semiregular
.
Table des matières |
Types membres
| Type de membre | Définition |
is_transparent
(membre uniquement de
less<void>
spécialisation)
|
/* non spécifié */ |
Fonctions membres
|
operator()
|
vérifie si le premier argument est
inférieur
au second
(fonction membre publique) |
std::experimental::ranges::less:: operator()
|
constexpr
bool
operator
(
)
(
const
T
&
x,
const
T
&
y
)
const
;
|
(1) |
(membre uniquement du template principal
less<T>
)
|
|
template
<
class
T,
class
U
>
requires StrictTotallyOrderedWith
<
T, U
>
||
|
(2) |
(membre uniquement de la spécialisation
less<void>
)
|
t
et
u
. Équivalent à
return
std::
forward
<
T
>
(
t
)
<
std::
forward
<
U
>
(
u
)
;
, sauf lorsque cette expression se résout en un appel à un
operator
<
intégré comparant des pointeurs.
Lorsqu'un appel à
(1)
ou
(2)
invoquerait un opérateur intégré comparant des pointeurs de type
P
, le résultat est déterminé comme suit :
-
Retourne
true
si la valeur (éventuellement convertie) du premier argument précède la valeur (éventuellement convertie) du second argument dans l'ordre total strict défini par l'implémentation sur toutes les valeurs de pointeurs de type
P. Cet ordre total strict est cohérent avec l'ordre partiel imposé par les opérateurs intégrés<,>,<=, et>=. - Sinon, retourne false .
Le comportement est indéfini sauf si les séquences de conversion de
T
et
U
vers
P
préservent l'égalité (voir ci-dessous).
Préservation de l'égalité
Une expression préserve l'égalité si elle produit des sorties égales pour des entrées égales.
- Les entrées d'une expression consistent en ses opérandes.
- Les sorties d'une expression consistent en son résultat et tous les opérandes modifiés par l'expression (le cas échéant).
Toute expression devant préserver l'égalité doit en outre être stable : deux évaluations d'une telle expression avec les mêmes objets d'entrée doivent avoir des sorties égales en l'absence de toute modification explicite intervenant entre ces objets d'entrée.
Notes
Contrairement à
std::less
,
ranges::less
requiert que les six opérateurs de comparaison
<
,
<=
,
>
,
>=
,
==
et
!=
soient valides (via les contraintes
StrictTotallyOrdered
et
StrictTotallyOrderedWith
).
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
objet fonction implémentant
x
<
y
(modèle de classe) |