Namespaces
Variants

std:: strict_weak_order

From cppreference.net
Definido en el 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 relation R impone un ordenamiento estricto débil sobre sus argumentos.

Contenidos

Requisitos semánticos

Una relación r es un ordenamiento estricto débil si

  • es irreflexiva: para todo x , r ( x, x ) es false ;
  • es transitiva: para todo a , b y c , si r ( a, b ) y r ( b, c ) son ambos true entonces r ( a, c ) es true ;
  • sea e ( a, b ) igual a ! r ( a, b ) && ! r ( b, a ) , entonces e es transitiva: e ( a, b ) && e ( b, c ) implica e ( a, c ) .

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

Notas

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

Referencias

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

Véase también