export class AppComponent {
clone(){
Need to clone #component-outer div and append below the last instance
of that div, then append the div name on the cloned element.
}
}
之后 std::flush
。当我第一次看到这个时,我的想法是,在查看std::endl
和std::endl
的描述是多余的:
http://en.cppreference.com/w/cpp/io/manip/endl
http://en.cppreference.com/w/cpp/io/manip/flush
以下是我在遗留源代码中看到的一个示例:
std::flush
但是,由于许多高级软件开发人员多年来都看过这个代码,我想知道是否有一些我遗漏的细节。在std::cout << "Generic Notification" << std::endl << std::flush;
之后有std::flush
是否有任何目的?
答案 0 :(得分:11)
没有任何目的。
如果我不得不推测为什么遗留代码包含这些行,那么有一些可能性,从(我认为是)最可能的场景开始:
std::flush
添加了显式调用,高级开发人员认为这不是需要修复的问题std::endl
实现没有触发刷新,这意味着您的高级开发人员(正确地)理解了这是必要的std::endl
来触发刷新std::endl
。答案 1 :(得分:5)
在符合标准的环境中,std::flush
在此代码中没有用处。
无论是谁写的都不完全理解std::endl
的语义,或者正在解决其编译器或执行环境的某些限制。
答案 2 :(得分:4)
我会添加其他有效的答案,通常情况下, <{em> std::flush
或std::endl
的目的都不是很好。
基本上,std::endl
=开始一个新行+刷新流。但是,很多人倾向于用std::endl
来结束他们的行,因为它听起来是对的&#34; - 结束这条线。但实际上我们很少需要刷新输出流。有时候我们这样做(例如,当我们期待用户对字符串的回复时,或者以最小的延迟监视我们的输出很重要) - 但这是例外,而不是规则。
所以,可能需要一些习惯,但我们应该默认为:
std::cout << bunch_of_stuff << '\n';
那就是那个!