cast sur un pointeur de fonction

cast sur un pointeur de fonction - C++ - Programmation

Marsh Posté le 20-07-2009 à 11:28:20    

Hi,
 
Je veux faire un tableau de pointeur sur fonction membre
typedef double (class::*p)() const;
 
p tp[4];
 
cependant j'ai une des fonctions membres qui retourne un int et non un double
comment faire le cast ?
 
tp[2]=(???)(class::fonction) // en faite ici je veux utiliser un pointeur sur fonction membre sur l'instance d'un objet sépcifique, donc mon code est faux tel qu'il est écrit ici
 
 
 
merci


Message édité par Glock 17Pro le 20-07-2009 à 11:38:02
Reply

Marsh Posté le 20-07-2009 à 11:28:20   

Reply

Marsh Posté le 20-07-2009 à 11:35:04    

ton cast n'a pas de sens.

Reply

Marsh Posté le 20-07-2009 à 11:37:35    

oui, par rapport à mon edit ?

Reply

Marsh Posté le 20-07-2009 à 14:31:06    

Il suffit de faire une fonction unique pour les 2  cas. Soit tu retournes un union, soit une structure, ou encore autrement, tu passes par un paramètre supplémentaire.

Reply

Marsh Posté le 20-07-2009 à 14:52:20    

pas super l'edit pour ceux qui débarquent...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 20-07-2009 à 15:25:53    

ou tu renvois un boost::variant

Reply

Marsh Posté le 20-07-2009 à 18:49:43    

Je ne propose jamais boost par défaut car tout le monde ne peut pas forcément l'intégrer facilement (surtout en dev embarqué), mais outre ce souci, c'est surement la meilleure solution.
 

Reply

Marsh Posté le 21-07-2009 à 08:17:32    

xilebo a écrit :

Je ne propose jamais boost par défaut car tout le monde ne peut pas forcément l'intégrer facilement (surtout en dev embarqué), mais outre ce souci, c'est surement la meilleure solution.


 
On est pas en C, donc je propose la solution propre.
Ensuite, je pars du principe que si rien n'ai dit dans le PO, on est sur des machines standards et pas de l'embarqué :p
Et bon, boost compile et fontionen tres bien sur des trucs genre ARM et CELL donc ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed