我目前正在尝试为显示不同值的功能的函数编写模板专门化。 我的代码是:如何创建C++模板?
#include <iostream>
using namespace std;
template <class T>
T myfunc(T x)
{
return x*x;
}
template<>
string myfunc<string>(string ss)
{
return (ss+ss);
}
int main()
{
cout<<myfunc("test")<<endl;
return 0;
}
编译失败:
错误C2784:“的std :: _ String_iterator < _Mystr>的std ::操作 +(_ String_iterator < _Mystr> :: difference_type,标准: :_String_iterator < _Mystr>)” :不能推导出模板参数为 '的std :: _ String_iterator < _Mystr>' 从 '的std :: string'
你能帮我发现问题到底在哪里吗?
'“test”'不会被推断为'std :: string'。它的类型是'const char [5]'。 – chris