'declaration1' and 'declaration2' have different return types
The return type of function template specialization differs from the return type of the primary function template.
Example
template<class T> void f(T); template<> int f(int); // error
Check all specializations of the function template for consistency.