On Saturday, 16 May 2015 at 05:56:26 UTC, Jonathan M Davis wrote:
On Friday, May 15, 2015 21:31:35 Manfred Nowak via Digitalmars-d-learn wrote:
The following gives:
"Error: 'a += b' is not a scalar, it is a C"
although UFCS should engage.

-manfred

class C{}
int main(){
  void opOpAssign( string op)( C a, C b){
  }
  C a, b;
  a+= b;
}

Overloaded operators have to be defined as part of the type that they're overloading the operator for, and UFCS is only ever used with the . syntax.
So, this isn't a bug.

Besides, UFCS doesn't work with local functions either; `opOpAssign()` would need to be moved out of `main()`.
  • UFCS Manfred Nowak via Digitalmars-d-learn
    • Re: UFCS Timon Gehr via Digitalmars-d-learn
    • Re: UFCS Jonathan M Davis via Digitalmars-d-learn
    • Re: UFCS Manfred Nowak via Digitalmars-d-learn
    • Re: UFCS via Digitalmars-d-learn

Reply via email to