Boost logo

Boost :

From: Pavel Vozenilek (pavel_vozenilek_at_[hidden])
Date: 2004-08-30 11:03:58


"Jonathan Turkanis" wrote:

> > I believe the attached file does what Pavel has in mind. Let someone
else
> > check it, though, since I'm not preprocessor expert.
>
> One last try ... the version I just posted had the include guards out of
order.
>
>
The technique used here is called file iteration. It works well.
It is the most powerful mechanism in PP.

The local iteration approach is bit simpler and would look like:
-------------
#define BOOST_PP_LOCAL_MACRO( n ) \
    template < BOOST_PP_ENUM_PARAMS(n, typename T) > \
    explicit base_from_member( BOOST_PP_ENUM_BINARY_PARAMS(n, T, x) ) \
        : member( BOOST_PP_ENUM_PARAMS(n, x) ) \
        {} \
    /**/

#define BOOST_PP_LOCAL_LIMITS (1, BOOST_BASE_FROM_MEMBER_MAX_ARITY)
#include BOOST_PP_LOCAL_ITERATE()
-------------

I think file iteration makes no harm.

/Pavel


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