私は Dプログラミングに関するAndrei Alexandrescuによるグーグルトーク 言語を聞いていました。彼は「endl」の大失敗について1つのライナーを投げました。私は、endlが行の終わりを示し、ストリームのバッファーをフラッシュするための好ましい方法だと思っていました。なぜそれは大失敗と見なされますか?コードで使用するべきではありませんか?
私のコメントからの再投稿:
(私は推測します)彼は、多くの、特に新しいC++プログラマーが改行にstd::endl
の代わりに'\n'
を盲目的に使用し、不必要に頻繁にフラッシュし、プログラムのパフォーマンスをひどくする可能性があることを意味します。
つまり、ほとんどの人は、std::endl
がthe改行をストリームに挿入するための標準的な方法であると教えられていますが、それは非常にまれです必要またはそれをフラッシュするのに適切です。
std::endl
が標準に含まれるべきではないという意見(*咳*)もあります。これは、適切なことはめったになく、重要な入力の節約ではないためです。 '\n' << std::flush
とにかく。
TL; DR(s):
std::endl
は、通常はパフォーマンスが悪い、通常はもっと入力する以外は何も購入しません。