我有一个调用全局函数的问题,它将函数的指针作为参数。 这里是全局函数的声明:指向作为全局函数参数的C++类成员函数?
int lmdif (minpack_func_mn fcn, void *p, int m, int n, double *x,
double *fvec, double ftol)
的“minpack_func_mn”符号是一个指向函数的类型定义,定义为:
typedef int (*minpack_func_mn)(void *p, int m, int n, const double *x,
double *fvec, int iflag);
我想称之为“lmdif “函数指针指向我创建的类的成员,这里是此类函数的声明:
int LT_Calibrator::fcn(void *p, int m, int n, const double *x,
double *fvec,int iflag)
我是调用像这样的全局函数:
info=lmdif(<_Calibrator::fcn, 0, m, n, x, fvec, ftol)
不幸的是,我得到一个编译错误,它说: “错误C2664: 'lmdif':无法从“转换为int参数1(__thiscall LT_Calibrator :: *)(无效*,int,int,const double *,double *,int)'到'minpack_func_mn' 1>没有上下文可以进行这种转换“
有什么办法解决这个问题吗?