[std::function] fonction .target<Type>()
Bonjour,
J'ai crée une fonction qui en génère une autre de la manière suivante :
Code:
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:
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 ! :roll:
En vous remerciant d'avance,
Nicolas.