Skip to content

Commit 610b4e4

Browse files
committed
observable_checkpoint : coutやfstreamの扱いを記載 #1418
1 parent 901f332 commit 610b4e4

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

reference/utility/observable_checkpoint.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ int main() {
4848
`std::observable_checkpoint()`の明示的な呼び出しに加え、以下の操作も暗黙的に観測可能チェックポイントを設置する:
4949

5050
- C標準の入出力関数([`std::printf()`](/reference/cstdio/printf.md)[`std::fwrite()`](/reference/cstdio/fwrite.md)など)のうち、ファイルへのデータ書き込みを行う関数呼び出しからの復帰
51-
- [`std::basic_filebuf`](/reference/fstream/basic_filebuf.md)のオーバーフロー操作(出力シーケンスへの書き込み完了時)
51+
- デフォルトの[`sync_with_stdio(true)`](/reference/ios/ios_base/sync_with_stdio.md)の状態では、[`std::cout`](/reference/iostream/cout.md)などの標準ストリームは`stdout`と同期しているため、これに該当する
52+
- [`std::ofstream`](/reference/fstream/basic_ofstream.md)などのファイルストリーム出力時の[`std::basic_filebuf`](/reference/fstream/basic_filebuf.md)のオーバーフロー操作(バッファの内容をファイルに書き出した時点)
5253
- Unicode出力時の[`std::print()`](/reference/print/print.md) / [`std::println()`](/reference/print/println.md)の内部出力関数[`std::vprint_unicode()`](/reference/print/vprint_unicode.md)によるターミナルへの書き込み([`<ostream>`](/reference/ostream.md)版および[`<print>`](/reference/print.md)版)
5354

5455
上記の例では`std::printf()`がC標準の入出力関数であるため、(1)の呼び出しの復帰が暗黙の観測可能チェックポイントとなり、`"Hello, "`の出力は(2)の未定義動作によって遡って消去されない。

0 commit comments

Comments
 (0)