File indexing completed on 2025-01-18 09:50:27
0001 #if !defined(BOOST_PROTO_DONT_USE_PREPROCESSED_FILES)
0002
0003 #include <boost/proto/detail/preprocessed/lambda_matches.hpp>
0004
0005 #elif !defined(BOOST_PP_IS_ITERATING)
0006
0007 #define BOOST_PROTO_DEFINE_LAMBDA_MATCHES(Z, N, DATA) \
0008 lambda_matches< \
0009 BOOST_PP_CAT(Expr, N) \
0010 , BOOST_PP_CAT(Grammar, N) \
0011 >
0012
0013 #if defined(__WAVE__) && defined(BOOST_PROTO_CREATE_PREPROCESSED_FILES)
0014 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/lambda_matches.hpp")
0015 #endif
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #if defined(__WAVE__) && defined(BOOST_PROTO_CREATE_PREPROCESSED_FILES)
0026 #pragma wave option(preserve: 1)
0027 #endif
0028
0029 #define BOOST_PP_ITERATION_PARAMS_1 \
0030 (3, (2, BOOST_PROTO_MAX_ARITY, <boost/proto/detail/lambda_matches.hpp>))
0031 #include BOOST_PP_ITERATE()
0032
0033 #if defined(__WAVE__) && defined(BOOST_PROTO_CREATE_PREPROCESSED_FILES)
0034 #pragma wave option(output: null)
0035 #endif
0036
0037 #undef BOOST_PROTO_DEFINE_LAMBDA_MATCHES
0038
0039 #else
0040
0041 #define N BOOST_PP_ITERATION()
0042
0043 template<
0044 template<BOOST_PP_ENUM_PARAMS(N, typename BOOST_PP_INTERCEPT)> class T
0045 BOOST_PP_ENUM_TRAILING_PARAMS(N, typename Expr)
0046 BOOST_PP_ENUM_TRAILING_PARAMS(N, typename Grammar)
0047 >
0048 struct lambda_matches<
0049 T<BOOST_PP_ENUM_PARAMS(N, Expr)>
0050 , T<BOOST_PP_ENUM_PARAMS(N, Grammar)>
0051 BOOST_PROTO_TEMPLATE_ARITY_PARAM(N)
0052 >
0053 : BOOST_PP_CAT(and_, N)<
0054 BOOST_PROTO_DEFINE_LAMBDA_MATCHES(~, 0, ~)::value,
0055 BOOST_PP_ENUM_SHIFTED(N, BOOST_PROTO_DEFINE_LAMBDA_MATCHES, ~)
0056 >
0057 {};
0058
0059 #undef N
0060
0061 #endif