basic_ostream::flush

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秒後
5秒後

5秒後に"str2"が出力される。

Sample/cpp/basic_ostream/flush/src/basic_ostream at master · bg1bgst333/Sample · GitHub