'identifier' : template-name already defined as 'declaration'
Check the code for duplicate names.
Example
void X(); // X is declared as a function template<class T> class X{}; // error