C ++ lambda构造函数参数可以捕获构造的变量吗?

安德鲁·拉扎鲁斯(Andrew Lazarus)

以下编译但是,有没有悬而未决的参考问题?

    class Foo {
         Foo(std::function<void(int)> fn) { /* etc */ }
    }

    void f(int i, Foo& foo) { /* stuff with i and foo */ }

    Foo foo([&foo](int i){f(i, foo);});

似乎可以工作。(实际的lambda当然更复杂。)

巴里

但是,有没有悬而未决的参考问题?

那完全取决于你在做什么Foo下面是一个例子有悬空引用问题:

struct Foo {
     Foo() = default;
     Foo(std::function<void(int)> fn) : fn(fn) { }
     std::function<void(int)> fn;
}

Foo outer;
{
    Foo inner([&inner](int i){f(i, inner);});
    outer = inner;
}
outer.fn(42); // still has reference to inner, which has now been destroyed

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++构造函数参数

来自分类Dev

C ++可以将用作虚拟基础的类具有带参数的构造函数吗?

来自分类Dev

C++ 可以根据给单个构造函数的参数创建派生类而不是bass 类吗?

来自分类Dev

当类变量与构造函数在C#中接收的形式参数相同时,有人可以提出更好的命名方案吗?

来自分类Dev

具有常量构造函数参数的C ++变量构造函数方法

来自分类Dev

C ++构造函数原型参数

来自分类Dev

C ++错误构造函数参数

来自分类Dev

C ++构造函数原型参数

来自分类Dev

C#+编程逻辑-我可以从构造对象访问构造函数对象吗?

来自分类Dev

C ++在构造函数中捕获异常

来自分类Dev

C ++ 11构造函数继承和不带参数的构造函数

来自分类Dev

我可以从 C# 中另一个类的构造函数调用构造函数吗?

来自分类Dev

构造函数中使用lambda的C ++类

来自分类Dev

具有一个默认参数和一个变量参数的C ++构造函数

来自分类Dev

C#替代无参数构造函数

来自分类Dev

C ++创建2参数构造函数

来自分类Dev

具有const参数的C ++构造函数

来自分类Dev

C ++模板构造函数默认参数

来自分类Dev

C#构造函数作为方法的参数?

来自分类Dev

C ++参数化的构造函数错误

来自分类Dev

C#构造函数线程安全吗?

来自分类Dev

变量名称的C ++加载构造函数

来自分类Dev

是否可以在构造函数C ++中使用可以在类中使用相同的变量?

来自分类Dev

您可以在C中使函数参数指向变量吗?

来自分类Dev

C ++ 11:可变参数lambda模板,用于调用类型的默认构造函数

来自分类Dev

C#6.0中的类可以具有受保护的主构造函数吗?

来自分类Dev

我可以在C#中调用相同类的重载构造函数吗?

来自分类Dev

可以在C ++的构造函数中放置if语句以特定方式设置对象吗?

来自分类Dev

可以使用SpiderMonkey用C ++编写JS对象的构造函数吗?

Related 相关文章

  1. 1

    C ++构造函数参数

  2. 2

    C ++可以将用作虚拟基础的类具有带参数的构造函数吗?

  3. 3

    C++ 可以根据给单个构造函数的参数创建派生类而不是bass 类吗?

  4. 4

    当类变量与构造函数在C#中接收的形式参数相同时,有人可以提出更好的命名方案吗?

  5. 5

    具有常量构造函数参数的C ++变量构造函数方法

  6. 6

    C ++构造函数原型参数

  7. 7

    C ++错误构造函数参数

  8. 8

    C ++构造函数原型参数

  9. 9

    C#+编程逻辑-我可以从构造对象访问构造函数对象吗?

  10. 10

    C ++在构造函数中捕获异常

  11. 11

    C ++ 11构造函数继承和不带参数的构造函数

  12. 12

    我可以从 C# 中另一个类的构造函数调用构造函数吗?

  13. 13

    构造函数中使用lambda的C ++类

  14. 14

    具有一个默认参数和一个变量参数的C ++构造函数

  15. 15

    C#替代无参数构造函数

  16. 16

    C ++创建2参数构造函数

  17. 17

    具有const参数的C ++构造函数

  18. 18

    C ++模板构造函数默认参数

  19. 19

    C#构造函数作为方法的参数?

  20. 20

    C ++参数化的构造函数错误

  21. 21

    C#构造函数线程安全吗?

  22. 22

    变量名称的C ++加载构造函数

  23. 23

    是否可以在构造函数C ++中使用可以在类中使用相同的变量?

  24. 24

    您可以在C中使函数参数指向变量吗?

  25. 25

    C ++ 11:可变参数lambda模板,用于调用类型的默认构造函数

  26. 26

    C#6.0中的类可以具有受保护的主构造函数吗?

  27. 27

    我可以在C#中调用相同类的重载构造函数吗?

  28. 28

    可以在C ++的构造函数中放置if语句以特定方式设置对象吗?

  29. 29

    可以使用SpiderMonkey用C ++编写JS对象的构造函数吗?

热门标签

归档