Bonjour à tous,
peut-être est-ce la fatigue du vendredi soir mais je ne parviens pas à trouver une solution à un problème qui s'est posé à moi aujourd'hui...
J'aimerais définir une classe de foncteur qui prenne un nombre N général de paramètres double et qui retourne un double. Bref, une fonction de R^N dans R à laquelle je pourrais ajouter les petites libertés que permet le design foncteur.
Grosso modo, j'ai en tête quelque chose qui devrait ressembler à ça:
C'est le genre de chose qui fait nécessairement penser à des variadic templates... et je vois bien comment faire avec cela pour l'opérateur mais pas pour le typedef sur une fonction à N paramètres double retournant un double...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 template<unsigned int N> class Fonction { public: typedef double (*FPtr)(double, ... , double); /* N arguments */ Fonction(FPtr fonction) : m_fonction(fonction) {} /* Application de la fonction */ double operator()(double x1, ... , double xN) { return m_fonction(x1, ... , xN); } private: FPtr m_fonction; };
Il y a peut-être une solution toute bête que je ne vois pas ([Mode Foutage de Gueule activé] ... je ne suis pas suceptible). Si quelqu'un a une piste, je suis preneur!
Merci et bon week-end à tous!
Partager