C++模板函数错误: template-id does not match any template declaration

标签 c++ templates

<分区>

我在 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)

关于C++模板函数错误: template-id does not match any template declaration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40607904/

相关文章:

c++ - 为什么包含 <map> 会导致在全局命名空间中定义 div 函数?

c++ - 网格中的 GTKMM 按钮

html - 设计网页模板

c++ - 可变模板参数解包

c++ - key 生成 AES 加密 symbian

c++ - 编译时检测不应该抛出但仍然抛出的函数(noexcept 或替代方法)

c# - 了解有关分布式计算的更多信息

c++ - 将类的实例返回给 main

node.js - 使用 EJS sails JS,但链接器编译 Handlebars 公共(public)模板

c++ - 使用 clang 显式 C++ 模板实例化