名稱空間
變體
操作

C++ 命名要求: LessThanComparable

來自 cppreference.com
 
 
C++ 命名要求
基本
型別屬性
全庫範圍
LessThanComparable(可小於比較)




Container(容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
(C++20)
隨機數
併發
(C++11)
Ranges
多維檢視
其他

 

型別必須能與 < 運算子配合使用,並且結果應具有標準語義。

目錄

[編輯] 要求

型別 T 滿足 LessThanComparable,如果給定型別 Tconst T(自 C++11 起) 的表示式 abc,則以下表達式有效並具有其指定的效果

 表示式  型別 效果
a < b 滿足 BooleanTestable
(C++20 前)
建立具有以下屬性的 嚴格弱序 關係
  • 對於所有 a!(a < a) 產生 true
  • 如果 a < b,則 !(b < a)
  • 如果 a < bb < c,則 a < c
  • equiv(a, b) 定義為 !(a < b) && !(b < a),如果 equiv(a, b)equiv(b, c),則 equiv(a, c)
模型 boolean-testable
(C++20 起)

[編輯] 注意

為滿足此要求,沒有內建比較運算子的型別必須提供使用者定義的 operator<

對於同時滿足 EqualityComparableLessThanComparable 的型別,C++ 標準庫區分

  • 相等性,即表示式 a == b 的值,以及
  • 等價性,即表示式 !(a < b) && !(b < a) 的值。

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 2114
(P2167R3)
C++98 可轉換為 bool 對於反映實現的期望來說太弱了 要求已加強

[編輯] 另請參閱

建立排序關係的 BinaryPredicate
(命名要求)
指定 relation 施加嚴格弱序
(概念) [編輯]