I am trying to identify a problem because of an unusual usage of variadic macros. Here is the hypothetic macro:
#define va(c, d, ...) c(d, __VA_ARGS__) #defi
There is an easy way to deal with this problem:
#define exp(...) __VA_ARGS__ #define va(c, d, ...) c(d, __VA_ARGS__) #define var(a, b, ...) exp(va(__VA_ARGS__, a, b)) var(2, 3, printf, “%d %d %d\n”, 1);
This will do the trick on VS 2008 and it won't affect gcc