C++ named requirements: LessThanComparable
型は
<
演算子で動作し、結果は標準的なセマンティクスを持つ必要があります。
目次 |
要件
型
T
は、型
T
または
const
T
(C++11以降)
の式
a
、
b
および
c
が与えられたとき、以下の式が有効であり指定された効果を持つ場合、
LessThanComparable
を満たします:
| 式 | 型 | 効果 |
|---|---|---|
| a < b |
BooleanTestable
を満たす
(C++20まで) |
以下の性質を持つ
狭義弱順序
関係を確立する:
|
boolean-testable
をモデル化する
(C++20以降) |
注記
この要件を満たすためには、組み込みの 比較演算子 を持たない型は、 ユーザー定義の operator < を提供する必要があります。
EqualityComparable と LessThanComparable の両方の要件を満たす型について、C++標準ライブラリは以下の区別を行います
- 等値性 (Equality)。これは式 a == b の値である。
- 同値性 (Equivalence)。これは式 ! ( a < b ) && ! ( b < a ) の値である。
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 | bool への変換可能性が実装の期待を反映するには弱すぎた | 要件を強化 |
関連項目
|
順序関係を確立する
BinaryPredicate
(名前付き要件) |
|
relation
が狭義の弱順序を課すことを指定する
(コンセプト) |