[section:count_if count_if]

[heading Prototype]

``
template<class SinglePassRange, class UnaryPredicate>
typename range_difference<const SinglePassRange>::type
count_if(const SinglePassRange& rng, UnaryPredicate pred);
``

[heading Description]

`count_if` returns the number of elements `x` in `rng` where `pred(x)` is `true`.

[heading Definition]

Defined in the header file `boost/range/algorithm/count_if.hpp`

[heading Requirements]

* `SinglePassRange` is a model of the __single_pass_range__ Concept.
* `UnaryPredicate` is a model of the `UnaryPredicateConcept`.
* `SinglePassRange`'s value type is a model of the `EqualityComparableConcept`.
* The value type of `SinglePassRange` is convertible to the argument type of `UnaryPredicate`.

[heading Complexity]

Linear. Exactly `distance(rng)` invocations of `pred`.

[endsect]


