C++ 命名要求: LessThanComparable
來自 cppreference.com
型別必須能與 <
運算子配合使用,並且結果應具有標準語義。
目錄 |
[編輯] 要求
型別 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 施加嚴格弱序(概念) |