Erro do compilador C2755
'param' : o parâmetro não tipo de uma especialização parcial deve ser um identificador simples
O parâmetro não tipo precisa ser um identificador simples, algo que o compilador possa resolver em tempo de compilação para um único identificador ou um valor constante.
O seguinte exemplo gera o erro C2755:
// C2755.cpp
template<int I, int J>
struct A {};
template<int I>
struct A<I,I*5> {}; // C2755
// try the following line instead
// struct A<I,5> {};