template<typename T>
void f(T)
{}
int main()
{
auto coll = { 1, 2, 3 };
f(coll); // ok
f({ 1, 2, 3 }); // error
}
我的编译器是clang 5.0
。
错误消息如下:
f({1,2,3}); //错误:没有匹配函数来调用&#39; f&#39;
注意:候选模板被忽略:无法推断模板参数&#39; T&#39;
为什么f(coll)
还可以,但f({ 1, 2, 3 })
不是?