我有模板:
template <typename T>
T func(const T[],int);
我尝试将其专门化为:
template <> char* func(const char[], int);
但我有一个错误:
没有功能模板的实例&#34; func&#34;匹配指定的类型
我不知道为什么我不能使用此模板返回char *?唯一的解决方案是改为:
template <typename T>
T* func(const T[],int);
答案 0 :(得分:2)
你宣布你的专业化是错误的:
template <>
char func<char>(const char[], int)
如果您想返回一个指针,那么您已经自己解决了这个问题,并且需要将一般情况更改为T*
T
仅指typename
,不包括限定符 - 如果您需要,您的函数也可以返回T &
。 T
只是对象的类型/名称(typename
!)。