Je dois ajouter automatiquement le nom de la méthode à certains messages de journalisation. J'utilise __FUNCTION__
pour le faire mais il génère le nom complet de la méthode (namespace :: class: method). Donc, cela gaspille beaucoup d'espace et rend les journaux moins lisibles. Est-il possible d'ajouter uniquement le nom de la méthode dans une macro, sans qualificatifs inutiles?nom de la méthode de génération dans une macro
2
A
Répondre
1
Si votre code d'enregistrement ressemble à ceci:
#define LOGCALL \
clog << "Called " << __FUNCTION__ << endl;
alors vous pouvez simplement écrire une fonction globale pour couper le nom de fonction selon les besoins et dire:
#define LOGCALL \
clog << "Called " << MyTrim(__FUNCTION__) << endl;
1
Ecrire une fonction qui prend char * argument et renvoie un pointeur sur le nom de la fonction. ensuite écrire
MyFunction(FUNCTION)
Au lieu de
FUNCTION
Cela a aussi l'avantage que vous pouvez passer dynamiquement entre les noms courts et longs.