All right, all right! Interim decision regarding qualified Object methods

Steven Schveighoffer schveiguy at yahoo.com
Thu Jul 12 19:08:01 PDT 2012


On Thu, 12 Jul 2012 18:38:06 -0400, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> On 7/12/12 4:50 PM, Steven Schveighoffer wrote:

>> My personal opinion is we should simply eliminate the four methods (or
>> at least the three required for AAs), fix AAs, and deal with the
>> fallout. I can't really remember the last time I simply used
>> obj1.opEquals(obj2) to do comparisons instead of obj1 == obj2 (which
>> should do the right thing if obj1.opEquals(obj2) is valid). The code
>> that relies on this is probably very rare. I certainly would *love* to
>> rewrite all my opCmp and opEquals functions to accept the minimal base
>> class instead of doing the dual dispatch dance with Object parameters.
>
> I agree not a lot of people use obj1.opEquals(obj2) instead of obj1 ==  
> obj2, but I assume quite a few override opEquals and rely on it being  
> called.

(fixed above for you)

Yes, and why would that not work?  If opEquals is defined as:

bool opEquals(Object o)

Won't this still be called by the compiler, even if Object does not define  
it?  (assuming the extraneous override keyword is removed)

This would be an issue if people stored all their objects as Objects,  
which is very rare also I think.

-Steve


More information about the Digitalmars-d mailing list