我正在处理呼叫宏,
#define CALL(f,...) FN(f)->call((ref(new LinkedList()), __VA_ARGS__))
当被调用时,
CALL(print,2,3,4,5);
将 2 3 4 5 添加到链表(,为此重载)并调用 print 期望链表按预期工作但是有一些不需要参数的调用,
CALL(HeapSize);
它仍然需要一个链接列表,但是一个空列表,上面不起作用,我正在尝试提出一个适用于任何一种风格的宏?
编辑:通过 gcc 文档挖掘我发现在VA_ARGS之前添加 ##会删除 ,当没有参数但我不能嵌套宏时,
CALL(print,CALL(HeadSize));
这会导致 CALL 未定义错误,但是如果我将其工作的调用分开