我创建了一个函数,给定一个 T 类型的列表和一个谓词(指向指定函数的指针),计算列表中有多少元素返回 true。
这适用于原子谓词(isEven、isOdd、is_less_than_42),但如果我想将它与 N 元谓词一起使用,我该怎么办?有没有办法传递 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;
}