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

公開:2012-10-19 05:49
更新:2020-02-15 04:37
カテゴリ: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化したほうがよいかもね。