返回信息流各位大神,程序里的一个模板具体化总是报不匹配,实在不知道怎么回事,求解答,非常感谢!
这个是编译信息:
这是一条镜像帖。来源:北邮人论坛 / cpp / #88851同步于 2015/9/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
C++ Primer上的一个与模板有关的练习题编译错误
Divy
2015/9/26镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
那我如果想实现传递一个指针数组,模板的具体化该怎么写呢?
【 在 ZJC 的大作中提到: 】
: 因为你的模板参数是 const T x[],相当于是const T* ,特例化的是 const char * x[],是const char**,并不能匹配啊
不对啊,特例化的时候我的T其实是等价于char *的吧?那T*确实应该是char**啊[ema13]
【 在 ZJC 的大作中提到: 】
: 因为你的模板参数是 const T x[],相当于是const T* ,特例化的是 const char * x[],是const char**,并不能匹配啊
特化的时候这么写:
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);
后面的实现也需要修改。
原来是const的使用问题,感谢大神!
【 在 xiaobing307 的大作中提到: 】
: 特化的时候这么写:
: template <>
: char* maxn<char*>(char* const c[], const int n);
: ...................