c++ - 这种将临时变量移出功能的方法有什么问题?
问题描述
我试图了解以下代码有什么问题,其中Result
一个类是move constructor
:
Result&& GetResult(unsigned char* ptr)
{
Result res = Result(ptr);
return std::move(res);
}
Result ret = GetResult(ptr);
我知道推荐的方法是有返回类型Result
并return res;
让编译器自己调用移动构造函数。但是我想通过局部变量的生命周期来了解上述案例中发生了什么,因为它在传递给inres
时似乎已经“死”了。另一方面让它保持活力。move constructor
Result ret = GetResult(ptr);
Result&& res = GetResult(ptr);
解决方案
推荐阅读
- c++ - 无法更改菜单位图
- mturk - 使用 mTurk Worker 和 Requester 沙箱
- laravel - 使用 AWS 自动缩放组使我的代码与数据保持同步的最佳实践是什么?
- javascript - 如何将数组的值与产品和值相加并从最小到最大排序?
- python - 打印格式被忽略或覆盖?
- node.js - 在我的简单注册/登录应用程序中使用 mongodb 从入口获取 502。nginx入口ip不匹配api请求ip
- typescript - 打字稿方法装饰器有奇怪的行为
- spring-batch - Spring Batch ValidatingItemProcessor 与 ItemListener
- android - AOSP Oreo - priv-app 应用程序的相机权限
- python - 在 scipy.spatial.Delaunay 中 find_simplex() 方法返回什么?