Bonjour,
dans le cadre de ma thèse, je doit utiliser les fonctions présentes dans Numerical Recipes pour optimiser différentes choses.
J'ai des objets qui calculent le coût pour mes méthodes d'optimisation, et donc pour voir passer ces objets à Numerical Recipes, j'utilise un functor (je précise que c'est une première pour moi...)
J'ai donc créé une classe functor
Sachant que la méthode d'optimisation attend une fonction du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class functor { ...... public : DP operator()(const Vec_I_DP &) { ...} }
Dans mon code, au moment d'appeler la méthode je fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DP function(const Vec_I_DP &)
J'ai essayé plusieurs manières pour passer ma méthode en arguement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .... functor * l_p_functor = maFrabriqueDeFunctor.getFunctor();
powell(......,(*l_p_functor)()) => erreur par le compilateur, qui me dit que la classe n'a pas de méthode operator() donc j'essaie avec :
powell(......,(*l_p_functor)(const Vec_I_DP &)) => et là il me sort une erreur de syntaxe...
Comment je fais pour passer le pointeur d'une fonction avec des arguments ???
Merci beaucoup à tous ceux qui prendront le temps de lire ce message
Partager