Bonjour,

Envoyé par
white_tentacle
Je ne comprends pas pourquoi tu as besoin de macros. Les paramètres par défaut ne te suffisent pas ? J'ai loupé un truc ?
line contiendra la ligne où est déclarée le constructeur hors je pense que c'est la ligne d'invocation du constructeur qui est souhaitée ici.
Pour les macros tu peux tenter quelque chose avec les arguments variables de macros :
#define A( ... ) (__VA_ARGS__,__FILE__,__LINE__)
mais ce genre de macros ne résoudra pas tous les problèmes :
1 2
| A * pA = new A(0,""); // Ok
A a(0,""); // pas Ok |
Sinon, tu peux te servir d'une macro pour réduire __FILE__,__LINE__ :
1 2 3 4 5
| #define FANDL __FILE__,__LINE__
// ...
A a(1,"1",FANDL);
A b("2",FANDL);
A * pA = new A(3,"3",FANDL); |
Partager