0
似乎C++模板可以在只有一个模板参数时自动扣除类型。例如,具有多于1个类型名称的模板函数
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);
上述代码无法通过编译。这是因为编译器的能力还是违背了标准?
编译器应该能够推断出多个模板参数。你能发布完整的可编译代码来证明这个问题吗? – 2011-01-23 16:27:23
据我所知,这段代码没有错。 http://www.ideone.com/AEVs4 – 2011-01-23 16:29:22