然而,它们中的许多都需要判断两个元素是否“相等”。正如引用所述,标准库确定了a == b iff !comp(a, b) && !comp(b, a)。显然,判断等值需要两倍的时间。正如我们所知道的,std::string::compare方法返回一个int值,它分别用负值、零值和正值表示“较少”、“相等”和“更大”。所以我的问题是,为什么标准库不要求Compare返回一个整数值或能够表示至少3个独立值的任何其他类型?
虽然我知道单价的否定实际上是某些同构类型是不相等的,但我认为应该可以表示没有同构类型(不完全相同)是相等的。类型构造函数的不等式能办到吗?上下文
我有一个多态判断(实际上是带有参数forall X : Type, x -> Prop的归纳类型),其X的选择由判断的构造函数决定。即使对于具有相同基数的类型,这些类型相等假设也会出现,所以我
考虑以下片段: byte b = 99; Integer ii = Integer.valueOf(9); // should be within cache
System.out.println(new Integer(b) == b); // "true"
System.out.println(new Integer(s) == s)