std::weak_ordering
Definido en el archivo de encabezado <compare> | ||
class weak_ordering; | (desde C++20) | |
El tipo clase std::weak_ordering
(ordenamiento débil) es el tipo resultado de una comparación de tres vías que
- permite todos los seis operadores relacionales (==, !=, <, <=, >, >=);
- no permite los valores incomparables: exactamente uno de a < b, a == b, o a > b debe ser verdadero.
Contenido |
[editar]Constantes
El tipo std::weak_ordering
tiene tres valores válidos, implementados como datos miembro const static
de su tipo:
Constante miembro | Definición |
less(inline constexpr) [estático] | Un valor válido de tipo std::weak_ordering que indica una relación menor-que (ordenado antes). (constante miembro pública estática) |
equivalent(inline constexpr) [estático] | Un valor válido de tipo std::weak_ordering que indica equivalencia (ordenado ni antes ni después). (constante miembro pública estática) |
greater(inline constexpr) [estático] | Un valor válido de tipo std::weak_ordering que indica una relación mayor-que (ordenado después). (constante miembro pública estática) |
[editar]Conversiones
std::weak_ordering
es convertible implícitamente a std::partial_ordering, mientras que std::strong_ordering es convertible implícitamente a weak_ordering.
operator partial_ordering | Conversión implícita a std::partial_ordering. (función miembro pública) |
std::weak_ordering::operator partial_ordering
constexpr operator partial_ordering()constnoexcept; | ||
Valor de retorno
std::partial_ordering::less si v
es less
, std::partial_ordering::greater si v
es greater
, std::partial_ordering::equivalent si v
es equivalent
.
[editar]Comparaciones
Los operadores de comparación están definidos entre valores de este tipo y el literal 0. Esto soporta las expresiones a <=> b ==0 o a <=> b <0 que pueden usarse para convertir el resultado de una comparación de tres vías a una relación Booleana; véase std::is_eq, std::is_lt, etc.
Estas funciones no son visibles a una búsqueda no calificada o calificada, y pueden encontrarse solamente mediante la búsqueda dependiente de argumento cuando std::weak_ordering
es una clase asociada de los argumentos.
El comportamiento de un programa que intenta comparar un weak_ordering
con cualquier cosa que no sea el literal entero 0 no está definido.
operator==operator<operator>operator<=operator>=operator<=> | Se compara con cero o un weak_ordering . (función) |
operator==
friendconstexprbool operator==(weak_ordering v, /*no especificado*/ u)noexcept; | (1) | |
friendconstexprbool operator==(weak_ordering v, weak_ordering w)noexcept=default; | (2) | |
Parámetros
v, w | - | Valores std::weak_ordering a comprobar. |
u | - | Un parámetro sin usar de cualquier tipo que acepte el literal cero como argumento. |
Valor de retorno
v
es equivalent
, false si v
es less
o greater
.operator<
friendconstexprbool operator<(weak_ordering v, /*no especificado*/ u)noexcept; | (1) | |
friendconstexprbool operator<(/*no especificado*/ u, weak_ordering v)noexcept; | (2) | |
Parámetros
v | - | Un valor std::weak_ordering a comprobar. |
u | - | Un parámetro sin usar de cualquier tipo que acepte el literal cero como argumento. |
Valor de retorno
v
es less
, y false si v
es greater
o equivalent
.v
es greater
, y false si v
es less
o equivalent
. operator<=
friendconstexprbool operator<=(weak_ordering v, /*no especificado*/ u)noexcept; | (1) | |
friendconstexprbool operator<=(/*no especificado*/ u, weak_ordering v)noexcept; | (2) | |
Parámetros
v | - | Un valor std::weak_ordering a comprobar. |
u | - | Un parámetro sin usar de cualquier tipo que acepte el literal cero como argumento. |
Valor de retorno
v
es less
o equivalent
, y false si v
es greater
.v
es greater
o equivalent
, y false si v
es less
. operator>
friendconstexprbool operator>(weak_ordering v, /*no especificado*/ u)noexcept; | (1) | |
friendconstexprbool operator>(/*no especificado*/ u, weak_ordering v)noexcept; | (2) | |
Parámetros
v | - | Un valor std::weak_ordering a comprobar. |
u | - | Un parámetro sin usar de cualquier tipo que acepte el literal cero como argumento. |
Valor de retorno
v
es greater
, y false si v
es less
o equivalent
.v
es less
, y false si v
es greater
o equivalent
. operator>=
friendconstexprbool operator>=(weak_ordering v, /*no especificado*/ u)noexcept; | (1) | |
friendconstexprbool operator>=(/*no especificado*/ u, weak_ordering v)noexcept; | (2) | |
Parámetros
v | - | Un valor std::weak_ordering a comprobar. |
u | - | Un parámetro sin usar de cualquier tipo que acepte el literal cero como argumento. |
Valor de retorno
v
es greater
o equivalent
, y false si v
es less
.v
es less
o equivalent
, y false si v
es greater
. operator<=>
friendconstexpr weak_ordering operator<=>(weak_ordering v, /*no especificado*/ u)noexcept; | (1) | |
friendconstexpr weak_ordering operator<=>(/*no especificado*/ u, weak_ordering v)noexcept; | (2) | |
Parámetros
v | - | Un valor std::weak_ordering a comprobar. |
u | - | Un parámetro sin usar de cualquier tipo que acepte el literal cero como argumento. |
Valor de retorno
greater
si v
es less
, less
si v
es greater
; de lo contrario, v
. [editar]Ejemplo
Esta sección está incompleta Razón: sin ejemplo |
[editar]Véase también
(C++20) | El tipo del resultado de una comparación de tres vías que soporta todos los 6 operadores y es sustituible. (clase) |
(C++20) | El tipo del resultado de una comparación de tres vías que soporta todos los 6 operadores, no es sustituible y permite valores incomparables. (clase) |