std:: compare_partial_order_fallback
|
Definido en el encabezado
<compare>
|
||
|
inline
namespace
/* no especificado */
{
inline
constexpr
/* no especificado */
|
(desde C++20) | |
|
Firma de llamada
|
||
|
template
<
class
T,
class
U
>
requires
/* 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::partial_ordering
, incluso si el operador
<=>
no está disponible.
Si std:: decay_t < T > y std:: decay_t < U >> son el 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;
-
de lo 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 uno 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.
Contenidos |
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
|
Esta sección está incompleta
Razón: sin 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
|
(C++20)
|
realiza una comparación de 3 vías y produce un resultado de tipo
std::partial_ordering
(objeto punto de personalización) |