std::strict_weak_order
定义于头文件 <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
间的区别是纯语义的。