c++模板函数错误:template-id不匹配任何模板声明
c++ template function error: template-id does not match any template declaration
我有下面的c++函数模板代码:
class UserHelpler{
public:
template <typename ValueType>
void createHelper(ValueType& value);
};
template<>
void UserHelpler::createHelper<int>(int* p_user)
{
}
当我构建它时,它显示以下错误:
error: template-id 'createHelper<int>' for 'void UserHelper::createHelper(int*)'
does not match any template declaration
问题是什么?如何解决?
问题是指针和引用是不同的东西。您的模板专门化有一个与模板不兼容的签名,因为int*
和int&
是不同的类型。
可能,你需要
createHelper<int>(int& p_user)
代替
createHelper<int>(int* p_user)
你的模板声明要求你的形参是引用类型,但是在你的专门化中你提供了一个指针,这是不匹配的。将专门化更改为:
template<>
void UserHelpler::createHelper<int>(int& p_user)
或者将模板声明更改为:
template <typename ValueType>
void createHelper(ValueType* value);
相关文章:
- 错误:'EM::EM(...)' 的原型与类 'EM' 中的任何原型都不匹配
- 显式专用化 - 模板 ID 与任何模板声明都不匹配
- 模板类专用化:模板 ID 与任何模板声明都不匹配
- 模板 ID 与任何模板声明都不匹配
- 我的 Boost 正则表达式与任何内容都不匹配
- template-id 与任何模板声明 GNU gcc 编译器都不匹配
- 匹配匹配任何内容,直到'%'不后跟'%',后跟一组字符
- 错误:'void TNode::inititTree(TNode*)' 的原型与类 'TNode' 中的任何原型都不匹配
- Qt:"closeEvent"的外线定义与"MainWindow"中的任何声明都不匹配
- 错误:原型与类中的任何原型都不匹配
- "...."的原型与类中的任何"..."都不匹配
- qregexp不匹配任何东西
- 你能帮助解决这个错误吗?(g++原型与类中的任何原型都不匹配)
- 函数的原型与类C++中的任何原型都不匹配
- 为什么这些函数模板中的任何一个都与实例化不匹配?
- 'function'的外联定义与'Class'中的任何声明都不匹配
- C++11正则表达式不匹配任何内容
- 为什么regex_search不匹配任何东西
- c++模板函数错误:template-id不匹配任何模板声明
- 模板专门化:不匹配任何模板声明