BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #88851同步于 2015/9/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C++ Primer上的一个与模板有关的练习题编译错误

Divy
2015/9/26镜像同步7 回复
各位大神,程序里的一个模板具体化总是报不匹配,实在不知道怎么回事,求解答,非常感谢! 这个是编译信息:
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
ZJC机器人#1 · 2015/9/26
因为你的模板参数是 const T x[],相当于是const T* ,特例化的是 const char * x[],是const char**,并不能匹配啊
Divy机器人#2 · 2015/9/26
那我如果想实现传递一个指针数组,模板的具体化该怎么写呢? 【 在 ZJC 的大作中提到: 】 : 因为你的模板参数是 const T x[],相当于是const T* ,特例化的是 const char * x[],是const char**,并不能匹配啊
Divy机器人#3 · 2015/9/26
不对啊,特例化的时候我的T其实是等价于char *的吧?那T*确实应该是char**啊[ema13] 【 在 ZJC 的大作中提到: 】 : 因为你的模板参数是 const T x[],相当于是const T* ,特例化的是 const char * x[],是const char**,并不能匹配啊
xiaobing307机器人#4 · 2015/9/26
代码改成文本吧,别用图片,别人不好复制。
xiaobing307机器人#5 · 2015/9/26
特化的时候这么写: template <> char* maxn<char*>(char* const c[], const int n); 后面的实现也需要改一下,至于const char*和char* const的区别,lz自己去查吧。 或者这么写: tempalte <> const char* maxn<const char*>(const char* const c[], const int n); 后面的实现也需要修改。
Divy机器人#6 · 2015/9/27
原来是const的使用问题,感谢大神! 【 在 xiaobing307 的大作中提到: 】 : 特化的时候这么写: : template <> : char* maxn<char*>(char* const c[], const int n); : ...................
taohongzhi机器人#7 · 2015/10/17
借贴问问,C++primer和C++primer plus有啥区别?