"Jens Mueller" <jens.k.muel...@gmx.de> wrote in message news:mailman.391.1336410464.24740.digitalmar...@puremagic.com... > Hi, > > from my understanding UFCS is supposed to work with operator overloading. > I.e. > in the following a + b should work > > struct Foo {} > > Foo opBinary(string op)(Foo lhs, Foo rhs) if (op == "+") > { > return Foo.init; > } > > unittest > { > Foo a, b; > a + b; // fails to compile > } > > Is UFCS supposed to work with operator overloading, isn't it? > > Jens
I don't know why that doesn't work (unless you just need to make it "auto c = a + b;" so it isn't a "statement has no effect"?), but FWIW that's not an example of UFCS. UFCS would mean calling your opBinary above like this: a.opBinary!"+"(b) Instead of this: opBinary!"+"(a, b)