入力ファイル ストリームの同期を実装固有にする理由は何ですか。ストリームが外部デバイスからのコンテンツでバッファを (部分的または完全に) 満たすことは明らかだと思いませんか? 標準 C++ IOStreams と Locales で次のように述べています。
出力ファイルの同期は、 への呼び出しによって実行されるファイルにバッファの内容を書き込むことによって、内部バッファを空にすることとして定義されます
overflow()
。入力ファイルの場合、同期の意味は標準では定義されていませんが、IOStreams ライブラリの実装に依存します。
実装を対称にして、入力ファイル ストリームのバッファに を呼び出させるだけで十分ではないでしょうunderflow()
か? この決定の理由は何でしたか?