template C ++ con il problema di mappa allocatore
Domanda
definisco una funzione template che carica una mappa da un file CSV:
template <class T>
bool loadCSV (QString filename, map<T,int> &mapping){
// function here
}
Allora provo ad usarlo:
map<int, int> bw;
loadCSV<int>((const QString)"mycsv.csv",&bw);
Ma get htis compilazione errore di tempo:
error: no matching function for call to
‘loadCSV(const QString, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > >*)’
Sembra che la mia chiamata di funzione sta portando in alcuni argomenti impliciti, ma non capisco l'errore e come risolverlo. Tutte le idee?
Soluzione
Eliminare la e commerciale, non si vuole passare un puntatore alla mappa (notare l'asterisco alla fine del messaggio di errore). Inoltre, non c'è bisogno di lanciare in modo esplicito la stringa letterale. Inoltre, il compilatore dovrebbe essere in grado di dedurre l'argomento template automaticamente.
loadCSV("mycsv.csv", bw);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow