Erro do compilador C2753
'template': especialização parcial não pode corresponder à lista de argumentos para um modelo primário
Se a lista de argumentos do modelo corresponder à lista de parâmetros, o compilador a tratará como o mesmo modelo. Definir o mesmo modelo duas vezes não é permitido.
Exemplo
O seguinte exemplo gera o erro C2753 e mostra um meio de corrigi-lo:
// C2753.cpp
// compile with: cl /c C2753.cpp
template<class T>
struct A {};
template<class T>
struct A<T> {}; // C2753
// try the following line instead
// struct A<int> {};
template<class T, class U, class V, class W, class X>
struct B {};