现在我想写个回调函数,这个回调函数的参数是一个lambda表达式,这个lambda表达式的实现,要写在另外一个函数中,等这个函数在lambda的体中实现完以后,再回调到原函数中往下执行。但是我不知道在原函数的声明中具体应该怎么写这种可以捕获局部变量的lambda表达式的形参。
编程语言:C++11
不知道你是否要这样:
如果想把 lambda 函数做为一个参数来传递, 那么形参的类型必须是模板类型或者必须能创建一个 std::function 类似的对象去捕获 lambda 函数.使用 auto 可以帮助存储 lambda 函数:
auto a_lambda_func = [](int x)
{
/*完成某个功能*/
};
//另一个函数中如main函数中去调用
void (*func_ptr)(int) = a_lambda_func;
func_ptr(4); // calls the lambda