]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/doc/src/refmanual/count_if.rst
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / mpl / doc / src / refmanual / count_if.rst
1 .. Algorithms/Querying Algorithms//count_if |50
2
3 count_if
4 ========
5
6 Synopsis
7 --------
8
9 .. parsed-literal::
10
11 template<
12 typename Sequence
13 , typename Pred
14 >
15 struct count_if
16 {
17 typedef |unspecified| type;
18 };
19
20
21
22 Description
23 -----------
24
25 Returns the number of elements in ``Sequence`` that satisfy the predicate ``Pred``.
26
27
28 Header
29 ------
30
31 .. parsed-literal::
32
33 #include <boost/mpl/count_if.hpp>
34
35
36
37 Parameters
38 ----------
39
40 +---------------+-------------------------------+-----------------------------------+
41 | Parameter | Requirement | Description |
42 +===============+===============================+===================================+
43 | ``Sequence`` | |Forward Sequence| | A sequence to be examined. |
44 +---------------+-------------------------------+-----------------------------------+
45 | ``Pred`` | Unary |Lambda Expression| | A count condition. |
46 +---------------+-------------------------------+-----------------------------------+
47
48
49 Expression semantics
50 --------------------
51
52
53 For any |Forward Sequence| ``s`` and unary |Lambda Expression| ``pred``:
54
55 .. parsed-literal::
56
57 typedef count_if<s,pred>::type n;
58
59 :Return type:
60 |Integral Constant|.
61
62 :Semantics:
63 Equivalent to
64
65 .. parsed-literal::
66
67 typedef lambda<pred>::type p;
68 typedef fold<
69 s
70 , long_<0>
71 , if_< apply_wrap\ ``1``\<p,_2>, next<_1>, _1 >
72 >::type n;
73
74
75 Complexity
76 ----------
77
78 Linear. Exactly ``size<s>::value`` applications of ``pred``.
79
80
81 Example
82 -------
83
84 .. parsed-literal::
85
86 typedef vector<int,char,long,short,char,long,double,long> types;
87
88 BOOST_MPL_ASSERT_RELATION( (count_if< types, is_float<_> >::value), ==, 1 );
89 BOOST_MPL_ASSERT_RELATION( (count_if< types, is_same<_,char> >::value), ==, 2 );
90 BOOST_MPL_ASSERT_RELATION( (count_if< types, is_same<_,void> >::value), ==, 0 );
91
92
93 See also
94 --------
95
96 |Querying Algorithms|, |count|, |find|, |find_if|, |contains|
97
98
99 .. copyright:: Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams
100 Distributed under the Boost Software License, Version 1.0. (See accompanying
101 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)