将函数指针传递给一个函数,该函数通过引用获取另一个函数

Passing function pointer to a function, which takes another function by reference

本文关键字:函数 引用 另一个 获取 一个 指针      更新时间:2023-10-16

我正在使用库的此功能

template <
    typename funct, 
    >
double find_min (
    const funct& f, 
);

当我调用find_min(function_a)时,其中function_a是一个静态函数,它可以工作。但是,当我试图将find_min封装在run的函数中,并将函数指针传递给find_min,会出现错误,例如

class ABC {
    void run(double (*function_ptr)(double))
    {
        find_min((*function_ptr));
    }
}

这是否意味着我只能将静态函数传递给find_min

这类事情没有理由不起作用。请参见此处。我唯一改变的是:

  • 删除了find_min声明中模板参数列表和函数参数列表末尾的无效逗号
  • 已公开ABC::run