将输入参数传递给lambda函数中的std :: function

Shohreh

我有一堂课,有一个这样的公共std::function成员:

class B
{
public:
    B(std::function<void(void)> _func = NULL) : m_function(_func) { }
    std::function<void()> m_function;
};

我有一个X带有成员函数的类SomeFunction

class X
{
public:
    void SomeFunction(const std::string & _s)
    {
        //...
    }
};

我也有一个A返回类型为object的对象的类B,如下所示:

class A
{
private:
    X x;
public:
    B GetObjectB()
    {
        std::string local = "abc";
        return B(([&]() -> void { x->SomeFunction(local); }))
    }
};

然后执行

A a;
B b = a.GetObjectB();
b.m_function();

SomeFunction调用该函数之前,代码可以正常工作_s尽管local输入参数作为输入参数传递输入参数没有值

我在这里做错了什么?

附件

您要告诉您的lambda通过引用([&]进行默认捕获,并且它正在捕获local对该堆栈的引用作为堆栈变量,当范围退出时,该变量将被释放,因此返回的对象my_function已捕获了悬空的引用。尝试一下[=]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将lambda参数传递给没有中间变量的std :: function参数

来自分类Dev

将成员函数和 lambda 传递给 std::function

来自分类Dev

将std :: function作为参数传递给for_each

来自分类Dev

将 std::function 作为参数传递给 const void *

来自分类Dev

将shared_ptr传递给std :: function(成员函数)

来自分类Dev

将匿名函数对象传递给std :: function?

来自分类Dev

为什么不将具有默认参数的函数传递给模板化的构造函数,并使用lambda将其存储为std :: function <void()>起作用?

来自分类Dev

将Cmdlet作为参数传递给Function

来自分类Dev

将Cmdlet作为参数传递给Function

来自分类Dev

将C ++ 11 std :: function传递给需要boost :: function的旧函数是否安全?

来自分类Dev

为什么不能将lambda传递给需要std :: function的函数?

来自分类Dev

将带有所有参数的成员函数传递给std :: function

来自分类Dev

如何将函数指针从std :: function传递给Linux克隆?

来自分类Dev

将参数传递给函数,以使用ggplot stat_function进行绘图

来自分类Dev

将std :: bind的结果传递给std :: function“重载”

来自分类Dev

如何将成员函数指针传递给std :: function

来自分类Dev

std :: function的替代方法,用于将函数作为参数传递(回调等)

来自分类Dev

Python-将输入(提示)传递给Function

来自分类Dev

将包含输入参数的数组传递给Julia中的函数

来自分类Dev

将模板函子传递给模板std :: function

来自分类Dev

Jasmine 单元测试:如何在传递给我的被测方法的函数参数中监视 Function.prototype.call() ?

来自分类Dev

如何将cloudwatch目标输入作为参数传递给Lambda函数

来自分类Dev

在VBA中,如何将字符串拆分为数组,然后将其作为参数传递给Sub或Function

来自分类Dev

C ++中的GUI工具包出现问题。将Lambda传递到std :: function的向量中

来自分类Dev

将函数传递给elisp中的参数

来自分类Dev

将参数传递给yii中的函数

来自分类Dev

将参数传递给Ajax中的函数

来自分类Dev

将参数传递给Ajax中的函数

来自分类Dev

将内联函数定义作为输入参数传递给函数

Related 相关文章

  1. 1

    将lambda参数传递给没有中间变量的std :: function参数

  2. 2

    将成员函数和 lambda 传递给 std::function

  3. 3

    将std :: function作为参数传递给for_each

  4. 4

    将 std::function 作为参数传递给 const void *

  5. 5

    将shared_ptr传递给std :: function(成员函数)

  6. 6

    将匿名函数对象传递给std :: function?

  7. 7

    为什么不将具有默认参数的函数传递给模板化的构造函数,并使用lambda将其存储为std :: function <void()>起作用?

  8. 8

    将Cmdlet作为参数传递给Function

  9. 9

    将Cmdlet作为参数传递给Function

  10. 10

    将C ++ 11 std :: function传递给需要boost :: function的旧函数是否安全?

  11. 11

    为什么不能将lambda传递给需要std :: function的函数?

  12. 12

    将带有所有参数的成员函数传递给std :: function

  13. 13

    如何将函数指针从std :: function传递给Linux克隆?

  14. 14

    将参数传递给函数,以使用ggplot stat_function进行绘图

  15. 15

    将std :: bind的结果传递给std :: function“重载”

  16. 16

    如何将成员函数指针传递给std :: function

  17. 17

    std :: function的替代方法,用于将函数作为参数传递(回调等)

  18. 18

    Python-将输入(提示)传递给Function

  19. 19

    将包含输入参数的数组传递给Julia中的函数

  20. 20

    将模板函子传递给模板std :: function

  21. 21

    Jasmine 单元测试:如何在传递给我的被测方法的函数参数中监视 Function.prototype.call() ?

  22. 22

    如何将cloudwatch目标输入作为参数传递给Lambda函数

  23. 23

    在VBA中,如何将字符串拆分为数组,然后将其作为参数传递给Sub或Function

  24. 24

    C ++中的GUI工具包出现问题。将Lambda传递到std :: function的向量中

  25. 25

    将函数传递给elisp中的参数

  26. 26

    将参数传递给yii中的函数

  27. 27

    将参数传递给Ajax中的函数

  28. 28

    将参数传递给Ajax中的函数

  29. 29

    将内联函数定义作为输入参数传递给函数

热门标签

归档