0

我定义了一个从 CSV 文件加载地图的模板函数:

template <class T>
bool loadCSV (QString filename, map<T,int> &mapping){
    // function here
}

然后我尝试使用它:

map<int, int> bw;
loadCSV<int>((const QString)"mycsv.csv",&bw);

但是得到 htis 编译时错误:

error: no matching function for call to 
‘loadCSV(const QString, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > >*)’

似乎我的函数调用引入了一些隐式参数,但我不明白错误以及如何修复它。有任何想法吗?

4

1 回答 1

3

删除与号,您不想将指针传递给地图(注意错误消息末尾的星号)。此外,您不必显式转换字符串文字。此外,编译器应该能够自动推导出模板参数。

loadCSV("mycsv.csv", bw);
于 2009-06-08T19:31:30.877 回答