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...);
}
我知道了也沒用,這只是一個好奇心。 有什麼建議嗎?