Puntero a función a función miembro

Quiero usar una biblioteca (nlopt) que tiene una función set_min_objective que lleva un puntero a una función numérica myfunc y encuentra su mínimo. Me gustaría crear una clase que contendrá una función miembro adecuadamente inicializada. set_min_objective luego encontraría un óptimo en una instancia específica (myP en el siguiente ejemplo). La secuencia de llamada es:

opt.set_min_objective(myfunc, NULL);

y me gustaría usar algo como:

opt.set_min_objective(myP.f, NULL);

El error que obtengo al compilar esto es:

main.cpp: In function 'int main()':
main.cpp:79:34: error: no matching function for call to 'nlopt::opt::set_min_objective(<unresolved overloaded function type>, NULL)'
../lib/nlopt.hpp:335:10: note: candidates are: void nlopt::opt::set_min_objective(double (*)(unsigned int, const double*, double*, void*), void*)
../lib/nlopt.hpp:342:10: note:                 void nlopt::opt::set_min_objective(double (*)(const std::vector<double>&, std::vector<double>&, void*), void*)
../lib/nlopt.hpp:368:10: note:                 void nlopt::opt::set_min_objective(double (*)(unsigned int, const double*, double*, void*), void*, void* (*)(void*), void* (*)(void*))

¿Cuál sería la solución más sencilla para que set_min_objective acepte myP.f como un puntero normal para funcionar? Tenga en cuenta que myP.f y myfunc tienen los mismos argumentos y tipos de valores de retorno.

Gracias,

JD

Respuestas a la pregunta(1)

Su respuesta a la pregunta