J'ai beaucoup de code hérité qui utilise un pointeur de fonction comme un argument de la forme double (*f)(double)
. Maintenant, j'ai une exigence où j'ai besoin d'appeler cette fonction à partir d'une classe, mais la définition de la fonction utilise des variables membres. Que dois-je faire pour résoudre ce problème? Par exemple,pointeur de fonction avec des arguments connus
void legacy_function(double (*f)(double)) { .... }
class myclass {
double a;
double b;
double c;
void mymethod(...) {
// need to call legacy_function() such that it uses a and b with one unknown
// a+b*x
}
Notez que je ne peux pas modifier les définitions ou les déclarations dans le code existant.
J'espère que cela a du sens. merci pour vos suggestions ..
Si vous pouviez modifier le code existant, la fonction boost :: correspondrait. Voir http://www.boost.org/doc/libs/1_44_0/doc/html/function/tutorial.html#id1264562 –