Subject: Re: [boost] [Preprocessor] Adding variadic macros support
From: Edward Diener (eldiener_at_[hidden])
Date: 2010-11-26 09:54:47


On 11/25/2010 10:29 PM, Thell Fowler wrote:
> Edward Diener<eldiener<at> tropicsoft.com> writes:
>
>>
>> On 11/24/2010 3:22 AM, Mathias Gaunard wrote:
>>> Variadic macros would allow to support tuples better in Boost.PP, as it
>>> would not be necessary to specify the size of the tuple, and it could be
>>> possible to provide other nice features around tuples.
>>>
>>> Other possible applications could be to accept the sequence (a)(b, c,
>>> d)(e) as being the same as (a)((b, c, d))(e).
>>>
>>> If you think other things could be improved in PP with variadic macros,
>>> feel free to point out where.
>>>
>>> The question is: how should it be done?
>>> Should the new macros be named, say, BOOST_PPV_*? Should the macros in
>>> BOOST_PP_* be "overloaded" on arity (a possibility with variadic macros)
>>> so as to exhibit both the old and new interface?
>>
>> Please see my variadic_macro_data library in the sandbox. I have already
>> addressed the problem of uniting variadic macros with Boost PP there as
>> well as providing the support for tuples which you suggest in your
>> opening paragraph above.
>>
>
> Thank you very much for doing this. Just this week I ran across need to use
> variadic macros and was hunting the various 'solutions' for something that would
> get my job done. Essentially I was able to take a bunch of args and prefix
> them, build a list, and pass that list to the target function. Very nice indeed.
>
> I know my usage must be pretty basic, but being able to do it is extremely nice.
> Here's what I did:
>
> http://thell.pastebin.com/zJvXhHP0
>
> By the way, I'm using VC 9 and it worked great. Outside of learning how some of
> the functions of both the VMD and PP libs worked out their expansions, this was
> as easy as it could get.

I am glad to hear that my library has practical uses. I am sure as
others also use variadic macros for their syntactical ease of use, being
able to use my library, as a way of using variadic macros with the great
flexibility of Boost PP, will be valuable to them also.