Pointeur de fonction à paramètres variables
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:
Code:
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;
}; |
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...
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!