[Development] Make support vor __VA_ARGS__ in preprocessor a requirement?

Koehne Kai Kai.Koehne at digia.com
Fri Jan 10 14:47:34 CET 2014


Hi,

We've code in qcompilerdetection.h that tries determine whether the compiler/preprocessor supports variadic arguments, or not.

Specifically, Q_COMPILER_VARADIC_MACROS are right now defined for

Intel if compiled with C++11 support (__cplusplus >= 201103L)
Clang >=2.9 if compiled with C++11 support 
GCC >= 4.3 if compiled with C++11 support (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)


This is technically right, because __VA_ARGS__ only has been added to the C++ standard with C++11 (also in C99). However, it seems that at least for gcc & clang variadic macros always work, regardless of the language version that is selected. The gcc support actually dates back to gcc 2.97 ...


So, I'm wondering, can anybody check for the Intel compiler whether it cares about the C++ standard when it comes to variadic macros? If not, do we still support toolchains that do not handle variadic macros?

Regards

Kai

-- 
   Kai Köhne, Senior Software Engineer - Digia, Qt
   Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
   Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
   Registergericht: Amtsgericht Charlottenburg, HRB 144331 B





More information about the Development mailing list