// file.h #if !BOOST_PP_IS_ITERATING #ifndef FILE_H_ #define FILE_H_ #include <boost/preprocessor/iteration/iterate.hpp> 1st iteration: #define BOOST_PP_ITERATION_PARAMS_1 (4, (0, 3, "file.h", 0x0001)) #include BOOST_PP_ITERATE() 2nd iteration: #define BOOST_PP_ITERATION_PARAMS_1 (4, (1, 10, "file.h", 0x0002)) #include BOOST_PP_ITERATE() #endif #elif BOOST_PP_ITERATION_DEPTH() == 1 \ && BOOST_PP_ITERATION_FLAGS() == 0x0001 \ /**/ -- #define BOOST_PP_ITERATION_PARAMS_2 (3, (1, 10, "file.h")) #include BOOST_PP_ITERATE() #elif BOOST_PP_ITERATION_DEPTH() == 1 \ && BOOST_PP_ITERATION_FLAGS() == 0x0002 \ /**/ -- #define BOOST_PP_ITERATION_PARAMS_2 \ (3, (1, BOOST_PP_ITERATION(), "file.h")) \ /**/ #include BOOST_PP_ITERATE() #elif BOOST_PP_ITERATION_DEPTH() == 2 \ && BOOST_PP_FRAME_FLAGS(1) == 0x0001 \ /**/ -- #define BOOST_PP_ITERATION_PARAMS_3 \ (3, (1, BOOST_PP_ITERATION(), "file.h")) \ /**/ #include BOOST_PP_ITERATE() #else // used by both previous: BOOST_PP_RELATIVE_ITERATION(1) current: BOOST_PP_ITERATION() #endif
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)