在 Visual Studio 2005 上,我有一个看起来像这样的宏(示例!!):
#define MY_CALL(FUN, ...) \
if(prepare(x, y)) { \
FUN(__VA_ARGS__); \
}
/**/
只要该函数至少接受一个参数,我就可以了。
当函数接受零参数时,预处理器“有用地”删除“尾随逗号”,扩展如下:
if(prepare(x y)) { funct(); }
太好了,不是吗?
如何修复此宏,使其__VA_ARGS__
在 Visual C++ (VS 2005) 上使用零?