Tod*_*Tod 52 c++ iostream endl
我正在听Andrei Alexandrescu关于D编程语言的谷歌谈话,当时他抛出一个关于"endl"惨败的内线.我只是认为endl是表示行结束并刷新流缓冲区的首选方式.为什么它被视为惨败?我不应该在我的代码中使用它吗?
ild*_*arn 74
转发自我的评论:
(我假设)他只是意味着许多(特别是新的)C++程序员std::endl
盲目地使用而不是'\n'
换行,不必要地频繁刷新并且可能使他们的程序性能变得糟糕.
即,大多数人被教导这std::endl
是将新行插入流中的规范方式,即使很少需要或适当地刷新它.
一些人的意见(*咳嗽*)std::endl
甚至不应该在标准中,因为它很少适合,而且无论如何都不会显着节省打字'\n' << std::flush
.
TL; DR(s):
std::endl
除了通常更差的性能和通常更多的打字之外,什么都不买.