No household is perfect
Ary Borenszweig
ary at esperanto.org.ar
Wed Dec 4 05:39:29 PST 2013
On 12/3/13 7:23 PM, monarch_dodra wrote:
> On Tuesday, 3 December 2013 at 20:09:52 UTC, Ary Borenszweig wrote:
>> On 12/3/13 4:53 PM, Andrei Alexandrescu wrote:
>>> On 12/3/13 4:41 AM, Russel Winder wrote:
>>>> On Tue, 2013-12-03 at 13:29 +0100, Tobias Pankrath wrote:
>>>> […]
>>>>> Does scala have arbitrary operators like Haskell? Looks useless
>>>>> in D. If you have an operator '+' that should not be pronounced
>>>>> 'plus' you are doing it wrong.
>>>>
>>>> Yes.
>>>>
>>>> a + b
>>>>
>>>> could be set union, logic and, string concatenation. The + is just a
>>>> message to the LHS object
>>>
>>> or RHS :o).
>>
>> How come?
>
> "opBinaryRight":
> http://dlang.org/operatoroverloading.html
>
> It's a "neat" feature that allows operators being member functions, yet
> still resolve to the right hand side if needed. For example:
> auto result = 1 + complex(1, 1);
>
> Will compile, and be re-written as:
> auto result = complex(1, 1).opBinaryRight!"+"(1);
>
> In contrast, C++ has to resort to non-member friend operators to make
> this work.
That's nice.
Of course, it's not needed if you overload "+" for the int type to
receive a complex.
More information about the Digitalmars-d
mailing list