recursive equal, and firstDifference functions
Jonathan M Davis
jmdavisProg at gmx.com
Tue Mar 19 19:54:10 PDT 2013
On Wednesday, March 20, 2013 03:48:38 Dan wrote:
> On Wednesday, 20 March 2013 at 02:03:31 UTC, Jonathan M Davis
>
> wrote:
> > We already get this. That's what == does by default. It's just
> > that it uses ==
> > on each member, so if == doesn't work for a particular member
> > variable and the
> > semantics you want for == on the type it's in, you need to
> > override opEquals.
>
> Really?
>
> string is one most people would like == to just work for. This
> writes true then false. This certainly takes getting used to. It
> alone is a good reason for the mixins and potentially a
> non-member instancesDeepEqual.
>
> import std.stdio;
> struct S {
> string s;
> }
> void main() {
> writeln("foo" == "foo".idup);
> writeln(S("foo") == S("foo".idup));
> }
That's a bug:
http://d.puremagic.com/issues/show_bug.cgi?id=3789
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list