'token' : unexpected token following 'template', identifier expected
The token following the keyword template was not an identifier.
Example
namespace N { template<class T> class X {}; class Y {}; } void f() { N::template X<int> x1; // legal } void g() { N::template + 1; // error C2902 }