transformer foncteur en pointeur de fonction ?
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.
Code:
1 2 3
| moveset(particle (*pfInit)(rng*),
void (*pfNewMoves)(long, particle &, rng*),
int (*pfNewMCMC)(long, particle &, rng*)); |
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:
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); |
Le compilateur refuse car le foncteur n'est pas reconnu comme pointeur de fonction.
Merci de votre aide :D