私はhttp://www.cplusplus.com/reference/algorithm/sort/を見ていて、似たようなものを実装したいと思っていました。提供されたリンクの例に示されてclauseComparator
いるような関数を定義しました。myfunc
bool QueryEvaluatorPrivate::clauseComparator(QueryClause cl1, QueryClause cl2) {
int priority1 = clausePriority(cl1),
priority2 = clausePriority(cl2);
return priority1 < priority2;
}
そして私はそれを次のように使用しました:
sort(clauses.begin(), clauses.end(), clauseComparator);
しかし、VSは不平を言います:
Error 4 error C3867: 'QueryEvaluatorPrivate::clauseComparator': function call missing argument list; use '&QueryEvaluatorPrivate::clauseComparator' to create a pointer to member h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
Error 5 error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
まず、何が問題なのですか(引数リストがありません)?エラーで与えられた提案に従って追加しようとしましたが&
、最終的には
Error 4 error C2276: '&' : illegal operation on bound member function expression h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
Error 5 error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
ここで何が問題なのですか?私の理解では、それは私が理解している関数ポインタを渡す必要がありsort
ますか?