>>834
#include <iostream>
#include <typeinfo>

template <typename U, typename V, typename T> void foo(const T& t) {
std::cout << typeid(U).name() << "," << typeid(V).name() << std::endl;
}
template <typename T> inline void foo(const T& t) { foo<int, char>(t); }

int main()
{
foo(1);
foo<double, short>(1);
}