繁体   English   中英

包装到具有可变数量参数的函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM