Still, not having non-member operator overloads is very bothersome.

On Tue, May 8, 2012 at 12:37 AM, Nick Sabalausky
<[email protected]> wrote:
> "Jens Mueller" <[email protected]> wrote in message
> news:[email protected]...
>> 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)
>
>
>



-- 
Bye,
Gor Gyolchanyan.

Reply via email to