gpt4 book ai didi

c++ - 从 cpprest lambda 表达式访问自动变量

转载 作者:行者123 更新时间:2023-11-28 06:43:28 33 4
gpt4 key购买 nike

假设我有:

void f()
{
SomeClass someObject;
pplx::create_task([&]()-> SomeClass { return someObject; });
}

void g()
{
//Allocate automatic objects
}

int main()
{
f();
g();
}

这能保证有效吗?我的逻辑说不,因为在任务运行时 someObject 可能超出范围。

最佳答案

这取决于。如果在 f() 返回后从未​​使用过 lambda(或其拷贝),则一切正常。之后当然 return someObject 正在评估对不再存在的对象的引用,这是未定义的行为。

关于c++ - 从 cpprest lambda 表达式访问自动变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486279/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com