A fresh look at comparisons

Scott S. McCoy tag at cpan.org
Tue Apr 15 02:44:55 PDT 2008


Sorry, this link :-P

http://codepad.org/wxG1AKBe

On Tue, 2008-04-15 at 02:42 -0700, Scott S. McCoy wrote:
> I agree that's tricky, but isn't it infact true that opEquals is defined
> as a multimethod? 
> 
> It appears to be, please follow this link: http://codepad.org/z09oUtB4
> 
> So maybe you would just like it to return bool, as opposed to int?  Or
> maybe it needs better documentation?
> 
> Cheers,
> 	Scott S. McCoy
> 
> On Tue, 2008-04-15 at 07:49 +0100, Janice Caron wrote:
> > 
> > As you know, in existing D, opEquals(), at least for classes, is
> > defined to take an Object parameter, not a C parameter, so even
> > ignoring the inheritance rules, allowing opEquals to compare against
> > multiple types is tricky. You end up writing code like
> > 
> >     int opEquals(Object o)
> >     {
> >         A a = cast(A)o;
> >         B b = cast(B)o;
> >         C c = cast(C)o;
> > 
> >         if (c !is null)
> >         {
> >             ...
> >         }
> >         else if (b !is null)
> >         {
> >             ...
> >         }
> >         else if (a !is null)
> >         {
> >             ...
> >         }
> >     }
> > 
> > which is not ideal
> > 
> 




More information about the Digitalmars-d mailing list