123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- BOOST_PP_ENUM_PARAMS(N, typename A) \
- BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(N, typename A, void) \
- BOOST_PP_ENUM_PARAMS(N, A) \
- BOOST_PP_ENUM_BINARY_PARAMS(N, A, & BOOST_PP_INTERCEPT) \
- BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& BOOST_PP_INTERCEPT) \
- BOOST_PP_ENUM_BINARY_PARAMS(N, A, a) \
- BOOST_PP_ENUM_BINARY_PARAMS(N, A, & a) \
- BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) \
- BOOST_PP_ENUM_PARAMS(N, a) \
- BOOST_PP_ITERATION() \
- BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, typename A) \
- BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(BOOST_PHOENIX_ITERATION, typename A, void)
- BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, A) \
- BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PHOENIX_ITERATION, A, & BOOST_PP_INTERCEPT)\
- BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PHOENIX_ITERATION, A, const& BOOST_PP_INTERCEPT)\
- BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PHOENIX_ITERATION, A, a) \
- BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PHOENIX_ITERATION, A, & a) \
- BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PHOENIX_ITERATION, A, const& a) \
- BOOST_PP_ENUM_PARAMS(BOOST_PHOENIX_ITERATION, a) \
- /////////////////////////////////////////////////////////////////////////////
- // Begin Perfect Forward argument permutation calculation
- /////////////////////////////////////////////////////////////////////////////
- (((A
- /**/
- BOOST_PP_REPEAT(BOOST_PHOENIX_ITERATION, BOOST_PHOENIX_M0_R, _) \
- /**/
- BOOST_PP_SEQ_ELEM(N, SEQ) \
- /**/
- (BOOST_PP_REPEAT(BOOST_PP_SEQ_SIZE(ELEM), BOOST_PHOENIX_M1_R_R, ELEM)) \
- /**/
- ((BOOST_PP_SEQ_ENUM \
- (BOOST_PP_SEQ_FOR_EACH_I_R \
- (R, BOOST_PHOENIX_M1_R, _, PRODUCT)))) \
- /**/
- BOOST_PP_SEQ_FOR_EACH_PRODUCT(BOOST_PHOENIX_M1, BOOST_PHOENIX_M0) \
- /**/
- ////////////////////////////////////////////////////////////////////////////
- // End
- ////////////////////////////////////////////////////////////////////////////
- BOOST_PP_SEQ_SIZE(BOOST_PHOENIX_PERM_SEQ) \
- BOOST_PP_COMMA_IF(N) BOOST_PP_TUPLE_ELEM(BOOST_PHOENIX_ITERATION, N, TUPLE) \
-
- BOOST_PP_COMMA_IF(N) BOOST_PP_TUPLE_ELEM(BOOST_PHOENIX_ITERATION, N, TUPLE) a
- BOOST_PP_SEQ_ELEM(N, BOOST_PHOENIX_PERM_SEQ) \
- BOOST_PP_REPEAT(BOOST_PHOENIX_ITERATION, BOOST_PHOENIX_M2, BOOST_PHOENIX_PERM_ELEM(N))\
- BOOST_PP_REPEAT(BOOST_PHOENIX_ITERATION, BOOST_PHOENIX_M3, BOOST_PHOENIX_PERM_ELEM(N))\
|