
On Sun, Feb 6, 2011 at 10:56 AM, Mathias Gaunard <mathias.gaunard@ens-lyon.org> 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