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