Boost logo

Boost :

From: Vesa Karvonen (vesa_karvonen_at_[hidden])
Date: 2002-04-18 14:49:18


From: "John Harris (TT)" <john.harris_at_[hidden]>
> I found that it compiles fine on MSVC with 100, but invocation of my
macros
> breaks (compiler runs forever) somewhere between 60 and 75.
>
> I need it to generate enum type declarations and char array initializer
> lists, and 16 is kind of low for a few of our enums.

How do you iterate the tuple elements? Do you use BOOST_PP_REPEAT() or do
you convert the tuple to a list and use BOOST_PP_LIST_FOR_EACH()?

Is the syntax very important?

It is possible to build lists that are much longer than the tuple limit 16
by using the following technique:

  BOOST_PP_LIST_FOLD_RIGHT_2ND
  ( BOOST_PP_LIST_APPEND_D
  , BOOST_PP_TUPLE_TO_LIST
    ( N
    , BOOST_PP_TUPLE_TO_LIST(M, (E11, E12, ..., E1M) )
    , BOOST_PP_TUPLE_TO_LIST(M, (E21, E22, ..., E2M) )
    , ...
    , BOOST_PP_TUPLE_TO_LIST(M, (EN1, EN2, ..., ENM) )
    )
  )

BOOST_PP_LIST_FOLD_RIGHT_2ND() macro is not available in the current
release, but it is available in the CVS.


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