J'aime la facilité avec laquelle il est possible d'écrire quelques variables sur la sortie console en C++ en utilisant qDebug
de Qt :
int a = b = c = d = e = f = g = 1;
qDebug() << a << b << c << d << e << f << g;
Résultat :
1 1 1 1 1 1 1
En comparaison, l'utilisation de std::cout
m'obligerait à ajouter l'espacement et la nouvelle ligne manuellement pour obtenir le même résultat :
std::cout << a << " " << b << " " << c << " " << d << " " << e << " " << f << " " << g << "\n";
Bien que j'utilise souvent Qt, je travaille parfois sur des projets où l'ajout du framework Qt juste pour avoir accès à qDebug serait excessif. Et bien qu'il ne soit pas difficile d'écrire une nouvelle classe qui se comporte de manière similaire à qDebug
je me demande s'il existe une alternative établie à la std::cout
avec un comportement similaire à celui de qDebug
existe déjà ?
Edita: Ce que je recherche, c'est idéalement un établi bibliothèque (ou snippet, mais je préfère quelque chose d'existant plutôt que de créer ma propre bibliothèque) que je peux toujours utiliser comme solution de référence lorsque j'ai besoin de quelque chose comme ça. Il peut s'agir d'un en-tête uniquement, d'une grande bibliothèque de journalisation très utilisée et bien testée, ou d'un simple petit extrait. L'essentiel est qu'il soit suffisamment petit et/ou standard pour que d'autres collaborateurs soient d'accord pour l'inclure dans un projet uniquement à des fins de débogage/journalisation.
Edit 2 : Pour clarifier : Ce serait génial d'avoir une solution qui insère à la fois des espaces entre les variables et des retours à la ligne pour chaque déclaration :
myDebug << 1 << 2 << 3;
myDebug << 4 << 5 << 6;
Il devrait revenir :
1 2 3
4 5 6