我目前正在深入學習C++,並且遇到了幾個小時內已經陷入困境的東西。 爲什麼當我製作模板然後專門化它時,我無法調用或定義專用版本的函數?編譯器抱怨說,我已經搜索了Google可能提示我做錯了什麼,但無濟於事。我非常肯定這是很簡單的東西,我可以俯瞰:定義和調用特定模板的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;
}
error: template-id ‘echo<>’ for ‘void C::echo()’ does not match any template declaration
Demo。
可能重複的[模板id不匹配任何模板delcaration](http://stackoverflow.com/questions/4694181/template-id-does-not-match-any-template-delcaration) – GWW