std::experimental::ranges:: StrictWeakOrder
From cppreference.net
<
cpp
|
experimental
|
ranges
C++
Experimental
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
Concepts library
| Core language concepts | |||||||||||||
| Object concepts | |||||||||||||
| Comparison concepts | |||||||||||||
| Callable concepts | |||||||||||||
|
|||||||||||||
| URNG concept | |||||||||||||
|
Défini dans l'en-tête
<experimental/ranges/concepts>
|
||
|
template
<
class
R,
class
T,
class
U
>
concept bool StrictWeakOrder = Relation < R, T, U > ; |
(1) | (ranges TS) |
Le concept
StrictWeakOrder<R, T, U>
spécifie que la
Relation
R
impose un ordre strict faible sur ses arguments. Une relation
r
est un ordre strict faible si
-
elle est irréflexive : pour tout
x,r(x, x)est faux ; -
elle est transitive : pour tous
a,betc, sir(a, b)etr(b, c)sont tous deux vrais alorsr(a, c)est vrai ; -
soit
e(a, b)défini comme!r(a, b) && !r(b, a), alorseest transitive :e(a, b) && e(b, c)impliquee(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
StrictWeakOrder
est purement sémantique.