Boost logo

Boost :

Subject: Re: [boost] [preprocessor] Warning: Incoming
From: Edward Diener (eldiener_at_[hidden])
Date: 2011-06-27 09:19:50


On 6/27/2011 6:21 AM, Mathias Gaunard wrote:
> On 06/27/2011 11:48 AM, Olaf van der Spek wrote:
>> On Mon, Jun 27, 2011 at 1:13 AM, Paul Mensonides<pmenso57_at_[hidden]>
>> wrote:
>>> That aside, if broken preprocessors are taken off the table (i.e.
>>> abandoning VC++ as a supported compiler or using a different
>>
>> Is this true for all versions?
>
> Yes.
>
> Its variadic macro support is completely broken, but interestingly
> enough it is still possible to do a few things with it if you're willing
> to put MSVC-specific hacks everywhere.

Paul has gone out of his way to support the VC++ preprocessor in pp-lib,
even though it is broken in many respects, with many hacks. I also had
to find a hack to get VC++ to work with variadic macros in my VMD
library, and the work I did with Paul to get variadic macros into pp-lib
also needed various hacks for VC++. I write this because I want to
emphasize that the updated pp-lib with variadic macro support does work
with VC++, despite it being difficult to force the VC++ preprocessor to
expand both variadic and non-variadic macros in a timely and correct
manner in quite a number of cases.

So while I share Paul's frustration at working with the VC++
preprocessor, and Microsoft's unwillingness to ever fix it ( they are
probably afraid that actually fixing their preprocessor will break
end-user's code which inadvertently relies on their buggy code ), I
pushed very hard to have the functionality from my VMD library added to
pp-lib and still support VC++. At the same time I totally understand
that to write a really great preprocessor library, as Paul has done with
Chaos, one needs to abandon support for broken preprocessors such as
VC++ and work only with preprocessor which implement the C++ standard.


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