Bonjour
Peut on voir ceci comme un pointeur sur fonction prenant un int et renvoyant un pointeur sur fonction prenant un int et renvoyant un int ?
merciCode:int (*(*foo(int)))(int);
Version imprimable
Bonjour
Peut on voir ceci comme un pointeur sur fonction prenant un int et renvoyant un pointeur sur fonction prenant un int et renvoyant un int ?
merciCode:int (*(*foo(int)))(int);
Vous avez 4H.
Non, moins (j'espère avoir une réponse avant lol).
réponse:
Code:int (*(*ff)(int))(int);
C'est là qu'on voit l'utilité des typedefs...
Code:
1
2
3 typedef int (*INTPROC)(int); typedef INTPROC (*INTPROCPROC)(int); INTPROCPROC foo;
auto de C++0x :mrgreen:
Ba si je me trompe pas dans ton premier poste, c'est une déclaration d'une fonction qui prend un int en argument et retourne un pointeur de pointeur d'une fonction qui prend un int en argument et retourne un int.
Mais on est tous d'accord que l’intérêt de ce genre de truc est très limité.
3DArchi sale tricheur :D
Je sens que ce petit mot clé va faire des ravages sur les petits nouveaux qui n'aiment pas la rigueur, ça va être simple pour débugger ce genre de mélasse maintenant ><
:mouarf:
Je pense surtout qu'à la base la question ne relève pas d'un cas terrain. Ou alors d'un mauvais design puisqu'à la place d'un pointeur de fonction, on ferait mieux dès le départ de travailler soit en générique avec un 'callable' soit avec un std::function. Peut être qu'en C la question pourrait se poser.
Personnellement, je ne juge pas la qualité d'un programmeur en C++ avec de telles horreurs... :aie:
+1 pour auto et boost::function ! ;)
=> Fonction prenant en paramètre un entier retournant un pointeur de pointeur de fonction qui prend en parmamêtre un entier et retourne un entierCode:int (*(*foo(int)))(int);
=> Pointeur de fonction prenant en paramètre un entier retournant un pointeur de fonction prenant en paramètre un entier retournant un entierCode:int (*(*ff)(int))(int);
Prends une feuille et un crayon et fait le morceaux par morceaux, on finit pas y arriver ... mais quel est l'interet ?