具有多于1个typename的模板函数

时间:2011-01-23 16:24:58

标签: c++ templates type-inference

当只有一个模板参数时,似乎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);

以上代码无法通过编译。这是因为编译器的能力还是违反了标准?

1 个答案:

答案 0 :(得分:3)

第二个功能和通话完全有效。你的编译器被淘汰或者说是旧的拒绝它。