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 : 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;
};
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!