【发布时间】:2019-01-04 18:34:41
【问题描述】:
我有一个库定义的函数,我无法更改,也无法更改它的调用方式。 函数有点像这样:
void originalFunction(const char *file, int line, error_type msg, const char* tag, ...);
此函数将调用以下方式定义的库:
void originalFunction(const char *file, int line, error_type msg, const char* tag, ...){
va_list ap;
va_start(ap, tag);
...
vExtIssueMessage(msg, ap);
...
va_end(ap);
}
我需要做的是在变量参数列表的末尾添加一些额外的参数。在这种特殊情况下,我想将文件和行附加到参数列表中,因为我不能只调用:
vExtIssueMessage(msg, ap, file, line);
因为那会破坏函数的签名。
【问题讨论】:
标签: c++ macros variadic-functions