c++ - sintaxis - como usar endl
¿Qué es el fiasco C++ iostream endl? (1)
Estaba escuchando una charla de Google de Andrei Alexandrescu sobre el lenguaje de programación D cuando lanzó un trazador de líneas sobre el fiasco "endl". Solo pensé que endl era la forma preferida de indicar el final de una línea y eliminar el buffer de una transmisión. ¿Por qué se considera un fiasco? ¿No debería usarlo en mi código?
Reposicionando de mi comentario:
(Supongo) Simplemente quiere decir que muchos programadores de C ++, especialmente los nuevos, usan std::endl
ciegas en lugar de ''/n''
para newline, enjuagando innecesariamente con frecuencia y potencialmente haciendo que el rendimiento de su programa sea abismal.
Es decir, a la mayoría de las personas se les enseña que std::endl
es la forma canónica de insertar una línea nueva en una secuencia, aunque rara vez es necesario o apropiado para tirarla.
Es la opinión de algunas personas (* tos *) que std::endl
ni siquiera debería estar en el estándar, ya que es muy rara vez apropiado y no representa un ahorro importante de tipeo con ''/n'' << std::flush
todos modos.
TL; DR (s) :
- Al final,
std::endl
no le compra nada, excepto por lo general, un peor rendimiento y generalmente más tipeo. - Tiene sus usos, pero son considerablemente más escasos de lo que su frecuencia de uso sugeriría en la mayoría de las grandes bases de código, por lo tanto ...
- Su utilidad es altamente cuestionable y su ubicuidad es absurda, ¡un verdadero fiasco!