]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/mpl/doc/src/refmanual/modulus.rst
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / mpl / doc / src / refmanual / modulus.rst
CommitLineData
7c673cae
FG
1.. Metafunctions/Arithmetic Operations//modulus |50
2
3modulus
4=======
5
6Synopsis
7--------
8
9.. parsed-literal::
10
11 template<
12 typename T1
13 , typename T2
14 >
15 struct modulus
16 {
17 typedef |unspecified| type;
18 };
19
20
21
22Description
23-----------
24
25Returns the modulus of its arguments.
26
27
28Header
29------
30
31.. parsed-literal::
32
33 #include <boost/mpl/modulus.hpp>
34 #include <boost/mpl/arithmetic.hpp>
35
36
37Model of
38--------
39
40|Numeric Metafunction|
41
42
43Parameters
44----------
45
46+---------------+---------------------------+-----------------------------------------------+
47| Parameter | Requirement | Description |
48+===============+===========================+===============================================+
49| ``T1``, ``T2``| |Integral Constant| | Operation's arguments. |
50+---------------+---------------------------+-----------------------------------------------+
51
52|Note:| |numeric metafunction note| |-- end note|
53
54
55Expression semantics
56--------------------
57
58For any |Integral Constant|\ s ``c1`` and ``c2``:
59
60
61.. parsed-literal::
62
63 typedef modulus<c1,c2>::type r;
64
65:Return type:
66 |Integral Constant|.
67
68:Precondition:
69 ``c2::value != 0``
70
71:Semantics:
72 Equivalent to
73
74 .. parsed-literal::
75
76 typedef integral_c<
77 typeof(c1::value % c2::value)
78 , ( c1::value % c2::value )
79 > r;
80
81
82.. ..........................................................................
83
84.. parsed-literal::
85
86 typedef modulus<c1,c2> r;
87
88:Return type:
89 |Integral Constant|.
90
91:Precondition:
92 ``c2::value != 0``
93
94:Semantics:
95 Equivalent to
96
97 .. parsed-literal::
98
99 struct r : modulus<c1,c2>::type {};
100
101
102Complexity
103----------
104
105Amortized constant time.
106
107
108Example
109-------
110
111.. parsed-literal::
112
113 typedef modulus< int_<10>, long_<3> >::type r;
114 BOOST_MPL_ASSERT_RELATION( r::value, ==, 1 );
115 BOOST_MPL_ASSERT(( is_same< r::value_type, long > ));
116
117
118
119See also
120--------
121
122|Metafunctions|, |Numeric Metafunction|, |numeric_cast|, |divides|, |times|, |plus|
123
124
125