Um problema de ponteiro de função. Como eficientemente interface com a API C (ou seja, GSL) da classe C ++?
Esta pergunta parece ter sido feita várias vezes antes, por exemploaqui1, aqui2 eaqui3.
O que estou tentando fazer é definir o membrofunction
do C-Structgsl_function
para uma função de membro da minha classe.
class MyClass{
double foo(double x)
{
return ...;
}
double bar(double x)
{
...
gsl_function F;
// Problem I cant do this (compiler error)
F.function = &(this->foo);
}
};
O terceiroligação acima fornece uma solução, eu acho que é baseado na abordagem wrapper descritaaqui4.
Então minha pergunta é que posso fazer melhor. Existe um caminho mais fácil? Por exemplo, possivelmente usando a função Boost e objetos Bind.
Eu estou pesando a opção de usar um wrapper gsl, como o2scl. Mas sou um pouco relutante, já que posso pagar o preço mais tarde se o invólucro não for bem mantido. Alguma sugestão?