Lambda コールバックをパラメーターとして取得する C++ 関数を実装しようとしています。問題は、コールバックが同じ (呼び出された) クラスの別の関数から非同期的に開始されることです。したがって、コールバックを開始する必要がある非同期関数からアクセスできるように、Lambda をメンバー変数に格納する必要があります。
メンバー変数を使用して Lambda を宣言、設定、および呼び出すために考えられるすべての方法を試しましたが、コードは割り当てまたは呼び出しで常にクラッシュします。
これは、私がやろうとしていることの削除されたバージョンです。
関数の宣言:
void function(const std::function<void()>callback);
メインコードから関数を呼び出す:
myClass->function([](){cout << "Callback called";});
callback
内部から実行すると正常に動作しますが、それをメンバー変数 (例: ) に格納して、同じクラスの別の関数から呼び出すfunction
方法が見つかりませんでした。m_callback