Fyo*_*kin 10 c++ lambda
问题很简单:当我编写lambda表达式时,C++编译器为我自动生成的仿函数对象的生命周期是什么?
我做了一个快速搜索,但找不到满意的答案.特别是,如果我在某处传递lambda,并在那里记住它,然后我就会超出范围,一旦我的lambda稍后调用并尝试访问我的堆栈分配但不再存活,捕获的变量会发生什么?或者编译器是否以某种方式阻止了这种情况?或者是什么?
Xeo*_*Xeo 11
取决于您如何捕获变量.如果通过引用([&])捕获它们并且它们超出范围,则引用将无效,就像普通引用一样.[=]如果你想确保它们超出范围,则通过value()捕获它们.
[&]
[=]
归档时间:
14 年,11 月 前
查看次数:
1998 次
最近记录: