在以下情况下,我使用 VA_ARGS :

#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中工作?

最佳答案

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

关于c++ - VS 2008中两层对__VA_ARGS__的调用失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20511943/

10-13 06:17