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.