StromanStroman 2023-03-20 17:29 采纳率: 40.9%
浏览 31
已结题

如何使用lambda表达式捕获局部变量?

现在我想写个回调函数,这个回调函数的参数是一个lambda表达式,这个lambda表达式的实现,要写在另外一个函数中,等这个函数在lambda的体中实现完以后,再回调到原函数中往下执行。但是我不知道在原函数的声明中具体应该怎么写这种可以捕获局部变量的lambda表达式的形参。

编程语言:C++11

  • 写回答

1条回答 默认 最新

  • 元气少女缘结神 2023-03-20 17:52
    关注

    不知道你是否要这样:
    如果想把 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
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月21日
  • 创建了问题 3月20日