Compiler Error C2914

'identifier' : cannot deduce template argument as function argument is ambiguous

An attempt to deduce a template argument from an overloaded function has led to ambiguity. The compiler cannot determine which of the overloaded functions to use.

The following code will generate this error:

void f(int);
void f(double);

template<class T> void g(void (*) (T));

void h() { g(f); }