std:: strict_weak_order
|
Défini dans l'en-tête
<concepts>
|
||
|
template
<
class
R,
class
T,
class
U
>
concept strict_weak_order = std:: relation < R, T, U > ; |
(depuis C++20) | |
Le concept
strict_weak_order<R, T, U>
spécifie que la
relation
R
impose un ordre strict faible sur ses arguments.
Table des matières |
Exigences sémantiques
Une relation r est un ordre strict faible si
- elle est irréflexive : pour tout x , r ( x, x ) est false ;
- elle est transitive : pour tous a , b et c , si r ( a, b ) et r ( b, c ) sont tous deux true alors r ( a, c ) est true ;
- soit e ( a, b ) défini comme ! r ( a, b ) && ! r ( b, a ) , alors e est transitive : e ( a, b ) && e ( b, c ) implique e ( a, c ) .
Dans ces conditions, on peut montrer que e est une relation d'équivalence, et r induit un ordre total strict sur les classes d'équivalence déterminées par e .
Notes
La distinction entre
relation
et
strict_weak_order
est purement sémantique.
Références
- Norme C++23 (ISO/CEI 14882:2024) :
-
-
18.7.7 Concept
strict_weak_order[concept.strictweakorder]
-
18.7.7 Concept
- Norme C++20 (ISO/CEI 14882:2020) :
-
-
18.7.7 Concept
strict_weak_order[concept.strictweakorder]
-
18.7.7 Concept