Espacios de nombres
Variantes
Acciones

std::strict_weak_order

De cppreference.com
< cpp‎ | concepts
Definido en el archivo de encabezado <concepts>
template < class R, class T, class U >
concept strict_weak_order = std::relation<R, T, U>;
(desde C++20)

El concepto strict_weak_order<R, T, U> especifica que la relación (relation) R impone un orden débil estricto a sus argumentos.

Contenido

[editar] Requisitos semánticos

Una relación r es una relación de orden débil estricto si

  • es irreflexiva: para toda x, r(x, x) es falsa;
  • es transitiva: para toda a, b y c, si tanto r(a, b) como r(b, c) son verdaderas entonces r(a, c) es verdadera;
  • dejemos que e(a, b) sea !r(a, b) && !r(b, a), entonces e es transitiva: e(a, b) && e(b, c) implica e(a, c).

Bajo estas condiciones, puede demostrarse que e es una relación de equivalencia, y r induce un orden estricto total en las clases de equivalencia determinadas por e.

[editar] Notas

La distinción entre relation y strict_weak_order es puramente semántica.

[editar] Referencias

  • El estándar C++23 (ISO/IEC 14882:2023):
  • 18.7.7 Concepto strict_weak_order [concept.strictweakorder]
  • El estándar C++20 (ISO/IEC 14882:2020):
  • 18.7.7 Concepto strict_weak_order [concept.strictweakorder]

[editar] Véase también