Salut!
J'ai créer une macro pour simplifier la syntaxe lors de la création de fonctions de callback pour la résolution de la surcharge de fonction sur les adresses des fonctions, ce qui donne ceci :
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #define REGISTER_FUNC(funcName, FID, TYPE, __VA__ARGS_, args...) \ void (TYPE::*f##funcName##FID)(__VA__ARGS_) = &TYPE::vt##funcName; \ ....
funcName et FID sont juste des identifiants que j'utilise pour stocker le pointeur sur fonction.
TYPE est le type de classe de la fonction membre.
VA_ARGS la liste des types des arguments de la fonction.
Et args... sont les valeurs des arguments de la fonction.
Mais j'ai une erreur en compilation lors de la déclaration du pointeur de fonction, on dirait que la macro foire en tout cas elle ne me donne pas le code que j'attendais.
Et je me retrouve avec cette erreur en compilation ;
Merci d'avance pour l'aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 main.cpp|78|error: cannot declare pointer to void member main.cpp|78|error: cannot convert C* to void C::* in initialization
Partager