std:: strict_weak_order
|
Definiert im Header
<concepts>
|
||
|
template
<
class
R,
class
T,
class
U
>
concept strict_weak_order = std:: relation < R, T, U > ; |
(seit C++20) | |
Das Konzept
strict_weak_order<R, T, U>
spezifiziert, dass die
relation
R
eine strenge schwache Ordnung auf ihre Argumente auferlegt.
Inhaltsverzeichnis |
Semantische Anforderungen
Eine Relation r ist eine strikte schwache Ordnung, wenn
- es ist irreflexiv: für alle x ist r ( x, x ) false ;
- es ist transitiv: für alle a , b und c , falls r ( a, b ) und r ( b, c ) beide true sind, dann ist r ( a, c ) true ;
- sei e ( a, b ) definiert als ! r ( a, b ) && ! r ( b, a ) , dann ist e transitiv: e ( a, b ) && e ( b, c ) impliziert e ( a, c ) .
Unter diesen Bedingungen lässt sich zeigen, dass e eine Äquivalenzrelation ist und r eine strenge Totalordnung auf den durch e bestimmten Äquivalenzklassen induziert.
Hinweise
Der Unterschied zwischen
relation
und
strict_weak_order
ist rein semantisch.
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
-
18.7.7 Konzept
strict_weak_order[concept.strictweakorder]
-
18.7.7 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.7.7 Konzept
strict_weak_order[concept.strictweakorder]
-
18.7.7 Konzept