Making `object.opEquals' replaceable
Kapps via Digitalmars-d
digitalmars-d at puremagic.com
Thu May 7 17:55:33 PDT 2015
On Thursday, 7 May 2015 at 14:37:14 UTC, Manfred Nowak wrote:
> According to the specs
> http://dlang.org/operatoroverloading.html#equals
> `object.opEquals' denies to call the `opEquals'-function
> tailored for the class of two objects `a' an `b' if for those
> objects `a is b' holds.
>
> Although this seems resonable and reduces boiler-plate it makes
> it impossible to implement a side-effect for those cases.
>
> I do not believe, that there is good reason to disallow
> side-effects in those cases. Therefore a mechanism to enable
> such side-effects should be implemented.
>
> -manfred
Having the base Object method check for 'is' itself results in
not having to make a virtual call in, I would guess, about 40-50%
of cases or even more. It's a performance benefit.
More information about the Digitalmars-d
mailing list