Namespaces
Variants

std:: weak_order

From cppreference.net
Utilities library
Défini dans l'en-tête <compare>
inline namespace /* unspecified */ {

inline constexpr /* unspecified */ weak_order = /* unspecified */ ;

}
(depuis C++20)
Signature d'appel
template < class T, class U >

requires /* see below */

constexpr std:: weak_ordering weak_order ( T && t, U && u ) noexcept ( /* see below */ ) ;

Compare deux valeurs en utilisant la comparaison à trois voies et produit un résultat de type std::weak_ordering .

Soient t et u des expressions, et T et U désignent respectivement decltype ( ( t ) ) et decltype ( ( u ) ) , std :: weak_order ( t, u ) est équivalent en expression à :

Table des matières

Objets de point de personnalisation

Le nom std::weak_order désigne un objet de point de personnalisation , qui est un objet fonction constant d'un type de classe littéral semiregular . Voir CustomizationPointObject pour plus de détails.

Ordre faible strict des types à virgule flottante IEEE

Soient x et y des valeurs du même type à virgule flottante IEEE, et weak_order_less ( x, y ) le résultat booléen indiquant si x précède y dans l'ordre faible strict défini par la norme C++.

  • Si ni x ni y n'est NaN, alors weak_order_less ( x, y ) == true si et seulement si x < y , c'est-à-dire que toutes les représentations d'une même valeur flottante sont équivalentes ;
  • Si x est un NaN négatif et y n'est pas un NaN négatif, alors weak_order_less ( x, y ) == true ;
  • Si x n'est pas un NaN positif et y est un NaN positif, alors weak_order_less ( x, y ) == true ;
  • Si x et y sont tous deux des NaNs avec le même signe, alors ( weak_order_less ( x, y ) || weak_order_less ( y, x ) ) == false , c'est-à-dire que tous les NaNs avec le même signe sont équivalents.

Exemple

Voir aussi

le type de résultat de la comparaison à trois voies qui prend en charge les 6 opérateurs et n'est pas substituable
(classe)
effectue une comparaison à trois voies et produit un résultat de type std::strong_ordering
(objet de point de personnalisation)
effectue une comparaison à trois voies et produit un résultat de type std::partial_ordering
(objet de point de personnalisation)
effectue une comparaison à trois voies et produit un résultat de type std::weak_ordering , même si operator <=> n'est pas disponible
(objet de point de personnalisation)