opCmp and opEquals woes

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Fri Jul 25 03:39:33 PDT 2014


On Friday, 25 July 2014 at 10:10:50 UTC, Daniel Murphy wrote:
> "Jonathan M Davis"  wrote in message 
> news:lzigfacgrlssjuemoqyg at forum.dlang.org...
>
>> The compiler _never_ defines opCmp for you. You have to do 
>> that yourself. So, what you're suggesting would force people 
>> to define opEquals just because they defined opCmp unless they 
>> wanted to take a performance hit <<<<<<<< in the rare case 
>> that it actually matters >>>>>>>>>>.

Equality checks are a common operation, so it will affect a fair 
bit of code. Granted, how much it will really matter is an open 
question, but there will be a small reduction in speed to quite a 
bit of code out there.

But regardless of whether the efficiency cost is large, you're 
talking about incurring it just to fix the code of folks who 
couldn't be bothered to make sure that opEquals and 
lhs.opCmp(rhs) == 0 were equivalent. You'd be punishing correct 
code (however slight that punishment may be) in order to fix the 
code of folks who didn't even properly test basic functionality. 
I see no reason to care about trying to help out folks who can't 
even be bothered to test opEquals and opCmp, especially when that 
help isn't free.

- Jonathan M Davis


More information about the Digitalmars-d mailing list