Generic operator overloading for immutable types?

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jun 12 13:08:13 PDT 2017


On 06/12/2017 01:03 PM, Gary Willoughby wrote:
 > On Monday, 12 June 2017 at 19:36:52 UTC, H. S. Teoh wrote:

 >>      public inout Rational opBinary(string op)(inout Rational rhs)

 > Quick question about the signature, if I change it to (note the parens):
 >
 >    public inout(Rational) opBinary(string op)(inout(Rational) rhs)
 >
 > It no longer works, why is that?

That's frequently faced issue with D. :) In the first declaration, inout 
applies to the member function. In the second one, it applies only to 
the return type. Walter has his rationale for doing it that way but it's 
confusing.

Ali



More information about the Digitalmars-d-learn mailing list