Before I go to post a bug report I want to make sure I'm not missing something:
On http://www.digitalmars.com/d/1.0/struct.html it says that structs support operator overloading. But I can't seem get opCmp to execute on a struct without calling it explicitly: ------------------------------- import tango.io.Stdout; struct Foo { int i; int opCmp(Foo f) { Stdout.formatln("In opCmp"); return i-f.i; } } Foo getFoo() { return Foo(1); } void main() { bool result; Stdout.formatln("{}", result); result = (Foo(1) == Foo(1)); Stdout.formatln("{}", result); result = (getFoo() == getFoo()); Stdout.formatln("{}", result); Foo f1 = Foo(1); Foo f2 = Foo(1); result = (f1 == f2); Stdout.formatln("{}", result); result = (f1.opCmp(f2)) == 0; Stdout.formatln("{}", result); } ------------------------------- Output: ------------------------------- false true true true In opCmp true ------------------------------- (FWIW, this is on WinXP 32-bit, DMD 1.043) Is opCmp completely broken on structs or am I missing something?
