On Monday, 27 November 2023 at 09:53:48 UTC, Antonio wrote:
...but why?

All classes (and interfaces I think), at root of inheritance have `Object` class, this class defines couple of generic methods, you can find this class in object.d btw. One of those methods is `bool opEquals(const Object rhs) const`, therefore if you try to call opEquals, it could be possible that in some cricumstances instead of your overload, one defined on Object is picked up, which checks only if rhs is same object as the one invoked upon.

Btw, dunno how the rules for overload set resolution on opEquals work, so someone else should check whther this is a bug or expected behavior.

Best regards,
Alexandru.

Reply via email to