// file.h
#if !BOOST_PP_IS_ITERATING
#ifndef FILE_H_
#define FILE_H_
#include <boost/preprocessor/iteration/iterate.hpp>
#define BOOST_PP_ITERATION_PARAMS_1 (3, (1, 10, "file.h"))
#include BOOST_PP_ITERATE()
#endif
#elif BOOST_PP_ITERATION_DEPTH() == 1
--
#define BOOST_PP_ITERATION_PARAMS_2 /* ... */ \
(3, (1, BOOST_PP_ITERATION(), "file.h")) \
/**/
#include BOOST_PP_ITERATE()
#else
outer: BOOST_PP_FRAME_ITERATION(1)
inner: BOOST_PP_FRAME_ITERATION(2)
#endif