Namespaces
Variants

std:: compare_strong_order_fallback

From cppreference.net
Utilities library
Definido en el encabezado <compare>
inline namespace /* no especificado */ {

inline constexpr /* no especificado */
compare_strong_order_fallback = /* no especificado */ ;

}
(desde C++20)
Firma de llamada
template < class T, class U >

requires /* ver más abajo */
constexpr std:: strong_ordering

compare_strong_order_fallback ( T && t, U && u ) noexcept ( /* ver más abajo */ ) ;
(desde C++20)

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

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

  • std:: strong_order ( t, u ) , si es una expresión bien formada;
  • de lo contrario, t == u ? std :: strong_ordering :: equal :
    t < u ? std :: strong_ordering :: less :
    std :: strong_ordering :: greater
si las expresiones t == u y t < u están bien formadas y cada uno de decltype ( t == u ) y decltype ( t < u ) modela boolean-testable , excepto que t y u se evalúan solo una vez.

En todos los demás casos, std :: compare_strong_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.

Contenidos

Objetos de punto de personalización

El nombre std::compare_strong_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 de C++ publicados anteriormente.

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

Véase también

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