C++ 具名要求:可相等比较 (EqualityComparable)
类型必须能使用 == 运算符且结果应当具有标准语义。
要求
以下情况下,类型 T
满足可相等比较 (EqualityComparable) :
给定
-
T
或const T
类型的表达式a
、b
与c
下列表达式必须合法且拥有其指定的效果
表达式 | 返回类型 | 要求 |
---|---|---|
a == b
|
可隐式转换为 bool | 建立一种等价关系,即满足下列性质:
|
注解
为满足此要求,没有内建比较运算符的类型必须提供用户定义的 operator==。
对于既为可相等比较 (EqualityComparable) 亦为可小于比较 (LessThanComparable) 的类型, C++ 标准库对相等(即表达式 a == b 的值)和等价(即表达式 !(a < b) && !(b < a) 的值)间做出区别。