Usando uma função de membro de classe C ++ como uma função de retorno de chamada C

Eu tenho uma biblioteca C que precisa de uma função de retorno de chamada a ser registrada para personalizar algum processamento. O tipo da função de retorno de chamada éint a(int *, int *).

Estou escrevendo código C ++ semelhante ao seguinte e tentar registrar uma função de classe C ++ como a função de retorno de chamada:

<code>class A {
  public:
   A();
   ~A();
   int e(int *k, int *j);
};

A::A()
{
   register_with_library(e)
}

int
A::e(int *k, int *e)
{
  return 0;
}

A::~A() 
{

}
</code>

O compilador lança o seguinte erro:

<code>In constructor 'A::A()',
error:
 argument of type ‘int (A::)(int*, int*)’ does not match ‘int (*)(int*, int*)’.
</code>

Minhas perguntas:

Primeiro de tudo é possível registrar uma função de memeber de classe C ++ como eu estou tentando fazer e se sim como? (Eu leio 32,8 ahttp://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html. Mas na minha opinião isso não resolve o problema)Existe uma maneira alternativa / melhor de lidar com isso?

questionAnswers(5)

yourAnswerToTheQuestion