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?

È stato utile?

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
scroll top