我知道专业化的功能模板是wrong
这个问题出于好奇心。
说我有一个功能模板
template<typename T>
void foo(T){}
我专注于它
template<>
void foo(std::initializer_list<int>){}
我称之为
foo({1, 2, 3});
我收到错误“没有匹配brac封闭的初始化列表的foo实例”指向主模板 (重载按预期工作正常)
但如果我将函数 base 模板更改为将initializer_list作为参数,则一切正常。
到底发生了什么?
编译器:gcc 4.8.2 helpful link