I am trying to write a template function that can take another function as an alias template argument and duplicate its parameters for it self.

For example, something like this...

void foo(ref int x){x = 7;}

auto pass(alias f)(/* ??? */)
{
    // other stuff...
    return f( /* ??? */ );
}

void main()
{
    int y = 0;
    pass!foo(y);
    assert(y==7);
}


I tried..

auto pass(alias f, T...)(T t)
{
    // other stuff...
    return f(t);
}

but that does not work if there is a ref parameter.

Thanks

Reply via email to