# std::experimental::ranges::StrictWeakOrder

< cpp‎ | experimental‎ | ranges

定义于头文件 `<experimental/ranges/concepts>` |  |
template < class R, class T, class U > concept bool StrictWeakOrder = ranges::Relation<R, T, U>; | (1) | (范围 TS)

概念 `StrictWeakOrder<R, T, U>` 指定 `Relation` `R` 蕴含其参数上的严格弱序。若满足下列条件则 `r` 是严格弱序

- 非自反：对于所有 `x` ， `r(x, x)` 为 false ；
- 传递：对于所有 `a` 、 `b` 和 `c` ，若 `r(a, b)` 和 `r(b, c)` 都为 true 则 `r(a, c)` 为 true ；
- 令 `e(a, b)` 为 `!r(a, b) && !r(b, a)` ，则 `e` 是传递的： `e(a, b) && e(b, c)` 蕴含 `e(a, c)` 。

在这些条件下，能证明 `e` 是等价关系，而 `r` 在 `e` 所确定的等价类上引入严格全序。

### 注意

`Relation` 与 `StrictWeakOrder` 间的区别是纯语义的。