Я реализовал сравнение для структуры Track в функции:
bool sortingPredicate(const Track& l, const Track& r)
тогда у меня есть функция:
void sortPlaylist(std::list<Track>& playlist, bool (*predicate)(const Track& l, const Track& r)) {
playlist.sort(predicate);
}
И я попробовал:
std::list<Track> mergeWithoutDuplicates(const std::list<Track>& l, const std::list<Track>& r) {
sortPlaylist(l, sortingPredicate<Track>());
...
}
И я получаю для вызова sortPlaylist:
error: expected primary-expression before ‘>’ token
error: expected primary-expression before ‘)’ token"
Что я упускаю в вызове функции / делаю неправильно? Большое спасибо.
sortingPredicate<Track>()
это вызов функции, вы не передаете его как обратный вызов. Так должно быть:
sortPlaylist(l, sortingPredicate);
также обратите внимание, что l
является const
внутри mergeWithoutDuplicates
, но вы передаете это sortPlaylist
который ожидает неconst
ссылка. Это тоже неправильно.
Других решений пока нет …