我在以下情况下使用 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/