型 T のリストと述語 (指定された関数へのポインター) を指定して、リスト内のいくつの要素が true を返すかをカウントする関数を作成しました。
これはアトミック述語 (isEven、isOdd、is_less_than_42) で機能しますが、N-ary 述語で使用したい場合はどうすればよいですか? N項述語に必要なN-1引数のオプションのリストを渡す方法はありますか?
template<typename T, class Pred>
int evaluate(listofelements<T> &sm, Pred pred){
typename listofelements<T>:: iterator begin, end;
int count=0;
begin=sm.begin();
end=sm.end();
while(begin!=end){
if(pred(*(begin->data))) count++;
begin++;
}
return count;
}