From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2002-09-08 17:31:52


The following is a list of incompatible changes in the PP lib. This is a list
of everything that needs to be changed in order to make current code compile. I
have fixed the library files that I know of, but there might be more that are on
a different branch.

1) The reentrant syntax BOOST_PP_WHILE ## D and BOOST_PP_FOR ## R is no longer
supported. Use BOOST_PP_WHILE_ ## D and BOOST_PP_FOR_ ## D instead.

2) The target macro (i.e. the macro that is repeated) of BOOST_PP_ENUM,
BOOST_PP_ENUM_SHIFTED, BOOST_PP_REPEAT, BOOST_PP_REPEAT_2ND,
BOOST_PP_REPEAT_3RD, BOOST_PP_REPEAT_FROM_TO, BOOST_PP_REPEAT_FROM_TO_2ND, and
BOOST_PP_REPEAT_FROM_TO_3RD all take an extra parameter that denotes the next
repetition dimension. Just change change this...

# define MACRO(index, data) /* */
BOOST_PP_REPEAT(5, MACRO, ...)

...to...

# define MACRO(z, index, data) /* */
BOOST_PP_REPEAT(5, MACRO, ...)

...and ignore the 'z' parameter.

3) The parameters of BOOST_PP_LIST_FOLD_RIGHT, BOOST_PP_LIST_FOLD_RIGHT_D,
BOOST_PP_LIST_FOLD_RIGHT_2ND, and BOOST_PP_LIST_FOLD_RIGHT_2ND_D have been
swapped to match the parameters of BOOST_PP_LIST_FOLD_LEFT.

So, what was:

BOOST_PP_LIST_FOLD_RIGHT(op, list, state)

...is now...

BOOST_PP_LIST_FOLD_RIGHT(op, state, list)

4) The target macros (i.e. the macros that a list is folded into) of the
previously mentioned BOOST_PP_LIST_FOLD_RIGHT* macros also has the parameters
swapped to match the target macros of BOOST_PP_LIST_FOLD_LEFT:

# define OP(d, x, state) /* */
BOOST_PP_LIST_FOLD_RIGHT(op, state, list)

...becomes...

# define OP(d, state, x) /* */
BOOST_PP_LIST_FOLD_RIGHT(op, state, list)

Preliminary (but accurate) reference documentation is available at
<libs/preprocessor/docs.1/index.html> in the current CVS.

I am more than happy to help anyone that needs it, so please feel free to ask.
I have already fixed the lambda and python libraries that are on the CVS--at
least the versions that aren't on branches. Please point me in the right
direction for any branch revisions.

Paul Mensonides