[Issue 10567] Typeinfo.compare has unreasonable signature requirements on opCmp

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Jul 7 21:31:25 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10567



--- Comment #1 from hsteoh at quickfur.ath.cx 2013-07-07 21:31:24 PDT ---
Furthermore, if opCmp is a template function, it is never picked up in the
typeinfo. This makes it impossible to make typeinfo.compare behave correctly
when you need to overload opCmp on templated argument types, because an IFTI
bug makes it impossible to define both a template and non-template opCmp
simultaneously.

Why the big deal with typeinfo.compare? If == works, isn't that good enough?
It's not good enough because the AA implementation uses typeinfo.compare for
key comparisons. Thus you have the situation where two AA keys compare equal on
==, and toHash is correctly defined so that the keys have equal hash values,
but aa[key] does not work because typeinfo.compare uses the wrong key
comparison function. This is one of the underlying issues in issue #8435 and
issue #10567.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list