aux_/preprocessed/no_ttp/plus.hpp
Go to the documentation of this file.
1 
2 // Copyright Aleksey Gurtovoy 2000-2004
3 //
4 // Distributed under the Boost Software License, Version 1.0.
5 // (See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 //
8 
9 // Preprocessed version of "boost/mpl/plus.hpp" header
10 // -- DO NOT modify by hand!
11 
12 namespace boost { namespace mpl {
13 
14 template<
15  typename Tag1
16  , typename Tag2
17  >
18 struct plus_impl
19  : if_c<
20  ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
21  > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
22  )
23 
24  , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
25  , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
26  >::type
27 {
28 };
29 
31 template<> struct plus_impl< na,na >
32 {
33  template< typename U1, typename U2 > struct apply
34  {
35  typedef apply type;
36  BOOST_STATIC_CONSTANT(int, value = 0);
37  };
38 };
39 
40 template< typename Tag > struct plus_impl< na,Tag >
41 {
42  template< typename U1, typename U2 > struct apply
43  {
44  typedef apply type;
45  BOOST_STATIC_CONSTANT(int, value = 0);
46  };
47 };
48 
49 template< typename Tag > struct plus_impl< Tag,na >
50 {
51  template< typename U1, typename U2 > struct apply
52  {
53  typedef apply type;
54  BOOST_STATIC_CONSTANT(int, value = 0);
55  };
56 };
57 
58 template< typename T > struct plus_tag
59 {
60  typedef typename T::tag type;
61 };
62 
63 template<
64  typename BOOST_MPL_AUX_NA_PARAM(N1)
65  , typename BOOST_MPL_AUX_NA_PARAM(N2)
66  , typename N3 = na, typename N4 = na, typename N5 = na
67  >
68 struct plus
69  : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
70 {
72  5
73  , plus
74  , ( N1, N2, N3, N4, N5 )
75  )
76 };
77 
78 template<
79  typename N1, typename N2, typename N3, typename N4
80  >
81 struct plus< N1,N2,N3,N4,na >
82 
83  : plus< plus< plus< N1,N2 >, N3>, N4>
84 {
86  5
87  , plus
88  , ( N1, N2, N3, N4, na )
89  )
90 };
91 
92 template<
93  typename N1, typename N2, typename N3
94  >
95 struct plus< N1,N2,N3,na,na >
96 
97  : plus< plus< N1,N2 >, N3>
98 {
100  5
101  , plus
102  , ( N1, N2, N3, na, na )
103  )
104 };
105 
106 template<
107  typename N1, typename N2
108  >
109 struct plus< N1,N2,na,na,na >
110  : plus_impl<
111  typename plus_tag<N1>::type
112  , typename plus_tag<N2>::type
113  >::template apply< N1,N2 >::type
114 {
116  5
117  , plus
118  , ( N1, N2, na, na, na )
119  )
120 
121 };
122 
123 BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
124 
125 }}
126 
127 namespace boost { namespace mpl {
128 
129 namespace aux {
130 template< typename T, T n1, T n2 >
131 struct plus_wknd
132 {
133  BOOST_STATIC_CONSTANT(T, value = (n1 + n2));
135 };
136 
137 }
138 
139 template<>
141 {
142  template< typename N1, typename N2 > struct apply
143  : aux::plus_wknd<
144  typename aux::largest_int<
145  typename N1::value_type
146  , typename N2::value_type
147  >::type
148  , N1::value
149  , N2::value
150  >::type
151 
152  {
153  };
154 };
155 
156 }}
BOOST_MPL_AUX_NA_SPEC2
#define BOOST_MPL_AUX_NA_SPEC2(i, j, name)
Definition: na_spec.hpp:166
BOOST_STATIC_CONSTANT
#define BOOST_STATIC_CONSTANT(type, assignment)
Definition: suffix.hpp:394
boost::mpl::plus_tag
Definition: aux_/preprocessed/bcc/plus.hpp:58
na
Definition: na_fwd.hpp:22
boost::mpl::plus_tag::type
T::tag type
Definition: aux_/preprocessed/no_ttp/plus.hpp:60
T
T
Definition: mem_fn_cc.hpp:25
boost::mpl::plus_impl< na, Tag >::apply::type
apply type
Definition: aux_/preprocessed/no_ttp/plus.hpp:44
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC
#define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params)
Definition: lambda_support.hpp:21
BOOST_MPL_AUX_NA_PARAM
#define BOOST_MPL_AUX_NA_PARAM(param)
Definition: na_spec.hpp:152
integral_c_tag
Definition: integral_c_tag.hpp:22
boost::mpl::plus_impl
Definition: aux_/preprocessed/bcc/plus.hpp:18
boost::type
Definition: type.hpp:14
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
boost::mpl::aux::plus_wknd::BOOST_STATIC_CONSTANT
BOOST_STATIC_CONSTANT(T, value=(n1+n2))
BOOST_MPL_AUX_LAMBDA_SUPPORT
#define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params)
Definition: lambda_support.hpp:22
boost::mpl::aux::plus_wknd::type
integral_c< T, value > type
Definition: aux_/preprocessed/no_ttp/plus.hpp:134
boost::foreach::tag
boost_foreach_argument_dependent_lookup_hack tag
Definition: foreach_fwd.hpp:31
boost::mpl::plus_impl< Tag, na >::apply::type
apply type
Definition: aux_/preprocessed/no_ttp/plus.hpp:53
boost::mpl::apply
primary template (not a specialization!)
Definition: aux_/preprocessed/bcc/apply.hpp:163
boost::mpl::plus_impl< na, na >::apply::type
apply type
Definition: aux_/preprocessed/no_ttp/plus.hpp:35
boost::mpl::aux::plus_wknd
Definition: aux_/preprocessed/msvc60/plus.hpp:123
integral_c
Definition: integral_c_fwd.hpp:26
boost::mpl::plus
Definition: aux_/preprocessed/bcc/plus.hpp:68


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:45:47