0

関数にstructTrackの比較を実装しました。

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-callを取得します:

error: expected primary-expression before ‘&gt;’ token
error: expected primary-expression before ‘)’ token"

関数呼び出しに何が欠けていますか/間違っていますか?どうもありがとう。

4

1 に答える 1

1
sortingPredicate<Track>()

は関数呼び出しであり、コールバックとして渡していません。そのはず:

sortPlaylist(l, sortingPredicate);

lまた、それはconst内部にありますが、非参照を期待するmergeWithoutDuplicatesものに渡していることに注意してください。それも間違っています。sortPlaylistconst

于 2012-09-24T09:37:40.793 に答える