Espacios de nombres
Variantes
Acciones

Requisitos denominados de C++: LessThanComparable

De cppreference.com
< cpp‎ | named req
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

El tipo debe funcionar con el operador < y el resultado debe tener una semántica estándar.

[editar] Requisitos

El tipo T satisface LessThanComparable si dadas las expresiones a, b y c, de tipo T o const T (desde C++11), la siguiente expresión es válida y tiene los efectos especificados:

 Expresión  Tipo Efectos
a < b convertible implícitamente a bool 
(hasta C++23)
Establece una relación estricta de orden débil con las siguientes propiedades:
  • Para todo a, !(a < a) resulta true.
  • Si a < b, entonces !(b < a).
  • Si a < b y b < c, entonces a < c.
  • Definiendo equiv(a, b) como !(a < b) && !(b < a), si equiv(a, b) y equiv(b, c), entonces equiv(a, c).
modelos boolean-testable
(desde C++23)

[editar] Notas

Para satisfacer este requisito, los tipos que no tienen operadores de comparación integrados deben proporcionar un operator< definido por usuario.

Para los tipos que son tanto EqualityComparable como LessThanComparable, la biblioteca estándar de C++ hace una distinción entre

  • Igualdad, que es el valor de la expresión a == b y
  • Equivalencia, que es el valor de la expresión !(a < b) && !(b < a).

[editar] Véase también

un BinaryPredicate que establece una relación de orden
(requerimiento denominado)
especifica que una relación impone un orden débil estricto
(concepto) [editar]