C++ 函数调用中的数据类型未正确匹配

C++ 函数调用中的数据类型未正确匹配,c++,parameters,C++,Parameters,我有一个名为generate_all_path的函数: template <int size> void generate_all_paths(vector<string> maze, int x, int y) { .... } 模板 void生成所有路径(向量迷宫、int x、int y){ .... } 当我在main中调用它时: int main() { vector<string> mazevec; string s; ifstrea

我有一个名为generate_all_path的函数:

template <int size>
void generate_all_paths(vector<string> maze, int x, int y) {
....
}
模板
void生成所有路径(向量迷宫、int x、int y){
....
}
当我在main中调用它时:

int main() {
  vector<string> mazevec;
  string s;
  ifstream mazefile("maze.txt");

  while (getline(mazefile, s)) {
      mazevec.push_back(s);
  }

  generate_all_paths(mazevec, 0, 1);
  return 0;
}
intmain(){
马西韦克病媒;
字符串s;
ifstream mazefile(“maze.txt”);
while(getline(mazefile,s)){
马泽韦克。推回(s);
}
生成所有路径(mazevec,0,1);
返回0;
}
我的IDE说我在main中生成所有路径的调用与函数定义的参数的数据类型不匹配


有人知道为什么会这样吗?让我恼火的是,
mazevec
被定义为一个向量,这是生成所有路径所需要的,但它不起作用。

在评论中,我了解到,
模板
是偶然出现的。 因此,我看不出代码不应该编译的任何原因

检查是否有
#包含
使用名称空间标准,因为您没有在
向量
前面加
std::


另外,将
向量
作为
常量&

传递也是一个很好的理由,因为它是一个模板函数,您不提供模板参数,也无法推断它<代码>生成所有路径(…)
看起来更像它。问你一个问题,为什么你的模板函数有一个
size
模板参数?@WhozCraig是的,我不小心把那部分放在那里了,但现在它应该不会影响为什么生成所有路径没有匹配的参数,对吗?mazevec是一个向量,这就是函数所要求的。@它不应该??你有没有试着把它从函数decl上取下来?当然它没有被使用,但是什么让你认为它不需要被提供呢?我当然没有被推断。或者尝试:
生成所有路径(mazevec,0,1),当它工作时,考虑为什么。