読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

キャプチャしながら再生するプログラムの作成(5) – イベント(デリゲート)をstd::functionに変換するラッパクラス | S.F.Page

WinRT C++/CX Desktop Windows JavaScript 音楽・動画 Audio C++ Windows API

前回作成したクラス(アダプタクラス typed_event_handler_adapterに改名)を使ってみたところ一応コンパイルは通ったが、ref newしたクラスの生存期間が?でかなり危険なコードのような気がする。

  watcher_ = DeviceInformation::CreateWatcher();
  watcher_->Added += (ref new typed_event_handler_adapter<DeviceWatcher^,DeviceInformation^>
      (boost::bind(&wasapi_device_manager::added,this,_1,_2)))->get();

生存期間をコントロールするためにクラスメンバを持つとなるとブサイクだし、そこまでするのなら素直にref class化したほうがよいかもね。