Bonjour,

j'aimerais écrire une classe me permettant de gérer des sorties, sur écran ou sur fichier, formatées pour des besoins spécifiques (en particulier des log files).

Pour le moment, on utilise la sortie standard pour afficher un objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
std::cout << objet << std::endl;
Je souhaite définir une classe, disons Output, me permettant d'écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
output << objet << std::endl;
pour toute instance output de Output.
Je veux également pouvoir indiquer en début de programme si output est un fichier (ofstream) ou la sortie standard (cout).
Je veux également être en mesure d'indiquer des préférences d'écriture à la manière de setprecision (en particulier des niveaux de verbosité).

Idéalement, je voudrais que Output soit un ostream mais je me demande si tenter d'hériter proprement de ostream est vraiment une bonne idée.

Quelle est la meilleure approche selon vous?

Merci pour votre aide!