C ++没有函数模板的实例匹配指定的类型

时间:2015-04-14 20:31:06

标签: c++ templates

我有模板:

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);

1 个答案:

答案 0 :(得分:2)

你宣布你的专业化是错误的:

template <>
char func<char>(const char[], int)

如果您想返回一个指针,那么您已经自己解决了这个问题,并且需要将一般情况更改为T*

T仅指typename,不包括限定符 - 如果您需要,您的函数也可以返回T &T只是对象的类型/名称(typename!)。