在函数模板特殊化是遇到这样一个问题.

Scott_Guo 2006-11-20 11:23:41
template <typename T>
char* Find(T& value,T** arr, int size){
for(int i=0;i<size;i++){
if(arr[i]==value){
//Found it,return the index
value="great";
return(value);
}
}
//Failed to find it, return -1
return ("");
}


template <>
char* Find<char*> (char*& value,char** arr, int size){ //提示错误 如下.
for(int i=0;i<size;i++){
if(strcmp(arr[i],value)==0){
value="great";
return(value);
}
}

return("");
}

Error 1 error C2912: explicit specialization; 'char *Find<char*>(char *&,char **,int)' is not a specialization of a function template c:\documents and settings\joy-hefang\my documents\visual studio 2005\projects\bank\bank\pointarray\pointarray\template.h 28

大家帮忙看一下,这是什么原因?
...全文
239 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
OOPhaisky 2006-11-20
  • 打赏
  • 举报
回复
template <>
char* Find<char*> (char*& value,char*** arr, int size){ //arr的类型少了一个*

因为你使用char*来特化的,所以原来的T**变成了char***
cunsh 2006-11-20
  • 打赏
  • 举报
回复
template <typename T>
char* Find(T& value,T** arr, int size){ // T* arr
taodm 2006-11-20
  • 打赏
  • 举报
回复
char* Find<char*> (char*& value,char*** arr, int size
arr前少了一个*
Scott_Guo 2006-11-20
  • 打赏
  • 举报
回复
谢谢大家,明白了!!
genius_hb 2006-11-20
  • 打赏
  • 举报
回复
上面的说的好清楚了。。。。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧