Boost logo

Boost :

Subject: Re: [boost] [preprocessor] [config] Support for variadic macros
From: Stefan Strasser (strasser_at_[hidden])
Date: 2010-08-07 11:25:24


Zitat von Wolf Lammen <ookami1_at_[hidden]>:

> Well, perhaps I should have written: Variadic macros are covered by
> C99 or later only, not by C90. So, whereever you want to introduce
> them, you have to provide a parallel C90 implementation, unless you
> want to exclude all non C99 conformant compilers.
>
> IMHO, if you use variadic macros to optimize internal processing for
> a subset of compilers, this is ok. But you must not expose them on
> the outside interface of BOOST_PP (such as to declare a new type),
> because that wouldn't be portable.

boost already does that in many cases, and there are many more to come
due to c++0x. even type "long long" is C99/C++0x.
that's what Boost.Config is for.

this thread has been about adding a macro to indicate variadic macro
support to Boost.Config, and then I brought up supporting variadic
macros in Boost.Preprocessor through variadic tuples - for those
compilers that support them (which probably includes MSVC thanks to
the mentioned bug workaround).

I don't see how this relates to specific PP engines like "chaos", or
why variadic tuples could only be used internally, as long as it is
documented that they require compiler support.


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