Boost logo

Boost :

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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk