----- Original Message -----
From: "Edward Diener"
Are these just warnings, but the results are still correct?
Yes.
Either way, this is a clang issue. They intentionally chose to *not* implement the standard instead deferring to the garbage MSVC status quo. Given that and their attitude of "more" being put above "better", a sea of warnings is a good thing.
No, that is not what is happening. We are not talking about the clang Windows VC++ targeted implementation but just the regular clang-linux ( or mingw/gcc on Windows ) implementation.
In your original config.h you had turned off variadic macro support for clang unconditionally. Then I turned it on unconditionally after complaints from Boost users and developers and being told by clang developers that clang has always supported variadic macros. However if the necessary clang compiler options are not on ( probably something like gcc's std=c++0x option ), clang issues lots of warnings when you use variadic macros although the output is fine.
I should have probably probably just allowed your code of:
# elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L # define BOOST_PP_VARIADICS 1 # else # define BOOST_PP_VARIADICS 0
to determine the issue for clang rather than unconditionally turn it on. Then using clang in Boost PP with variadic macros would have been the same as using gcc in Boost PP with variadic macros.
Ah, thanks for the clarification. (I had just went back and read through the clang mailing list about MSVC compatible preprocessor a couple of days ago.) Regards, Paul Mensonides