struct foo{
int i;
}
auto foo.poke(){
i++;//infered to be part of foo
return this;//returns foo
}
unittest{
foo bar;
bar.poke.poke.i.writeln;//prints 2
bar.i.writeln;//still 2
}
We are debating exanding op overload again; this is both:
a) nessery for importc
b) going to cause issues like autodecoding if simply enabled
I suggest this 3rd option
Should be able to use templated types:
struct Vector(T,int N){...}
auto Vector!(float,2).opBinary(string op)(typeof(this) other){...}
should be able to template types verbosely:
struct Vector(T,int N){...}
template opBinary(alias A){
static assert(a.stringof[0..6]=="Vector");
auto opBinary(string op)(typeof(this) other) {...}
}
please make sure opDispatch works