Boost logo

Boost :

Subject: Re: [boost] [preprocessor] Warning: Incoming
From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2011-06-26 19:13:49

On Sun, 26 Jun 2011 10:57:55 -0400, Lorenzo Caminiti wrote:

> On Sun, Jun 26, 2011 at 9:02 AM, Paul Mensonides <pmenso57_at_[hidden]>
> wrote:
>> I'm about to commit a relatively significant changeset to the pp-lib.
> Do these changes need to be peer-reviewed?

No, but feel free to comment.

>> This is the result of work by Edward Diener and I to add limited
>> variadic support to the pp-lib.  Edward can comment in more detail
>> regarding the extent of those changes, but they do not add ground-up
>> support.
> If the pp-lib needs to be changed, why not change it radically to add
> ground-up variadic support? (This is not a rhetoric question. I am
> sincerely asking as there might be very good reasons not to add
> ground-up variadic support to Boost.Preprocessor.)

The biggest reason not to do so would be compatibility. A ground-up
reimplementation would entail significant interface breaking. A
secondary reason is that there is a limit on what can be done while
having to support broken preprocessors, and that limit has the potential
to drastically undermine the benefits of doing so. To be clear, I'm not
referring to having some support disabled for broken preprocessors.
Rather, it would be having entirely different interfaces--just like Chaos
has entirely different interfaces, and, more importantly, an entirely
different methodology.

That aside, if broken preprocessors are taken off the table (i.e.
abandoning VC++ as a supported compiler or using a different preprocessor
front-end to it such as Wave), there is already a library (Chaos) that
was written from the ground up to support variadics that is released
under the same license that Boost uses (and created). As an example,
everything that Edward and I have added to Boost.Preprocessor has already
existed in Chaos (in some form) for years.

Paul Mensonides

Boost list run by bdawes at, gregod at, cpdaniel at, john at