【发布时间】:2011-12-17 00:50:15
【问题描述】:
我目前正在深入学习 C++,但我遇到了一些已经困扰了几个小时的东西。 为什么当我制作模板然后对其进行专门化时,我无法为专门化版本调用或定义该函数?编译器抱怨,我已经搜索了谷歌以寻找可能的提示我做错了什么,但无济于事。我很确定这是我忽略的非常简单的事情:
template <typename T>
class C { };
//specialization to type char
template <>
class C <char>
{
public:
void echo();
};
//compiler complains here
template <>
void C <char> :: echo()
{
cout << "HERE" << endl;
}
错误:'void C::echo()' 的模板 ID 'echo' 不匹配 任何模板声明
Demo.
【问题讨论】:
标签: c++ templates compiler-errors template-specialization