On 01/15/2014 07:36 PM, Daniel Kozak wrote:
On this page http://dlang.org/operatoroverloading.html#Binary, is this
statement:
"The expression:
a op b
is rewritten as both:
a.opBinary!("$(METACODE op)")(b)
b.opBinaryRight!("$(METACODE op)")(a)"
Which is true when a or b is object or struct, but it doesn't work for
basic type or arrays wih ufcs.
It is this bug: https://d.puremagic.com/issues/show_bug.cgi?id=8062
The problem is that the spec is not explicit about this: "Operator
overloading is accomplished by rewriting operators whose operands are
class or struct objects into calls to specially named _member functions_."
http://dlang.org/operatoroverloading.html
Some consider it expected behaviour, based on the explicit mention of
'member function' in the spec.