Merci :
Pour ton premier problème, le seul moyen que je vois est de jouer avec la spécialisation des templates. Ce qui implique -- mais tu devais déjà le savoir -- que le deuxième argument devra toujours être constant.
En fait je ne vois pas de quel genre de solution tu parle, et de plus, mes 2 paramètres sont variables ...
Je peux procéder ainsi sinon, mais ca ne résoud pas le problème, car ca me génère un "if", même lorsque je veux totalement eradiqué ce genre de log :
#define Log(p) if(p=="WARNING" || p =="ERROR") std::cout << p << std::endl ;
Pour le deuxième problème, le seul moyen d'utiliser __FILE__ et __LINE__ c'est que l'expansion de Log les contiennent.
Je me suis mal exprimé, car ca , j'en suis bien au courant 
Quand à la l'envoi du message, soit tu le synchronise avec la destruction d'un objet temporaire créé par Log (ce qui a l'inconvénient de ne pas pouvoir bâtir un message en plusieurs fois). Soit tu le fais quand ton streambuf recois un flush.
Ca, ca demande réflexion parcontre
je vais voir si il y a moyen de faire qquchose comme ca, sans alourdir la syntaxe de mon log .
Partager