带有map分配器问题的C ++模板

时间:2009-06-08 19:29:22

标签: c++ templates allocator

我定义了一个模板函数,用于从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> > >*)’

似乎我的函数调用引入了一些隐式参数,但我不理解错误以及如何解决它。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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

loadCSV("mycsv.csv", bw);