'identifier' : template-name already defined as 'declaration'
The template name has been defined elsewhere. Check the code for duplicate names.
The following code will generate this error:
void X(); // X is declared as a function
template<class T> class X{}; // X is used again