C++ à l'Aide de la Méthode de Classe comme un Pointeur de Fonction Type

Dans un C lib, il y a une fonction attend un pointeur de fonction telles que:

lasvm_kcache_t* lasvm_kcache_create(lasvm_kernel_t kernelfunc, void *closure)

où lasvm_kernel_t est défini comme:

typedef double (*lasvm_kernel_t)(int i, int j, void* closure);

Maintenant, si j'envoie une méthode définie dans une classe à lasvm_kcache_create:

double cls_lasvm::kernel(int i, int j, void *kparam)
...
lasvm_kcache_t *kcache=lasvm_kcache_create(&kernel, NULL);

Je reçois: "impossible de convertir de ‘double (cls_lasvm::)(int, int, void)’ à ‘double ()(int, int, void)’"

Que dois-je faire?

OriginalL'auteur paul simmons | 2009-11-15