Ponteiro para funcionar na função de membro
Eu quero usar uma biblioteca (nlopt) que tem uma função set_min_objective que leva um ponteiro para uma função numérica myfunc e encontrar o seu mínimo. Gostaria de criar uma classe que contenha uma função de membro adequadamente inicializada. set_min_objective encontraria um ótimo em uma instância específica (myP no exemplo abaixo). A sequência de chamadas é:
opt.set_min_objective(myfunc, NULL);
e eu gostaria de usar algo como:
opt.set_min_objective(myP.f, NULL);
o erro que recebo ao compilar isso é:
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*))
Qual seria a solução mais simples para ter set_min_objective aceita myP.f como um ponteiro normal para funcionar? Note que myP.f e myfunc têm os mesmos argumentos e tipos de valor de retorno.
Obrigado,
JD