Compiler Error C2755

'param' : non-type parameter of a partial specialization must be a simple identifier

The non-type parameter needs to be a simple identifier, something the compiler can resolve at compile time to a single identifier or a constant value.

The following sample generates 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> {};