• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ラムダ式を関数に渡したいのですが)

ラムダ式を関数に渡す方法

このQ&Aのポイント
  • C++のラムダ式を使って他のクラスの関数に渡す方法について教えてください。
  • 例えば、Class1からClass2にある関数の引数にラムダ式で関数を渡すプログラムを作成したい場合、どのように記述すれば良いですか。
  • 現在のコードではエラーが発生してしまいます。キャプチャにthisを渡したラムダ式を他のクラスの関数ポインタのような変数に代入する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

やりたいことはこんなことかしら? #include <iostream> #include <functional> typedef std::function<void(void)> func_type; class Class2 { func_type mFunc; public: void runFunc() { mFunc(); } void setFunc(func_type func) { mFunc = func; } }; class Class1 { int i = 0; void func() { std::cout << "Hello world #" << i << std::endl; } public: func_type get() { return [this]() { func(); }; } }; int main() { Class2 c2; Class1 c1; c2.setFunc(c1.get()); c2.runFunc(); }

ugonight
質問者

お礼

その通りです。質問の仕方がわかりすらくてすみません… functionalというライブラリを使うと実現可能なのですね。助かりましたありがとうございます。

関連するQ&A