'declaration' : template parameter 'identifier' is ambiguous
The compiler cannot determine the type of a template argument.
Example
template<class T> void f(T,T){ } f(1, 'c');
In this example, the compiler cannot determine where type T is int or char.