Pendant mon temps libre, j'essaie de concevoir une petite biblio de log. Le mieux auquel je sois arrivé concernant les flux est un truc du style:
logger.trace().stream() << "salut " << "le monde";
Théoriquement on devrait pouvoir le raccourcir en
logger.trace() << "salut " << "le monde";
mais j'ai eu des bugs et j'ai laissé tomber pour un temps.
C'est un problème plus compliqué qu'il n'y parait, il ne suffit pas de dériver d'une classe stream quelconque, qui plus est il faut penser à l'intégrité d'un message de log. La syntaxe suivante est purement illogique:
logger << "salut " << "le monde";
Du point de vue du compilo ça correspond à deux appels de fonction, donc deux messages alors que ça n'en forme qu'un seul.
Partager