C++ named requirements: LessThanComparable
该类型必须能够与
<
运算符配合使用,且结果应符合标准语义。
目录 |
要求
类型
T
满足
LessThanComparable
要求,当给定类型
T
或
const
T
(C++11 起)
的表达式
a
、
b
和
c
时,下列表达式合法且具有指定效果:
| 表达式 | 类型 | 效果 |
|---|---|---|
| a < b |
满足
BooleanTestable
(C++20 前) |
建立具有以下性质的
严格弱序
关系:
|
建模
boolean-testable
(C++20 起) |
注释
为满足此要求,未内置 比较运算符 的类型必须提供 用户自定义的 operator < 。
对于同时满足 可相等比较 和 可小于比较 的类型,C++标准库对以下概念进行了区分:
- 相等性 ,即表达式 a == b 的值,以及
- 等价性 ,即表达式 ! ( a < b ) && ! ( b < a ) 的值。
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 应用于 | 发布时的行为 | 正确行为 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 | 对 bool 的可转换性要求过弱,未能反映实现方案的预期 | 强化了要求条件 |
另请参阅
|
一个
BinaryPredicate
,用于建立排序关系
(具名要求) |
|
|
(C++20)
|
规定某个
relation
需施加严格弱序关系
(概念) |