The <i>z</i> value that is passed to <i>macro</i> represents the next available repetition dimension.
Other macros that have <b>_Z</b> suffix variants internally use <b>BOOST_PP_REPEAT</b>--for example, <b>BOOST_PP_ENUM_PARAMS</b> and <b>BOOST_PP_ENUM_PARAMS_Z</b>.
Using these <b>_Z</b> versions is not strictly necessary, but passing the <i>z</i> value (that is passed to <i>macro</i>) to these macros allows them to reenter <b>BOOST_PP_REPEAT</b> with maximum efficiency.
</div>
<div>
To directly use this <i>z</i> value, rather than simply passing it to another macro, see <b>BOOST_PP_ENUM_SHIFTED_<i>z</i></b>.
</div>
<div>
Previously, this macro could not be used recursively inside <b>BOOST_PP_REPEAT</b>.
This limitation no longer exists, as the library can automatically detect the next available repetition depth.