Boost logo

Boost :

Subject: Re: [boost] Case study: Boost.Local versus Boost.Phoenix
From: Lorenzo Caminiti (lorcaminiti_at_[hidden])
Date: 2011-02-06 11:13:22


On Sun, Feb 6, 2011 at 10:56 AM, Mathias Gaunard
<mathias.gaunard_at_[hidden]> wrote:
> On 05/02/2011 22:04, Lorenzo Caminiti wrote:
>
>> Sorry, C++ preprocessor only -- that was a requirement for me... (Can
>> you imagine how much the syntax can be simplified with varidiac
>> macros... I can!! Too bad I can't use them...).
>
> Can you give me one modern C++ compiler that doesn't support variadic
> macros?

Mathias: No, I can't. Variadic macros are not certified on the
compiler I use so *I personally* cannot use them even if they are
there (I am really using a gcc C99 preprocessor). *I personally* can
only use the C++ standard features, I am not sure about others... As I
said, I will take a look to what variadic macros and Alex-Steven
syntax can do for Boost.Local.

Is there still value for Boost in writing pure C++ libraries? I guess,
I am asking if pure C++ ISO standard compliance is and/or should
remain a requirement for Boost libraries.

As I understand it, that is how for example Boost.Preprocessor was
_originally_ written: No C99 preprocessor (no empty sequences), no
variadic macros (which are now being added as optional to this
library), etc. Of course, a library could work with pure C++ and then
offer more features (or a simpler syntax) if C++ extensions can be
detected to be available (for example the parenthesized syntax already
accepts the empty sequence `(void) (f)()` instead of `(void) (f)(
(void) )` on C99 preprocessors).

-- 
Lorenzo

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