我定义了一个模板函数,用于从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> > >*)’
似乎我的函数调用引入了一些隐式参数,但我不理解错误以及如何解决它。有什么想法吗?
答案 0 :(得分:3)
删除&符号,您不希望将指针传递给地图(请注意错误消息末尾的星号)。此外,您不必显式转换字符串文字。而且,编译器应该能够自动推导出模板参数。
loadCSV("mycsv.csv", bw);