Boost logo

Boost Users :

Subject: Re: [Boost-users] use boost preprocessor to generate T1 t1, T2 t2 ...
From: Krzysztof Czainski (1czajnik_at_[hidden])
Date: 2012-10-27 06:48:03


2012/10/26 Daniel James <dnljms_at_[hidden]>

> On 26 October 2012 19:41, weiqingh <weiqingh_at_[hidden]> wrote:
> > hi there,
> >
> > I would like to use boost preprocessor to generate something like this:
> (for
> > n from 0 to N with n = 2 in the following example)
> >
> > template <typename T1, typename T2>
> > void foo(T1 t1, T2 t2)
> >
> > I have tried to use BOOST_PP_ENUM_PARAMS but cannot figure out how to get
> > both T_i and t_i changed each time. is there some other macros I can use?
> > any help is highly appreciated.
>
> You want BOOST_PP_ENUM_BINARY_PARAMS.

Here's my shot at the this, *not* tested:

#define FOO( n ) \
  BOOST_PP_EXPR_IF( N, template < ) \
  BOOST_PP_ENUM_PARAMS( n, typename T ) \
  BOOST_PP_EXPR_IF( N, template < ) \
  void foo( BOOST_PP_ENUM_BINARY_PARAMS( n, T, t) )

HTH, Kris



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net