'identifier': explicit instantiation of template function requires return type
An explicit instantiation of a function template requires its return type to be explicitly specified. Implicit return type specification will not work. For example:
template<class T> int f(T);
template f<int>(int); //illegal -- causes the error to occur
template int f<int>(int); // legal