On Friday, 25 July 2014 at 14:10:11 UTC, H. S. Teoh via
Digitalmars-d wrote:
The whole reason the opCmp()==0 thing was brought up, was to
eliminate
this frustration -- give users a nice way to transition into
the correct
AA design of using opEquals for their keys, instead of just
outright
breaking past recommendations in their face with no warning.
Not just that, it's also the right thing to do, independently
from AAs. I'm astonished that it doesn't work like that already.
When I first read the operator overloading docs, I really liked
that in D I don't need to define all the individual comparison
operators, but only opCmp. I totally expected this to include
opEquals, too, which I thought was just an option that could be
used to enhance performance, but which could be safely ignored
otherwise. It's really bad if this isn't the case, because then
there is nothing telling you that you need an opEquals, it will
just silently compile and appear to be working.