Bonjour,
Je débute avec les foncteurs et j'aimerais un coup de main pour le problème suivant :
Une classe que j'utilise (moveset) attend des pointeurs de fonctions en argument du constructeur.
J'aimerais lui passer des foncteurs que j'ai créé, avec l'opérateur () ayant les même paramètres et sorties que les pointeurs de fonctions attendus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 moveset(particle (*pfInit)(rng*), void (*pfNewMoves)(long, particle &, rng*), int (*pfNewMCMC)(long, particle &, rng*));
Le compilateur refuse car le foncteur n'est pas reconnu comme pointeur de fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class FuncInitialize { public: particle operator () (rng *pRng); }; class FuncMove { public: void operator () (long lTime, particle & lastParticle, rng *pRng); }; FuncInitialize fInitialize; FuncMove fMove; moveset my_move_set(&fInitialize, &fMove, NULL);
Merci de votre aide
Partager