The BOOST_PP_ENUM_SHIFTED_PARAMS_Z macro generates a comma-separated, shifted list of parameters.  It reenters BOOST_PP_REPEAT with maximum efficiency.

Usage

BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param)

Arguments

z
The next available BOOST_PP_REPEAT dimension.
count
The number of parameters to generate.  Valid values range from 0 to BOOST_PP_LIMIT_REPEAT.
param
The text of the parameter.  BOOST_PP_ENUM_SHIFTED_PARAMS_Z concatenates numbers ranging from 1 to count - 1 to generate parameters.

Remarks

This macro expands to the comma-separated sequence:
param ## 1, ... param ## count - 1

See Also

Requirements

Header:  <boost/preprocessor/repetition/enum_shifted_params.hpp>

Sample Code

#include <boost/preprocessor/repetition/enum_params.hpp>
#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>

int add(void) {
   return 0;
}

#define ADD_F(z, n, _) \
   int add_f(BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_INC(n), int p)) { \
      return p0 + add_f(BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, BOOST_PP_INC(n), p)); \
   } \
   /**/

BOOST_PP_REPEAT(5, ADD_F, nil)

Copyright Housemarque Oy 2002
Copyright Paul Mensonides 2002

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)