Шаблон C ++ с проблемой распределителя карт - PullRequest
0 голосов
/ 08 июня 2009

Я определяю функцию шаблона, которая загружает карту из файла 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);

Но получите ошибку времени компиляции:

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 Ответ

3 голосов
/ 08 июня 2009

Удалите амперсанд, вы не хотите передавать указатель на карту (обратите внимание на звездочку в конце сообщения об ошибке). Кроме того, вам не нужно явно приводить строковый литерал. Более того, компилятор должен иметь возможность автоматически определять аргумент шаблона.

loadCSV("mycsv.csv", bw);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...