Namespaces
Variants

std::compare_partial_order_fallback

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades del programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
Definido en el encabezado <compare>
inline namespace /* unspecified */ {
    inline constexpr /* unspecified */
        compare_partial_order_fallback = /* unspecified */;
}
(desde C++20)
Firma de llamada
template< class T, class U >
    requires /* see below */
constexpr std::partial_ordering
    compare_partial_order_fallback( T&& t, U&& u ) noexcept(/* see below */);
(desde C++20)

Realiza la comparación de tres vías en subexpresiones t y u y produce un resultado de tipo std::partial_ordering, incluso si el operador <=> no está disponible.

Si std::decay_t<T> y std::decay_t<U>> son del mismo tipo, std::compare_partial_order_fallback(t, u) es equivalente-expresión a:

  • std::partial_order(t, u), si es una expresión bien formada;
  • en caso contrario, t == u ? std::partial_ordering::equivalent :
    t < u ? std::partial_ordering::less :
    u < t ? std::partial_ordering::greater :
             std::partial_ordering::unordered
    , si las expresiones t == u, t < u y u < t están todas bien formadas y cada una de decltype(t == u), decltype(t < u) y decltype(u < t) modela boolean-testable, excepto que t y u se evalúan solo una vez.

En todos los demás casos, std::compare_partial_order_fallback(t, u) está mal formado, lo que puede resultar en fallo de sustitución cuando aparece en el contexto inmediato de una instanciación de plantilla.

Objetos de punto de personalización

El nombre std::compare_partial_order_fallback denota un objeto de punto de personalización , que es un objeto función constante de un tipo de clase literal semiregular . Consulte CustomizationPointObject para más detalles.

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2114
( P2167R3 )
C++20 el mecanismo de respaldo solo requería
que los tipos de retorno fueran convertibles a bool
restricciones fortalecidas
LWG 3465 C++20 el mecanismo de respaldo no requería u < t que estuviera bien formado requerido
LWG 4157 C++20 P2167R3 sobrescribió la resolución de LWG issue 3465 restauró la resolución

Véase también

realiza una comparación de 3 vías y produce un resultado de tipo std::partial_ordering
(objeto punto de personalización)