当只有一个模板参数时,似乎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);
以上代码无法通过编译。这是因为编译器的能力还是违反了标准?
答案 0 :(得分:3)
第二个功能和通话完全有效。你的编译器被淘汰或者说是旧的拒绝它。