【发布时间】:2017-07-30 10:17:11
【问题描述】:
考虑一下这个sn-p:
struct S {
template <typename T>
void insert(const T& x);
};
template <>
void S::insert<char*>(const char*& x) {}
int main() {
S s;
s.insert("");
return 0;
}
gcc 编译失败,错误信息如下:
error: template-id 'insert<char*>' for 'void S::insert(const char*&)' does not match any template declaration
这个错误的原因是什么,有没有办法编写专业化以便它可以工作?
我不是在寻找替代解决方案,我只是想了解错误背后的逻辑。
【问题讨论】:
标签: c++ templates template-specialization specialization