connaitre le nom d'une variable

connaitre le nom d'une variable - C++ - Programmation

Marsh Posté le 28-05-2007 à 18:19:20    


je me fais un tit projet en C++, et là je commence à crouler sous les classes, alors pour débuguer mon truc au mieux, j'ai envie de me faire un système de log :  
ca sauverait le nom de chaque méthode appellée et la manière dont on en est sorti...
jusque là pas de problème, mais pour que ca soit plus simple, faudrait aussi savoir qui a appellé la méthode...
 
Donc j'ai besoin de connaitre le nom de la variable qui fait appel à la méthode.
 
du genre si je fais plop->fonction()
je veux pouvoir afficher "plop" dans la fonction  
pour afficher dans mon log : "plop appelle fonction"
pour le moment j'ai que les adresses (this), donc c'est pas top...
 
si quelqu'un a une idée...
 
mici
 

Reply

Marsh Posté le 28-05-2007 à 18:19:20   

Reply

Marsh Posté le 28-05-2007 à 18:27:01    

Tu peux toujours donner un nom à chaque objet, mais il n'y a rien de prévu pour cet usage en standard, donc c'est à faire à la mano.

Reply

Marsh Posté le 28-05-2007 à 18:39:03    

Ouai, du genre :
objet01->nom="objet01"
en mettant un attribut nom, mais bon, pas super pratique^^
 
une autre idée ? (automatique hein)

Reply

Marsh Posté le 28-05-2007 à 18:57:05    

Non, y'a pas de reflexion en C++ standard. Si une lib existe, je n'en connais pas :/

Reply

Marsh Posté le 09-06-2007 à 16:12:26    

Ou alors faire ca a coup de macros.... Sinon, dans le debugger, y'a un truc qui s'appelle "Call Stack" .

Reply

Marsh Posté le 09-06-2007 à 17:19:34    

typeid(tontruc).name()  
 
Spa parfait mais c'est un début (mais sinon euh... c'est bien les debugger :p)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 09-06-2007 à 17:31:56    

type_info::name() ne renvoit pas le nom de la classe plutôt que celle de la variable?

Reply

Marsh Posté le 09-06-2007 à 17:43:55    

arf voui, j'avais pas fait gaffe qu'il voulait le nom de variable...


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 10-06-2007 à 10:01:30    

installe un debugger. et une API de logging qui fera tout toute seule.

Reply

Sujets relatifs:

Leave a Replay

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