在C lib中,有一个函数在等待函数指针,这样:
lasvm_kcache_t* lasvm_kcache_create(lasvm_kernel_t kernelfunc, void *closure)
Run Code Online (Sandbox Code Playgroud)
其中lasvm_kernel_t定义为:
typedef double (*lasvm_kernel_t)(int i, int j, void* closure);
Run Code Online (Sandbox Code Playgroud)
现在,如果我将类中定义的方法发送到lasvm_kcache_create:
double cls_lasvm::kernel(int i, int j, void *kparam)
...
lasvm_kcache_t *kcache=lasvm_kcache_create(&kernel, NULL);
Run Code Online (Sandbox Code Playgroud)
我得到:"无法将'double(cls_lasvm :: )(int,int,void)'转换为'double()(int,int,void)'"
我该怎么办?