std::unique_ptrとカスタムデリータ使ったやっつけリソース管理メモ

現実逃避コーディングなう

#include "Dxlib.h"
#include <memory>
#include <functional>

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
  ChangeWindowMode( TRUE ) ;
  if( DxLib_Init() == -1 )
  { return -1;}
  SetDrawScreen( DX_SCREEN_BACK ) ;

  while(ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0)
  {
    ClearDrawScreen() ;
    std::unique_ptr<int,std::function<void(int*)>> graph_handle( new int( LoadGraph("test.bmp") ), [](int *handle){ DeleteGraph( (*handle) );} );
    DrawGraph(100,100,(*graph_handle),TRUE);
    ScreenFlip() ;
  }

  DxLib_End() ;    // DXライブラリ使用の終了処理
  return 0 ;    // ソフトの終了
}

間違って毎フレーム読み込んでるのにメモリふえない! ふしぎ!
って使いかたはアレ過ぎるとしても、開放し忘れが存在しなくなるって点はいいよね。
リソース管理とかに使っていきたいトコロ。
……まあ、ゲームのリソース管理とかならぶっちゃけ同じ使い方でstd::shared_ptr使うべきな気はするけどね!
……カスタムデリータ使いたかっただけです。はい。