The BOOST_PP_RELATIVE_ITERATION macro expands to the iteration value of a file-iteration depth relative to the current depth.

#### Usage

BOOST_PP_RELATIVE_ITERATION(i)

#### Arguments

i
  The relative depth of the frame whose iteration value is to be retreived. Valid values range from 0 to BOOST_PP_ITERATION_DEPTH() - 1.

#### Remarks

This macro is only valid when a file-iteration is in progress.
The argument i is interpreted as the number of frames outward from the current frame. Therefore, BOOST_PP_RELATIVE_ITERATION(0) is equivalent to BOOST_PP_ITERATION().

#### Requirements

Header: <boost/preprocessor/iteration/iterate.hpp>

#### Sample Code

    // 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