import std.stdio;
ref int foo(ref int i) { return i; }
ref float foo(ref float f) { return f; }
auto transparent_forwarder(T)(T t) { return foo(t); }
void main()
{
writeln(transparent_forwarder((() => 3.14f)()));
}
aW1wb3J0IHN0ZC5zdGRpbzsKCnJlZiAgIGludCBmb28ocmVmICAgaW50IGkpIHsgcmV0dXJuIGk7IH0KcmVmIGZsb2F0IGZvbyhyZWYgZmxvYXQgZikgeyByZXR1cm4gZjsgfQoKYXV0byB0cmFuc3BhcmVudF9mb3J3YXJkZXIoVCkoVCB0KSB7IHJldHVybiBmb28odCk7IH0KCnZvaWQgbWFpbigpCnsKICAgIHdyaXRlbG4odHJhbnNwYXJlbnRfZm9yd2FyZGVyKCgoKSA9PiAzLjE0ZikoKSkpOwp9Cg==
prog.d(10): expression expected, not ')'
prog.d(10): expression expected, not '>'
prog.d(10): found '3.14f' when expecting ')'