logical_op.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 // See http://www.boost.org/libs/mpl for documentation.
9 
10 // $Id: logical_op.hpp 13472 2017-08-22 07:53:44Z richean $
11 // $Date: 2017-08-22 09:53:44 +0200 (Di, 22 Aug 2017) $
12 // $Revision: 13472 $
13 
14 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
15 
16 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
17 # include <boost/mpl/bool.hpp>
21 #endif
22 
31 
35 
36 namespace boost { namespace mpl {
37 
38 # define AUX778076_PARAMS(param, sub) \
39  BOOST_MPL_PP_PARAMS( \
40  BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \
41  , param \
42  ) \
43 
44 
45 # define AUX778076_SHIFTED_PARAMS(param, sub) \
46  BOOST_MPL_PP_EXT_PARAMS( \
47  2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \
48  , param \
49  ) \
50 
51 
52 # define AUX778076_SPEC_PARAMS(param) \
53  BOOST_MPL_PP_ENUM( \
54  BOOST_PP_DEC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
55  , param \
56  ) \
57 
58 
59 namespace aux {
60 
61 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
62 
63 template< bool C_, AUX778076_PARAMS(typename T, 1) >
65  : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
66 {
67 };
68 
69 template< AUX778076_PARAMS(typename T, 1) >
70 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) >
71  : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
72  BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
73  , AUX778076_SHIFTED_PARAMS(T, 1)
74  , BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
75  >
76 {
77 };
78 
79 template<>
80 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
81  AUX778076_OP_VALUE2
82  , AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
83  >
84  : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
85 {
86 };
87 
88 #else
89 
90 template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
91 {
92  template< AUX778076_PARAMS(typename T, 1) > struct result_
93  : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
94  {
95  };
96 };
97 
98 template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
99 {
100  template< AUX778076_PARAMS(typename T, 1) > struct result_
101  : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
102  BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
103  >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) >
104  {
105  };
106 
107 #if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
108  template<> struct result_<AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))>
109  : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
110  {
111  };
112 };
113 #else
114 };
115 
116 template<>
117 struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
118  ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) >
119  : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
120 {
121 };
122 #endif // BOOST_MSVC == 1300
123 
124 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
125 
126 } // namespace aux
127 
128 template<
129  typename BOOST_MPL_AUX_NA_PARAM(T1)
130  , typename BOOST_MPL_AUX_NA_PARAM(T2)
131  BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
132  >
135  : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
136  BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
137  , AUX778076_SHIFTED_PARAMS(T,0)
138  >
139 #else
140  : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
141  BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
142  >::template result_< AUX778076_SHIFTED_PARAMS(T,0) >
143 #endif
144 {
148  , (AUX778076_PARAMS(T, 0))
149  )
150 };
151 
153  2
156  )
157 
158 }}
159 
160 #undef AUX778076_SPEC_PARAMS
161 #undef AUX778076_SHIFTED_PARAMS
162 #undef AUX778076_PARAMS
163 #undef AUX778076_OP_NAME
164 #undef AUX778076_OP_VALUE1
165 #undef AUX778076_OP_VALUE2
BOOST_MPL_AUX_NA_SPEC2
#define BOOST_MPL_AUX_NA_SPEC2(i, j, name)
Definition: na_spec.hpp:166
BOOST_PP_CAT
struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX, _count_args)
Definition: count_args.hpp:86
boost::mpl::aux::BOOST_PP_CAT
struct BOOST_PP_CAT(AUX778076_OP_NAME, impl)
Definition: logical_op.hpp:64
T
T
Definition: mem_fn_cc.hpp:25
BOOST_MPL_LIMIT_METAFUNCTION_ARITY
#define BOOST_MPL_LIMIT_METAFUNCTION_ARITY
Definition: limits/arity.hpp:18
ctps.hpp
BOOST_MPL_AUX_NA_PARAM
#define BOOST_MPL_AUX_NA_PARAM(param)
Definition: na_spec.hpp:152
AUX778076_PARAMS
#define AUX778076_PARAMS(param, sub)
Definition: logical_op.hpp:38
na_spec.hpp
BOOST_MPL_PP_DEF_PARAMS_TAIL
#define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value)
Definition: def_params_tail.hpp:91
bool.hpp
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
arity.hpp
AUX778076_OP_NAME
#define AUX778076_OP_NAME
Definition: equal_to.hpp:17
cat.hpp
def_params_tail.hpp
BOOST_MPL_AUX_LAMBDA_SUPPORT
#define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params)
Definition: lambda_support.hpp:22
workaround.hpp
ext_params.hpp
inc.hpp
boost::mpl::AUX778076_OP_NAME
Definition: logical_op.hpp:133
params.hpp
_
BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN typedef arg< -1 > _
Definition: mpl/aux_/preprocessed/bcc/placeholders.hpp:14
nested_type_wknd.hpp
boost::mpl::aux::AUX778076_SPEC_PARAMS
struct AUX778076_PARAMS(T, 1) > struct AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2, _)) >
Definition: logical_op.hpp:82
BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
#define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Definition: mpw.hpp:28
enum.hpp
dec.hpp
lambda_support.hpp
sub.hpp


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