Behavior of opEquals

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Fri Sep 4 12:10:25 PDT 2015


On Thursday, 3 September 2015 at 13:05:49 UTC, Steven 
Schveighoffer wrote:
> On 9/2/15 2:57 PM, Jacob Carlborg wrote:
>
>> In this case the solution/workaround is to explicitly call
>> super.opEquals, but that will miss some optimizations 
>> implemented in
>> object.opEquals.
>
> Those optimizations have already been exploited by the time you 
> get to Foo.opEquals, so I wouldn't worry about that.
>
> However, the avoidance of casting would be a good goal. One of 
> the things I don't like about the current == implementation for 
> objects is it cannot take any advantage of type knowledge at 
> the call site.

Every time I've tried to templatize the free function opEquals, 
I've run into compiler bugs, but we'll get there eventually. It 
looks like Kenji has a PR now to fix one of the issues:

https://issues.dlang.org/show_bug.cgi?id=12537

So, I'll have to make another stab at it soon.

- Jonathan M Davis


More information about the Digitalmars-d mailing list