Aside from some of the issues of the new object comparison routine, which has a
couple outstanding bugs, I've ran into an interesting issue for dcollections.
For dcollections, I allow opEquals on two like types -- for example, you can
call opEquals on two Set types, even if one is a TreeSet and one is a HashSet.
Now, when you compare for example a TreeSet to any other Set type, the TreeSet
has enough smarts to do the comparison. However, the new opEquals is going to
run the comparison *twice* when they are equal, once against each set, to see
that they both agree. While this doesn't exactly affect the big-O complexity,
it seems unnecessary in the case where I know that running the algorithm once
is good enough.
One possibility is for opEquals to have a flag that indicates whether the other
side has 'already verified' equality. That way, I can skip the extra loop if I
trust the other type knows what it is doing (e.g. if TreeSet knows the other
object is a Set type, and it says we're equal, TreeSet just returns true).
Comments? Ideas? I realize this api is in TDPL, I hope we can figure this out.
-Steve
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos