2013-12-11 1 views
1

я использую va_args для следующего случая:два слоя требуют __VA_ARGS__ в VS 2008 не удалось

#define CHECK4(x,y,...) if ((x)) { y(__VA_ARGS__); } 
#define CHECK5(x,y,...) if ((x)) { y(__VA_ARGS__); } 

Затем вызовите его:

CHECK5(1, CHECK4,1,printf, "here %s %s %s", "are", "some", "varargs2(4)\n"); 

В VS 2008, она не для CHECK5 призванию, но с помощью gcc он работает хорошо. Как мне позволить работать в VS 2008?

+1

Это может быть дубликат; см. [этот вопрос] (http://stackoverflow.com/q/5134523/420683) и попытайтесь использовать обходное решение, описанное там. – dyp

ответ

1
CHECK5(1, CHECK4(1,printf, "here %s %s %s", "are", "some", "varargs2(4)\n"), 1);