|
Bas de page | |
---|---|
Auteur | Sujet : [Résolu] Appeler une fonction avec comme paramètre la fonction d'appel |
Publicité | Posté le 19-06-2007 à 11:56:00 |
deadalnix | Il te faut des pointeur sur des fonctions pour faire ce genre de trucs :
|
SkippyleGrandGourou | Oui. Je m'attendais plus à un truc générique qui aurait été équivalent à "this", mais c'est vrai que je pourrais tout simplement donner en argument de Warn() un pointeur de fonction adapté à chaque fois. Mes fonctions ayant un type différent, je serais obligé de les transtyper mais c'est pas bien grave puisque seul le nom m'intéresse, et ensuite (le déclic à eu lieu en parcourant un de tes liens (bien qu'il n'en parle absolument pas), donc merci ) faire un mapping entre la fonction et le warning.
|
franceso |
Dans ce cas là, plutôt que de t'embêter avec des pointeurs de fonctions transtypés, pourquoi ne pas passer à ta fonction tout simplement un identifiant (par exemple de type int) qui caractérise l'erreur
--------------- TriScale innov |
SkippyleGrandGourou |
Je sais pas, ça me semble trop confus, au moins dans le cas des entiers : il faudrait à chaque fois aller voir la liste des erreurs pour voir le message, faire attention à ce que l'entier ne soit pas déjà pris, ne pas se tromper d'entier... À la rigueur une chaine de caractères, c'est vrai que ça serait aussi (et même plus) simple que des pointeurs de fonction adaptés à chaque fonction (enfin je me comprends...), mais je trouve pas ça très élégant... C'est pour ça qu'à la base j'attendais un truc équivalent à "this" pour les fonctions, beaucoup plus générique. Je vais y réfléchir. PS : Un autre argument imparable est que j'ai un esprit tordu... Message édité par SkippyleGrandGourou le 19-06-2007 à 15:13:20 |
deadalnix | Avec une batterie de define tu peux faire un truc tres clair rien qu'en apssant des int franceso a raison. |
SkippyleGrandGourou |
Les "#define", c'est le Mal. Utiliser des int serait envisageable dans la mesure où plusieurs warnings seraient identiques. En l'ocurrence, le même warning n'apparait jamais deux fois, mais il peut y avoir plusieurs warnings différents par fonction. Je viens de compter :
Je pensais pas en avoir autant, mais tu vois, les int ça sera vite le bordel... Message édité par SkippyleGrandGourou le 19-06-2007 à 17:56:47 |
deadalnix | pfff les #define c'est le mal que si tu en fait n'imp'.
|
SkippyleGrandGourou | Autant utiliser un static const alors, non ? Mais bon, c'est pas le problème, je veux pas définir 80 variables juste pour ça. C'est aussi moche que mon "cout<<WARNING_JASAISPASQUOI<<endl;" (devrais p'têt mettre un cerr d'ailleurs), donc ça ne présente pas grand intérêt. Ce sera un équivalent de this ou rien. Donc rien. (À moins que je ne change brusquement d'avis, genre en pleine nuit après un vilain cauchemard où je me ferais agresser par des define en colère...) Message édité par SkippyleGrandGourou le 19-06-2007 à 18:21:19 |
deadalnix | static const cree une varaible en memoire, je ne vois pas ce que ca apporte dans ce cas . . .
|
Publicité | Posté le 20-06-2007 à 08:18:36 |
SkippyleGrandGourou | Ben un static const en global a le même effet qu'un define, non ? (Je sais, les variables globales c'est aussi le Mal...)
Message édité par SkippyleGrandGourou le 20-06-2007 à 14:02:51 |
deadalnix | Bon bah tant mieux si ca marche comme ca. Je connaissait pas __func__
|
SkippyleGrandGourou | À noter que __func__ est un standard du C99, pour des compilateurs ne le respectant pas ça peut être __FUNCTION__, ou autre chose, ou rien...
Merci pour la clarification.
|
BenO Profil: Chercheur | les macros cai surpuissant |
deadalnix | le #define peut avoir des effets pervers :
Message cité 1 fois Message édité par deadalnix le 20-06-2007 à 18:35:26 |
IrmatDen | Y'a les enums aussi qui sont trés bien pour définir un set d'erreurs possibles (pour cet exemple précis, parce que c'est trés bien pour définir n'importe quel set de "valeurs" ). |
boulgakov |
Message édité par boulgakov le 21-06-2007 à 00:38:36 |
Sujets relatifs | |
---|---|
fonction java pour le debit reseau | [Résolu][AJAX] server erreur 500 |
[RESOLU]-[PHP] - Affichage de caractérfe bizard lors d'un include | Paramètre dans un tableau |
[Eclipse RCP] org.eclipse.core.resources introuvable! Comment faire ? | [RESOLU] Récupérer la valeur d'un menu déroulant |
Eclipse RCP - Paramètre pour instanciation d'une Vue | fonction à corriger |
Sélectionner des entrées en fonction de la première lettre d'un champ | [résolu] Pourquoi flock ne demande pas un FILE* ? |
Plus de sujets relatifs à : [Résolu] Appeler une fonction avec comme paramètre la fonction d'appel |