Pergunta

Eu defino uma função de modelo que carrega um mapa de um arquivo CSV:

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

Eu, então, tentar usá-lo:

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

Mas get htis compilação erro de 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> > >*)’

Parece que a minha chamada de função é trazer alguns argumentos implícitos, mas eu não entendo o erro e como corrigi-lo. Alguma idéia?

Foi útil?

Solução

Drop the comercial, você não quer passar um ponteiro para o mapa (note o asterisco no final da mensagem de erro). Além disso, você não tem que converter explicitamente o literal string. Além disso, o compilador deve ser capaz de deduzir o argumento de modelo automaticamente.

loadCSV("mycsv.csv", bw);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top