Compiler Error C2785

'declaration1' and 'declaration2' have different return types

A specialization of a function template differs from the primary function template in return type. For example:

template<class T> void f(T);
template<> int f(int);

Check all specializations of the function template to make sure the return type is consistent.