C++11 の std::function を使って signal-slot ライクにメンバー関数をコールバック

この記事の補足。 std::function を使って Qt の signal-slot みたくメンバー関数をコールバックする方法あれこれ。

例によって擬似タイマー

(1) 関数スコープ内で定義したラムダ式を connect

(2) メンバー変数定義したラムダ式を connect

(3) std::bind で this ポインターを bind して connect

(4) メンバー関数 –> std::function アダプターを自作

(1)~(4) は全部こんな感じで使用可能

他にもまだやり方があるかもしれませんが、とりあえず思いつくだけ。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中