std::compare_partial_order_fallback
| Défini dans l'en-tête <compare>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */
compare_partial_order_fallback = /* unspecified */;
}
|
(depuis C++20) | |
| Signature d'appel |
||
template< class T, class U >
requires /* see below */
constexpr std::partial_ordering
compare_partial_order_fallback( T&& t, U&& u ) noexcept(/* see below */);
|
(depuis C++20) | |
Effectue une comparaison à trois voies sur sous-expressions t et u et produit un résultat de type std::partial_ordering, même si l'opérateur <=> n'est pas disponible.
Si std::decay_t<T> et std::decay_t<U>> sont du même type, std::compare_partial_order_fallback(t, u) est équivalent à une expression de :
std::partial_order(t, u), s'il s'agit d'une expression bien formée ;- sinon,
t == u ? std::partial_ordering::equivalent :t < u ? std::partial_ordering::less :u < t ? std::partial_ordering::greater :std::partial_ordering::unordered, si les expressionst == u,t < uetu < tsont toutes bien formées et que chacune dedecltype(t == u),decltype(t < u)etdecltype(u < t)modélise testable_booléen, sauf quetetune sont évaluées qu'une seule fois.
Dans tous les autres cas, std::compare_partial_order_fallback(t, u) est mal formé, ce qui peut entraîner un échec de substitution lorsqu'il apparaît dans le contexte immédiat d'une instanciation de modèle.
Objets de point de personnalisation
Le nom
std::compare_partial_order_fallback
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.
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 2114
( P2167R3 ) |
C++20 |
le mécanisme de repli exigeait seulement
que les types de retour soient convertibles en bool |
contraintes renforcées |
| LWG 3465 | C++20 | le mécanisme de repli n'exigeait pas que u < t soit bien formé | exigé |
| LWG 4157 | C++20 | P2167R3 a écrasé la résolution de LWG issue 3465 | a restauré la résolution |
Voir aussi
|
(C++20)
|
effectue une comparaison à trois voies et produit un résultat de type
std::partial_ordering
(objet point de personnalisation) |