[preprocessor] enabling variadics support

Hi, It appears PP variadics support is disabled on wide range of compilers where it is in fact working (at least It seems to be). This includes Clang and PGI. Can we enable it now? Gennadiy

On 2/8/2013 2:53 AM, Gennadiy Rozental wrote:
Hi,
It appears PP variadics support is disabled on wide range of compilers where it is in fact working (at least It seems to be). This includes Clang and PGI. Can we enable it now?
Although I worked with Paul Mensonides on variadic support for the PP library Paul wrote the code for individual compiler support. You can see it starting at line 73 of /config/config.hpp. So I think he needs to respond. You can force PP variadics support for any given compiler by simply: #define BOOST_PP_VARIADICS 1 before including any pp header files.

On Fri, 08 Feb 2013 23:04:06 -0500, Edward Diener wrote:
On 2/8/2013 2:53 AM, Gennadiy Rozental wrote:
It appears PP variadics support is disabled on wide range of compilers where it is in fact working (at least It seems to be). This includes Clang and PGI. Can we enable it now?
Although I worked with Paul Mensonides on variadic support for the PP library Paul wrote the code for individual compiler support. You can see it starting at line 73 of /config/config.hpp. So I think he needs to respond.
You can force PP variadics support for any given compiler by simply:
#define BOOST_PP_VARIADICS 1
before including any pp header files.
It was only tested against GCC and VC++, so the general status of other compilers is unkown, except that I know as of a few months ago Clang has an issue related to placemarker token-pasting which AFAIK has not been fixed. I am not sure whether that bug affects what boost-pp is doing or not. I know that it affects chaos-pp. Generally, the question isn't whether a compiler "supports variadic macros" but whether they support variadic macros and placemarkers *correctly*. I don't have a particular problem with someone turning it on for a particular compiler as long as it has been well tested. Which means not only executing all of the boost-pp tests, but also compiling all of Boost and running all of Boost's tests with it turned on. Regards, Paul Mensonides
participants (3)
-
Edward Diener
-
Gennadiy Rozental
-
Paul Mensonides