最終更新日時:
が更新

履歴 編集

function
<fstream>

std::basic_filebuf::デストラクタ

~basic_filebuf() override;

概要

オブジェクトを破棄する。

効果

close()を呼び出す。 そこで例外が発生した場合、catchして何も行わない(再送出しない)。

事後条件

実装例

~basic_filebuf() override {
  try {
    close();
  } catch (...) {
  }
}

注意

このデストラクタ内で呼び出したcloseメンバ関数で何か問題が発生した場合、それを検出する方法はない。 closeメンバ関数が成功したことの判定は、特に書き込み目的でファイルを開いている場合、重要である。 なぜなら、close内部でbasic_filebufFILE*などが保持するバッファからの書き出しがあるため、ここで書き込み処理に失敗する可能性があるためである。 失敗時の処理をきちんと行うためには、デストラクタに頼らず予めcloseメンバ関数を呼び出しておくべきである。

バージョン

言語

  • C++98

参照