2 #if !defined(BOOST_PP_IS_ITERATING)
6 #ifndef BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
7 #define BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
21 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
37 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
38 && !defined(BOOST_MPL_PREPROCESSING_MODE)
40 # define BOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp
58 namespace boost {
namespace mpl {
60 # define AUX778076_LAMBDA_PARAMS(i_, param) \
61 BOOST_MPL_PP_PARAMS(i_, param) \
66 #define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY
82 template<
typename Arity >
struct lambda_impl
84 template<
typename T,
typename Tag,
typename Protect >
struct result_
87 typedef is_placeholder<T>
is_le;
91 #define BOOST_PP_ITERATION_PARAMS_1 \
92 (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/aux_/lambda_no_ctps.hpp>))
93 #include BOOST_PP_ITERATE()
106 typedef typename aux::lambda_impl<arity_>
107 ::template result_< T,Tag,Protect >
l_;
109 typedef typename l_::type
type;
110 typedef typename l_::is_le
is_le;
120 struct is_lambda_expression
125 # undef AUX778076_LAMBDA_PARAMS
129 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
130 #endif // BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
136 #define i_ BOOST_PP_FRAME_ITERATION(1)
138 # define AUX778076_LAMBDA_TYPEDEF(unused, i_, F) \
140 typename F::BOOST_PP_CAT(arg,BOOST_PP_INC(i_)) \
143 > BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \
146 # define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
147 typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \
148 BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \
151 # define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \
152 BOOST_PP_COMMA_IF(i_) \
153 BOOST_MPL_AUX_MSVC_VALUE_WKND(BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)))::value \
156 # define AUX778076_LAMBDA_RESULT(unused, i_, unused2) \
157 , typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::type \
160 template<>
struct lambda_impl<
int_<i_> >
162 template<
typename F,
typename Tag,
typename Protect >
struct result_
167 typedef aux::lambda_or<
176 typedef typename if_<
178 , if_< Protect, mpl::protect<bind_>, bind_ >
182 typedef typename type_::type type;
186 # undef AUX778076_LAMBDA_RESULT
187 # undef AUX778076_IS_LAMBDA_EXPR
188 # undef AUX778076_IS_LE_TYPEDEF
189 # undef AUX778076_LAMBDA_TYPEDEF
193 #endif // BOOST_PP_IS_ITERATING