J’écoutais un discours de google d’Andrei Alexandrescu sur le langage de programmation en D lorsqu’il a jeté un seul article sur le fiasco “endl”. Je pensais juste que endl était la méthode préférée pour indiquer la fin d’une ligne et vider le tampon pour un stream. Pourquoi est-ce considéré comme un fiasco? Ne devrais-je pas l’utiliser dans mon code?
Republier de mon commentaire:
(Je suppose) Il veut simplement dire que beaucoup de programmeurs C ++, en particulier les nouveaux, utilisent std::endl
place de '\n'
pour newline, vidant inutilement fréquemment et rendant potentiellement les performances de leur programme anormales.
C’est-à-dire que la plupart des gens apprennent que std::endl
est la manière canonique d’insérer une nouvelle ligne dans un stream, même s’il est très rarement nécessaire ou approprié de la vider.
C’est l’opinion de certaines personnes (* cough *) que std::endl
ne devrait même pas être dans la norme, car il est si rarement approprié et pas une économie de frappe significative par rapport à '\n' << std::flush
toute façon.
TL; DR (s) :
std::endl
ne vous achète rien, sauf généralement moins bonnes performances et généralement plus de frappe.