overload binary + operator to work with different types
Jonathan M Davis
newsgroup.d at jmdavisprog.com
Tue Mar 13 19:05:00 UTC 2018
On Tuesday, March 13, 2018 18:55:35 Marc via Digitalmars-d-learn wrote:
> I want to basically make this work:
> >auto l = new List();
> >l += 5;
>
> I managed to do this:
> >class List
> >{
> >
> > int[] items;
> > ref List opBinary(string op)(int rhs) if(op == "+")
> > {
> >
> > items ~= rhs;
> > return *this;
> >
> > }
>
> }
>
> Note the ref in the fucntion return, I also want to return a
>
> reference to the class so that this Works:
> > l += 5 + 8 + 9 ... ;
>
> Could someone point out how do that/what's wrong with my attempy?
+ is overloaded with opBinary, and += is overloaded using opOpAssign:
https://dlang.org/spec/operatoroverloading.html#op-assign
http://ddili.org/ders/d.en/operator_overloading.html
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list