- 285 名前:デフォルトの名無しさん mailto:sage [2005/11/21(月) 17:47:41 ]
- class FinallyCloseHandle {
private: HANDLE h_; public: FinallyCloseHandle(HANDLE h) : h_(h) { if (h==INVALID_HANDLE_VALUE) throw; } ~FinallyCloseHandle() { CloseHandle(h_); } }; というクラスを用意して HANDLE file = CreateFile(...) auto_ptr<FinallyCloseHandle> fch(new FinallyCloseHandle(file)); として、スコープを抜けるときに自動解放するようにしてるんですが、 これを汎用的に行う方法はないでしょうか CloseHandle以外にも、いろいろ終了処理はありますが、 それに対して毎回似たようなクラスを作るのは、スマートとは思えません atexitみたいな形で、スコープを抜けるときに呼び出す関数を 積んでおくことができると理想なのですが
|

|