Usando una función miembro de la clase C ++ como una función de devolución de llamada C

Tengo una biblioteca de C que necesita una función de devolución de llamada para ser registrada para personalizar algunos procesos. El tipo de la función de devolución de llamada esint a(int *, int *).

Estoy escribiendo un código C ++ similar al siguiente e intento registrar una función de clase C ++ como la función de devolución de llamada:

<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>

El compilador arroja el siguiente error:

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

Mis preguntas:

En primer lugar, es posible registrar una función de miembro de la clase de C ++ como la que estoy tratando de hacer y, de ser así, ¿cómo? (Leí 32.8 enhttp://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html. Pero en mi opinión no resuelve el problema.¿Hay alguna forma alternativa / mejor de abordar esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta