2
我正在研究可变参数模板,我想知道如果我可以做这样的事情:我会调用任意数量的函数(任意返回类型)与任意数量和类型的参数只需一个电话。我能够使用的代码是这样的:variadic模板C++中的多个参数包
call(f1,f2,f3, 2.2,3);
call(f4,f5, 2.2, "Hello", 'a');
如果函数传递可以接受传递的参数。 我写了一个固定数目的要传递给函数的参数兼容版本:
template<typename T, typename U>
void fcall(const T& t1, const T& t2, U&& u){
u(t1, t2);
}
template<typename... F, typename T, typename U>
void fcall(const T& t1, const T& t2, U&& u, F&&... f){
u(t1, t2);
fcall(t1, t2, f...);
}
即使我不喜欢的功能之前传递参数,它的工作原理。
这是我写的,并且不工作:
template<typename P, typename U>
void fcall2(U&& f, const P& param){
f(param);
}
template<typename... P, typename... F, typename U>
void fcall2(U&& f, F&&... func, const P&... param){
f(param...);
fcall2(func..., param...);
}
我知道了也没用,这只是一个好奇心。 有什么建议吗?