C++ 命名要求: LessThanComparable
来自 cppreference.cn
类型必须能与 <
运算符配合使用,并且结果应具有标准语义。
目录 |
[编辑] 要求
类型 T
满足 LessThanComparable,如果给定类型 T
或 const T(自 C++11 起) 的表达式 a、b 和 c,则以下表达式有效并具有其指定的效果
表达式 | 类型 | 效果 |
---|---|---|
a < b | 满足 BooleanTestable (C++20 前) |
建立具有以下属性的 严格弱序 关系
|
模型 boolean-testable (C++20 起) |
[编辑] 注意
为满足此要求,没有内置比较运算符的类型必须提供用户定义的 operator<。
对于同时满足 EqualityComparable 和 LessThanComparable 的类型,C++ 标准库区分
- 相等性,即表达式 a == b 的值,以及
- 等价性,即表达式 !(a < b) && !(b < a) 的值。
[编辑] 缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
---|---|---|---|
LWG 2114 (P2167R3) |
C++98 | 可转换为 bool 对于反映实现的期望来说太弱了 | 要求已加强 |
[编辑] 另请参阅
建立排序关系的 BinaryPredicate (命名要求) | |
(C++20) |
指定 relation 施加严格弱序(概念) |