我正在尝试创建一个CPP函数,它接受一个函数指针和任意数量的参数,添加一些坐标,然后调用函数指针:
int func_api(void(*fun)(int, int, ...args), ...args) {
fun(this.x, this.y, args);
}
所以我可以这样使用它:
int func(int x, int y, int param1, int param2) {
something;
}
int foo () {
func_api(p1, p2);
}
有办法做到这一点吗?
答案 0 :(得分:1)
使用可变参数模板
template <typename Func, typename ... Args>
int func_api(Func fun, Args&&... args)
{
fun(this->x, this->y, std::forward<Args>(args)...);
}
您现在可以这样称呼它:
func_api(func, p1, p2);