std::strict_weak_order
De cppreference.com
<tbody>
</tbody>
| 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.
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,byc, 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), entoncesees 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.
Notas
La distinción entre relation y strict_weak_order es puramente semántica.
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