...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Front Page / Algorithms / Querying Algorithms / count_if |
template< typename Sequence , typename Pred > struct count_if { typedef unspecified type; };
Returns the number of elements in Sequence that satisfy the predicate Pred.
#include <boost/mpl/count_if.hpp>
Parameter | Requirement | Description |
---|---|---|
Sequence | Forward Sequence | A sequence to be examined. |
Pred | Unary Lambda Expression | A count condition. |
For any Forward Sequence s and unary Lambda Expression pred:
typedef count_if<s,pred>::type n;
Return type: | Integral Constant. |
---|---|
Semantics: | Equivalent to typedef lambda<pred>::type p; typedef fold< s , long_<0> , if_< apply_wrap1<p,_2>, next<_1>, _1 > >::type n; |
Linear. Exactly size<s>::value applications of pred.
typedef vector<int,char,long,short,char,long,double,long> types; BOOST_MPL_ASSERT_RELATION( (count_if< types, is_float<_> >::value), ==, 1 ); BOOST_MPL_ASSERT_RELATION( (count_if< types, is_same<_,char> >::value), ==, 2 ); BOOST_MPL_ASSERT_RELATION( (count_if< types, is_same<_,void> >::value), ==, 0 );