C++ C++;-具有任意参数数的函数指针

C++ C++;-具有任意参数数的函数指针,c++,function-pointers,argument-passing,C++,Function Pointers,Argument Passing,我试图创建一个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

我试图创建一个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);
}

有办法做到这一点吗?

使用可变模板

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);