std::compare_partial_order_fallback
| 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 expresionest == u,t < uyu < testán todas bien formadas y cada una dedecltype(t == u),decltype(t < u)ydecltype(u < t)modela boolean-testable, excepto quetyuse 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
|
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) |