lambda 表达式中的参数(通过值捕获)的有效期限是多长?该参数在 lambda 本身的生命周期内有效,还是仅在调用期间有效?
例如:
[value = 5] { DoSomething(&value) }
&value
lambda 调用完成后指针是否仍然有效?(当然假设 lambda 本身还活着。)
我见过这个类似名称的问题,但这涉及修改表达式内的lambda ,而不是生命周期。
为了回答这些评论,我还怀疑value
被捕获为成员(因此应该在表达式之外保持活动状态)。但我担心这可能是错误的,因为value
理论上可以捕获为成员,然后按值传递到表达式本身(因此我们看到的引用不会保持活动状态)。