>>801
template <typename U, typename V, typename T> void foo(const T& t) { }
template <typename T> inline void foo(const T& t) { foo<int, char>(t); }

foo(c);
foo<double, short>(c);

こういうのは可能。
今回の場合はオーバーロード解決に失敗するから無理だっただけだな。