Nested C++ template with variadic

Viewed 324

I was wondering if it was possible to have nested C++ template and still be able to access the template values ? To explain, here is what I currently have:

template <int first, int... tail>
struct ConstIntVector:ConstIntVector<tail...>
{};

template <int first>
struct ConstIntVector<first>
{}; 

template<int f1, int... t1>
int prod(const ConstIntVector<f1, t1...>, const int* a) {
    return f1 * (*a) + prod(ConstIntVector<t1...>(), a+1);
}

This way, I can access the f1 value in my prod function. But I would like to do it like this:

template<ConstIntVector<int f1, int... t1>>
int prod(const int* a) {
    return f1 * (*a) + prod<ConstIntVector<t1...>>(a+1);
}

It is possible ?

4 Answers
Related