Krzysztof Kowalczyk Blog  •  Notes  •  My Software  •  My Documents

variadic macros in msvc


> Is there any way to support variadic macros in Visual Studio
> like gcc supports?  If not, how do people write stuff like
> custom asserts that take variable parameters?
>
> http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
>

Depending on what you're after, you might find that the __noop
intrinsic will help you out.

#ifdef _DEBUG
void _MyDebugPrintf(const char* fmt, ...);
#define DPF _MyDebugPrintf
#else
#define DPF __noop
#endif

// later, ...

        DPF("%s %s this works", FuncA(), FuncB());

FuncA and FuncB (or parameters in general) are not evaluated
in non _DEBUG builds. The compiler ignores the statement.

This is obviously not variadic macros, but you can do quite a
bit with it.
← newer • 177 of 680older →