[英]Wrapper to a function with a variable number of parameters
我需要包装一个库函数,该函数可以在输入中接收可变数量的参数。 这些参数可以是不同的类型。 特别是,我得到一个标识类型的整数参数,以及一个可以是数字或字符串的参数。
我尝试使用以下函数,但是内部函数附带的参数列表不正确。
int function2(int rtype, ...);
int function1(int rtype, ...){
va_list args;
va_start(args, rtype);
int stato = function2(rtype, args);
va_end(args);
return stato;
}
将此包装与vprintf而不是function2配合使用,可以正常工作。
有一种更干净的方法将变量的可变列表传递给函数吗?
这是最通用的方式:
template<typename... A>
auto function1(A&&... a)
-> decltype(function2(std::forward<A>(a)...))
{ return function2(std::forward<A>(a)...); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.