我正在尝试实现一个将 Lambda 回调作为参数的 c++ 函数。问题是,回调是从同一个(被调用的)类中的另一个函数异步启动的。因此,我需要将 Lambda 存储在成员变量中,以便需要启动回调的异步函数可以访问它。
我尝试了所有我能想到的使用成员变量声明、设置和调用 Lambda 的方法,但代码总是在赋值或调用中崩溃。
这是我正在尝试做的一个精简版。
声明函数:
void function(const std::function<void()>callback);
从主代码调用函数:
myClass->function([](){cout << "Callback called";});
如果我callback
从内部执行function
它工作正常,但我找不到将它存储在成员变量(例如m_callback
)中并从同一类的另一个函数调用它的方法。