std::strict_weak_order
来自cppreference.com
| 定义于头文件 <concepts>
|
||
| template < class R, class T, class U > concept strict_weak_order = std::relation<R, T, U>; |
(C++20 起) | |
概念 strict_weak_order<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 与 strict_weak_order 间的区别是纯语义的。