Chris@16: /*============================================================================== Chris@16: Copyright (c) 2010 Thomas Heller Chris@16: Chris@16: Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: ==============================================================================*/ Chris@16: Chris@16: #if !BOOST_PP_IS_ITERATING Chris@16: Chris@16: #include Chris@16: Chris@16: #ifndef BOOST_PHOENIX_ITERATION_PARAMS Chris@16: #error "BOOST_PHOENIX_ITERATION_PARAMS not defined" Chris@16: #endif Chris@16: Chris@16: #define BOOST_PHOENIX_ITERATION_PARAMS_SIZE \ Chris@16: BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PHOENIX_ITERATION_PARAMS) \ Chris@16: /**/ Chris@16: Chris@16: #define BOOST_PHOENIX_ITERATION_TUPLE \ Chris@16: BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PHOENIX_ITERATION_PARAMS) \ Chris@16: /**/ Chris@16: Chris@16: #define BOOST_PHOENIX_ITERATION_START \ Chris@16: BOOST_PP_TUPLE_ELEM( \ Chris@16: BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 0, BOOST_PHOENIX_ITERATION_TUPLE) \ Chris@16: /**/ Chris@16: Chris@16: #define BOOST_PHOENIX_ITERATION_END \ Chris@16: BOOST_PP_TUPLE_ELEM( \ Chris@16: BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 1, BOOST_PHOENIX_ITERATION_TUPLE) \ Chris@16: /**/ Chris@16: Chris@16: Chris@16: #define BOOST_PHOENIX_ITERATION_FILE() \ Chris@16: BOOST_PP_TUPLE_ELEM( \ Chris@16: BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 2, BOOST_PHOENIX_ITERATION_TUPLE) \ Chris@16: /**/ Chris@16: Chris@16: #if BOOST_PHOENIX_ITERATION_PARAMS_SIZE == 3 Chris@16: Chris@16: #define BOOST_PP_ITERATION_PARAMS_1 \ Chris@16: (3, (BOOST_PHOENIX_ITERATION_START, BOOST_PHOENIX_ITERATION_END, \ Chris@16: )) \ Chris@16: /**/ Chris@16: Chris@16: #else Chris@16: Chris@16: #define BOOST_PHOENIX_ITERATION_FLAG \ Chris@16: BOOST_PP_TUPLE_ELEM( \ Chris@16: BOOST_PHOENIX_ITERATION_PARAMS_SIZE, 3, BOOST_PHOENIX_ITERATION_TUPLE) \ Chris@16: /**/ Chris@16: Chris@16: #define BOOST_PP_ITERATION_PARAMS_1 \ Chris@16: (4, (BOOST_PHOENIX_ITERATION_START, BOOST_PHOENIX_ITERATION_END, \ Chris@16: , \ Chris@16: BOOST_PHOENIX_ITERATION_FLAG)) \ Chris@16: /**/ Chris@16: Chris@16: #endif Chris@16: Chris@16: #include BOOST_PP_ITERATE() Chris@16: Chris@16: #undef BOOST_PHOENIX_ITERATION_PARAMS_SIZE Chris@16: #undef BOOST_PHOENIX_ITERATION_TUPLE Chris@16: #undef BOOST_PHOENIX_ITERATION_START Chris@16: #undef BOOST_PHOENIX_ITERATION_END Chris@16: #undef BOOST_PHOENIX_ITERATION_PARAMS Chris@16: Chris@16: #else Chris@16: Chris@16: #undef BOOST_PHOENIX_IS_ITERATING Chris@16: #define BOOST_PHOENIX_IS_ITERATING 1 Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: Chris@16: #include BOOST_PHOENIX_ITERATION_FILE() Chris@16: Chris@16: #undef BOOST_PHOENIX_ITERATION Chris@16: Chris@16: #undef BOOST_PHOENIX_IS_ITERATING Chris@16: #define BOOST_PHOENIX_IS_ITERATING 0 Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: #endif