Naja ich weiß nicht was du meinst.
Eigentlich ist das Problem ja recht einfach:

var a = 2;
var b = 2;
a = b+2;

Klappt ohne probleme (a+b wird zu long konvertiert + 2).

var a = 2;
var b = 2;
a = 2+b;

Klappt nicht (a = 2+(long)b;) ist nötig (Der compiler weiß nicht zu was er "var" konvertieren soll / also ob zu double/int/long usw.).
Kann man dieses nötige doppelcasting irgendwie verhindern?

Momentane "+" Überladungen:
Code:

long var::operator+(var r1) { return(value+r1.getvalue()); }
long var::operator+(long r1) { return(value+r1); }
long var::operator+(int r1) { return(value+_VAR2(r1)); }
long var::operator+(float r1) { return(value+_VAR2(r1)); }
long var::operator+(double r1) { return(value+_VAR2(r1)); }



mfg,
Timo