从模板化函数调用非模板化函数

时间:2020-05-12 23:19:04

标签: c++ templates template-specialization

嗨。我的问题是,我在.h文件中有一个模板化函数,并且在其中我想调用一个未实现任何模板的函数,它只是一个基本的“声明和定义”功能。可以从模板化的函数中调用非模板化的函数吗?

.h文件

template <typename T>
void func(T &param){

   //do something...

   int p=func2(some param);
}

.cpp文件

int func2(some param){
   int a;

   //do something..

   return a;
}

我收到一个错误代码:“ func2”没有依赖模板参数的参数,因此“ func2”的声明必须可用

1 个答案:

答案 0 :(得分:0)

经过数小时的搜寻后,我找到了答案: 在我的.h文件中

int func2(some param)

在模板函数之后声明了

。因此编译器没有看到它。 因此正确地看起来像这样:

int func2(some param);


template <typename T>
 void func(T &param){

   //do something...

   int p=func2(some param);
}
相关问题