$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [preprocessor]
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2009-12-13 18:05:24
AMDG
Christian Henning wrote:
> Hi there, thanks Steven for your good advise. I have been making some
> progress but I'm stuck on one part. Here is some code that exhibits my
> problem.
>
> #include <boost/preprocessor.hpp>
>
> template< int i, int j > void test() {}
>
> int main()
> {
>     #define S1 (1)(2)(3)
>     #define S2 (1)(2)(3)
>     #define FOR_EACH( r, data, elem ) BOOST_PP_CAT( elem \
>                                                   , BOOST_PP_COMMA() )
>
>     #define FOR_EACH_PRODUCT(r, product) test<  BOOST_PP_SEQ_FOR_EACH(
> FOR_EACH \
>                                                                      ,
> BOOST_PP_EMPTY() \
>                                                                      , product \
>                                                                      ) >();
>
>     BOOST_PP_SEQ_FOR_EACH_PRODUCT( FOR_EACH_PRODUCT \
>                                  , (S1)(S2) \
>                                  )
>
>     return 0;
> }
>
> Here is what the preprocessor produces:
>
> test< 1, 1,   >();
> test< 1, 2,   >();
> test< 1, 3,   >();
> test< 2, 1,   >();
> [snip]
>
>
>
> My problem is that I cannot figure out how to get rid of the last
> comma? Any ideas?
>   
BOOST_PP_SEQ_ENUM?
In Christ,
Steven Watanabe