Hi,

I have the following code:

auto appendMapped(alias f, R, T)(R r, T elem) {
        r ~= f(elem);
        return r;
}

int minus(int i) {
        return -i;
}

unittest {
        int[] ar;
        // here I do partial application of minus function
        alias appendMinus(S,T) = appendMapped!(minus, S, T);
        assert (appendMinus!(int[], int)(ar, 10) == [-10]); // compiles
        assert (appendMinus(ar, 10) == [-10]); // doesn't compile
}

Which gives me following error:
Error: template transduced.__unittestL111_2.appendMinus cannot deduce function from argument types !()(int[], int), candidates are: transduced.__unittestL111_2.appendMinus(S, T)

Is there a way to do partial template arg application which does template type deduction correctly?

Reply via email to