std::strict_weak_order
De cppreference.com
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
yc
, si tantor(a, b)
comor(b, c)
son verdaderas entoncesr(a, c)
es verdadera; - dejemos que
e(a, b)
sea!r(a, b) && !r(b, a)
, entoncese
es transitiva:e(a, b) && e(b, c)
implicae(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]
- 18.7.7 Concepto
- El estándar C++20 (ISO/IEC 14882:2020):
- 18.7.7 Concepto
strict_weak_order
[concept.strictweakorder]
- 18.7.7 Concepto