
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@comcast.net> 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.