Zai*_*zvi 4 c++ variadic-functions
有没有办法直接将可变数量的参数从一个函数传递给另一个函数?
我想实现如下的最小解决方案:
int func1(string param1, ...){
int status = STATUS_1;
func2(status, param1, ...);
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用类似下面的内容来完成此操作,但是这段代码将被重复多次,所以我希望尽可能保持简约,同时保持函数调用非常短
int func1(string param1, ...){
int status = STATUS_1;
va_list args;
va_start(args, param1);
func2(status, param1, args);
va_end(args);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
不,你必须va_list按照你的第二个例子传递varargs .
它只是3行额外的代码,如果你想避免重复这些行,并且func2总是相同的,或者至少采用相同的参数,从中制作一个宏.
#define CALL_MY_VA_FUNC(func,param) do {\
va_list args; \
va_start(args,param);\
func(param,param,args);\
va_end(args); } while(0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1799 次 |
| 最近记录: |