【C++】STL(Standard Template Library)相談室 4at TECH
【C++】STL(Standard Template Library)相談室 4 - 暇つぶし2ch285:デフォルトの名無しさん
05/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みたいな形で、スコープを抜けるときに呼び出す関数を
積んでおくことができると理想なのですが


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch