D1 operator overloads have been deprecated.
FeepingCreature
feepingcreature at gmail.com
Fri Jul 12 15:21:10 UTC 2019
On Friday, 12 July 2019 at 13:42:35 UTC, Bert wrote:
> um, the OP said "works with virtual functions/inheritance".
> When are people going to learn that aliases are not virtual and
> have nothing to do with preserving inheritance structure?
>
You're misunderstanding.
import std.stdio;
abstract class X
{
abstract X opAddImpl(X rhs);
alias opBinary(string op:"+") = opAddImpl;
}
class C : X{
int x;
this(int x){ this.x=x; }
override C opAddImpl(X rhs){
return new C(x+(cast(C) rhs).x);
}
}
void main(){
X a=new C(1),b=new C(2);
writeln((cast(C) (a+b)).x);
}
More information about the Digitalmars-d
mailing list