Каков наилучший способ подсчета всех элементов в итераторе?
Я хочу, чтобы код был эквивалентен этому
template<typename T,typename S,S val>
struct ConstantFunctor : unary_function<T,S>
{S operator()(const T&) const {return val;}};
template<typename T>
struct TrueFunctor : ConstantFunctor<T,bool,true>{};
...
count_if(c.begin(),c.end(),TrueFunctor());
Какой лучший способ сделать это?
Я могу использовать boost::lambda::constant(true)
, но, возможно, там что-то более ясное.