I think this should work:
[code]
import std.stdio;
class Foo(T) {
public:
T Num;
@property
Foo!(U) ConvertTo(U)() inout {
return cast(Foo!(U)) this;
}
alias ConvertTo this;
}
void Call(const Foo!(float) FFoo) {
}
void main() {
Foo!(ubyte) UbFoo = new Foo!(ubyte)();
Call(UbFoo);
readln();
}
[/code]
Why it doesn't?