Weird opEquals Problem
Kevin
kevincox.ca at gmail.com
Wed Feb 22 18:32:55 PST 2012
On 02/22/2012 09:32 PM, H. S. Teoh wrote:
> The reason is that D guarantees that "==" is: (1) reflexive (a==a for
> any a); (2) symmetric (a==b if and only if b==a); and (3) transitive
> (if a==b and b==c then a==c). This allows the compiler to safely
> optimize expressions containing == comparisons without changing the
> code's semantics. Allowing one-sided comparisons like you suggest
> would break symmetry (a.opEquals(b) != b.opEquals(a)), and likely
> transitivity as well. T
Fair enough. I love how everything in D has reasons.
Thanks for all the help. Although you guys should be careful because if
you keep giving such in depth answers I might start asking stupid
questions just to learn the language in more depth :)
More information about the Digitalmars-d-learn
mailing list