|
Bas de page | |
---|---|
Auteur | Sujet : ça existe un ostream vide/bidon ? |
Glock 17Pro | ça existe en C++ un stream qui ne fasse rien ?
|
Publicité | Posté le 02-06-2009 à 07:55:32 |
Joel F Real men use unique_ptr | non mais c'est assez simple à faire en héritant de stream je pense |
theshockwave I work at a firm named Koslow |
Joel F Real men use unique_ptr | il ferait qd mm tout son travail en interne. Tu fais un stream qui fait rien dans ses insertions/extractions et zou |
Taz bisounours-codeur | Même si t'hérites, si tu veux tout transformer en NOP, il faudrait tout redéfinir inline |
Taz bisounours-codeur | Tu ne veux pas plutôt réutiliser de l'existent ? |
Joel F Real men use unique_ptr | sauf que genre t'e as le 1er à y penser :E
|
Glock 17Pro | ok |
Publicité | Posté le 03-06-2009 à 07:36:48 |
theshockwave I work at a firm named Koslow | si ca correspond à ce que j'ai vu dans tes autres posts, tu calcules en template un booléen à partir de ton niveau de log, donc pourquoi ne pas avoir une fonction log< bool LevelEstAssezHaut >( const string& message ) qui, quand l'argument template vaut vrai, logge vraiment et quand il vaut faux, ne fait rien ? --------------- last.fm |
theshockwave I work at a firm named Koslow | pourquoi ne pas faire plutôt :
--------------- last.fm |
Glock 17Pro | en testant avec un if dans la macro? |
theshockwave I work at a firm named Koslow |
Message édité par theshockwave le 03-06-2009 à 13:37:23 --------------- last.fm |
Glock 17Pro | oui mais le problème c'est que le level pourlequel on veut filtré peut changer d'une execution à l'autre, là j'ai l'impression qu'avec ta macro, le code est figé, tous les messages de niveau égale à DEBUG sont filtrés, comment faire si je les veux par la suite, tout le temps changer à la main? pas très pratique |
theshockwave I work at a firm named Koslow | mais dans ce cas, ton template ne pourra pas non plus s'en sortir ! Le choix du template sera nécessairement fait à la compilation.
--------------- last.fm |
Joel F Real men use unique_ptr | et mates le proposal de Boost.Log aussi, y a pas mal d epb pas clair dans ce genre de tache. |
Un Programmeur | J'ai déjà écrit une série de variations sur ce thème. La structure que j'ai employée les dernières fois était une variation sur le thème:
Le if();else est un bon vieux truc pour éviter de pairer un else qui suit la macro avec le if de la macro. Si needToLog() est en fait constant, les compilateurs que j'ai testé vire le code mort mais continuent à détecter les erreurs de syntaxe -- ça évite les log qui ne compilent plus quand on les active parce que le dernier type qui a fait des modifs ne les utilise pas. Ce peut naturellement être une variable (mise avec le débuggeur ou à l'initialisation avec une variable d'environnement) ou une fonction aussi compliquée que désiré. getStream() renvoie soit un ostream& dans les versions les plus simples ou une classe avec un operator<< template forwardant vers un ostream interne (comme ça on peut avoir un format différent pour les logs et les IO textes normales) avec un constructeur et un destructeur qui ajoute ce qu'on désire (timestamp pour le ctor, flush pour le dtor sont les applications évidentes). Le streambuf de l'ostream est ce que l'on veut. C'est lui qui gère le choix des destinations (fichier, console, fenêtre modale ou non, ou combinaison) Message édité par Un Programmeur le 03-06-2009 à 16:17:31 |
Sujets relatifs | |
---|---|
Executer une fonction quand on clique dans le vide | ostream_iterator |
count =>vide + selection sur 2 tables | VBS Tester si un dossier plus vieux de 7 jours existe et l'effacer |
[RESOLU]html align bidon | [VBS] Si Fichier existe... |
[Resolu] Détecter lorsque l'utilisateur n'a rien rentré dans un input? | Requête : un champs de plus si le premier est vide |
Mon site existe en partie grâce à vous, merci ! | mysqldump via PHP -> fichier vide ! |
Plus de sujets relatifs à : ça existe un ostream vide/bidon ? |