最初のオープンが失敗した場合、fstream オブジェクトでクローズを呼び出す必要があるかどうかを解決しようとしています。
すなわち
std::fstream strm;
strm.open( "filename" );
if( ! strm.fail() )
{
// Do something
strm.close(); // [1]
}
strm.close(); // [2]
ここでcloseを呼び出す必要があります - 常に呼び出す必要がありますか [2]、または open が成功した場合にのみ呼び出す必要がありますか? [1]
ここではやり過ぎかもしれませんが、通常これを行う Windows API の方法から、私はCloseHandle( ... );を持っています。私の心に埋め込まれた:-)