Função de membro da classe C ++ callback
Eu tenho o seguinte problema. Eu tenho uma função de uma biblioteca externa (que não pode ser modificada) assim:
void externalFunction(int n, void udf(double*) );
Gostaria de passar como a função udf acima de um membro da função de uma classe existente. Por favor, olhe o seguinte código:
// External function (tipically from an external library)
void externalFunction(int n, void udf(double*) )
{
// do something
}
// User Defined Function (UDF)
void myUDF(double* a)
{
// do something
}
// Class containing the User Defined Function (UDF)
class myClass
{
public:
void classUDF(double* a)
{
// do something...
};
};
int main()
{
int n=1;
// The UDF to be supplied is myUDF
externalFunction(n, myUDF);
// The UDF is the classUDF member function of a myClass object
myClass myClassObj;
externalFunction(n, myClassObj.classUDF); // ERROR!!
}
Não posso declarar a função de membro classUDF como uma função estática; portanto, a última linha do código acima resulta em um erro de compilação!