flushは、バッファをフラッシュする。
basic_ostream::flush - cpprefjp C++日本語リファレンス
C言語のfflushのトピックのC++版である。
C言語では、'\n'など改行があるとフラッシュされるので、'\n'を出力せずにsleepさせた。
C++でも、std::endlなど改行があるとフラッシュされるので、std::endlを出力せずにsleepさせる。
で、そのsleepの前に、std::cout.flushでいったんフラッシュする。
こうすると、
実行直後に"str1"が出力されて、
5秒後に"str2"が出力される。
Sample/cpp/basic_ostream/flush/src/basic_ostream at master · bg1bgst333/Sample · GitHub