考虑如下特化:
template<> const char * maxn<const char*>(const char *strArr[], int length) { const char * maxLen = strArr[0]; for (int i = 1; i < length; i++) { if (strlen(strArr[i]) > strlen(maxLen)) maxLen = strArr[i]; } return maxLen; }
本人想知道<>到底是干什么用的,假如说是显式为函数参数提供类型那么为什么不可以是int.
而且假设在main函数中调用这个模板(抱歉,本人不知道有没有其他名称只能用调用)
char * cmax = maxn(carr, 5);
在调用的时候不加<>可以编译成功,但是加上<const char *>就编译失败,感到很是不解,C++ PRIMER PLUS中没有对<>的解释,各位高手求指导
总结一下,本人的问题就是
1.在函数模板特化中<>是干什么的
2.在调用函数模板特化中<>是干什么的
3.“调用函数模板特化”有没有比较专业的名称,函数模板不是函数定义,所以本人感觉这样说有点唐突
解决方案
26
只要实例化的时候没错,给什么参数都行