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((() { return 3.14f; })()));
}
aW1wb3J0IHN0ZC5zdGRpbzsKCnJlZiAgIGludCBmb28ocmVmICAgaW50IGkpIHsgcmV0dXJuIGk7IH0KcmVmIGZsb2F0IGZvbyhyZWYgZmxvYXQgZikgeyByZXR1cm4gZjsgfQoKYXV0byB0cmFuc3BhcmVudF9mb3J3YXJkZXIoVCkoVCB0KSB7IHJldHVybiBmb28odCk7IH0KCnZvaWQgbWFpbigpCnsKICAgIHdyaXRlbG4odHJhbnNwYXJlbnRfZm9yd2FyZGVyKCgoKSB7IHJldHVybiAzLjE0ZjsgfSkoKSkpOwp9Cg==