Andrei Alexandrescu による D プログラミング言語に関する Google トークを聞いていたとき、彼は "endl" の大失敗について 1 つのライナーを吐き出しました。endl は、行の終わりを示し、ストリームのバッファーをフラッシュするための推奨される方法だと思いました。なぜそれが大失敗と見なされるのですか?コードで使用しないでください。
10787 次
1 に答える
79
(私は推測します)彼は、多くの、特に新しいC++プログラマーが改行std::endl
の代わりに盲目的に使用'\n'
し、不必要に頻繁にフラッシュし、プログラムのパフォーマンスを低下させる可能性があることを意味しています。
つまり、ほとんどの人は、ストリームに改行を挿入する標準的な方法であるstd::endl
と教えられています。
一部の人々の意見 (*咳*)ではstd::endl
、標準にさえ含まれるべきではありません'\n' << std::flush
。
TL;DR (秒) :
- 最終的には、通常はパフォーマンスが低下し、通常はタイピングが増えることを除いて、
std::endl
何も得られません。 - それには用途がありますが、ほとんどの大規模なコードベースでの使用頻度が示唆するよりもかなりまれです...
- その有用性は非常に疑わしく、どこにでもあるというのはばかげています。まさに大失敗です!
于 2011-03-30T21:22:45.527 に答える