In some code I'm working on, my asserted when I've confirmed it
was correct. With the opCmp() overridden. 'this' refers to the
current object, so why doesn't the first one succeed?
class X {
int z;
this(int xx) {
z = xx;
}
override int opCmp(Object y){
X x = cast(X) y;
return z - x.z;
}
void something(X rhs) {
assert(this.opCmp(rhs) == 0); //works fine.
assert(this == rhs); //fails?
}
}
int main(){
X a = new X(10);
X b = new X(10); //different objects, same compare value
a.something(b);
return 0;
}