Better:
void test(alias F)(ParameterTypeTuple!(F) args)
{
ReturnType!(F) otherFunc(ParameterTypeTuple!(F) args)
{
typeof(return) result;
result = args[0] + args[1] * 2.5;
return result;
}
return otherFunc(args);
}
double foo(int x, int y)
{
double result;
return x + y * 2.5;
}
void main()
{
writeln(test!(foo)(4, 5));
}