Bonjour,

J'ai crée une fonction qui en génère une autre de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
std::function<double (const t_vector &)> get_fun(double c)
{
   return [c](const t_vector & x) { return c*x; };
}
À partir de cela, je souhaiterais obtenir un pointeur sur fonction double (*ptr) (const t_vector &).

Pour se faire, j'ai fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
std::function<double (const t_vector &)> f = get_fun(c);
 
typedef double (*MyFun) (const t_vector &);
 
MyFun * ptr = f.target<MyFun>();
 
cout << (*ptr)(vec) << endl;
Malheureusement, j'obtiens l'erreur : erreur de segmentation (core dumped).

De toute évidence, les types ne doivent pas correspondrent...

Help !

En vous remerciant d'avance,

Nicolas.