从cpprest lambda表达式访问自动变量
Accessing automatic variables from cpprest lambda expressions
假设我有:
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++类的成员变量访问成员函数
- 在主函数中C++私有变量访问
- 互锁变量访问(在布尔值上)和 std::atomic_flag 之间的区别
- C++中的变量访问内联函数
- 无法使用子类变量访问超类公共成员
- 优化成员变量访问
- Ifstream:打开可使用变量访问的文件
- 使用'this->'成员变量访问的性能
- 从成员变量访问静态 constexpr 成员,GCC 错误?
- TLS变量访问的结果未缓存
- 通过const成员变量访问内联函数
- 获取通过环境变量访问的文件的位置
- 静态变量访问
- 从函数变量访问结构变量的成员
- 从另一个变量访问变量
- 使用变量访问结构中的任何数据
- 如何使用另一个变量访问对象的变量/方法
- 使用用户变量访问结构的成员?C++
- 我需要通过基类静态变量访问派生类成员
- 如何将一个文件中存在的全局常量变量访问到另一个文件