Кажется, шаблон C ++ может автоматически вычесть тип, когда есть только один параметр шаблона. Например,
template<typename T>
void f(const T &t)
{
cout << t << endl;
}
f(1);
нормально.
Однако
template<typename T1, typename T2>
void f(const T1 &t1, const T2 &t2)
{
cout << t1 << t2 << endl;
}
f(1, 2);
вышеуказанный код не может пройти компиляцию. Это из-за способности компилятора или против стандарта?