我有一个功能
double function(const infocontainer&);
它作为参数传递给另一个函数。
void bigfunction(std::ostream& os, const std::string& s, double F(const infocontainer&), const infocontainer a, const infocontainer b)
{
os << F(a) << F(b) << std::endl;
}
当我使用模板时,虽然我需要给 F 信息容器 a 和 b 的地址。为什么?
template <class F> void bigfunction(std::ostream& os, const std::string& s, F, const infocontainer a, const infocontainer b)
{
os << F(&a) << F(&b) << std::endl;
}
这就是我调用函数的方式MAIN
bigfunction(std::cout, "name", function, cont_a, cont_b);