c++从另一个模板函数调用模板函数

C++ calling a template function from another template function

本文关键字:函数 函数调用 c++ 另一个      更新时间:2023-10-16

我刚刚尝试了以下代码

class MailBox{
};
 template<typename T>
     void foo(T){
     cout << "In foo" << endl;
 }
template<typename T>
 void foo1(T){
     foo(T);
 }
 main()
 {
         MailBox m;
         std::vector<MailBox> m1;
         foo1(m1);
 }

我们在编译时得到以下错误

test1.cpp: In function âvoid foo1(T)â:
test1.cpp:15: error: expected primary-expression before â)â token

如何解决这个问题?

您缺少形式参数:

 template<typename T>
     void foo(T t) {
         cout << "In foo" << endl;
 }
 template<typename T>
     void foo1(T t) {
         foo(t);
 }

您忘记了参数的名称!

例如,foo1()应该是这样的:

template <typename T>
  foo1 (T myT) {
    foo(myT);
  }

请记住,模板类型仍然是类型,您需要使用它们来声明这些类型的东西(如变量)。