首页 > 解决方案 > 这种将临时变量移出功能的方法有什么问题?

问题描述

我试图了解以下代码有什么问题,其中Result一个类是move constructor

Result&& GetResult(unsigned char* ptr)
{
    Result res = Result(ptr);
    return std::move(res);
}

Result ret = GetResult(ptr);

我知道推荐的方法是有返回类型Resultreturn res;让编译器自己调用移动构造函数。但是我想通过局部变量的生命周期来了解上述案例中发生了什么,因为它在传递给inres时似乎已经“死”了。另一方面让它保持活力。move constructorResult ret = GetResult(ptr);Result&& res = GetResult(ptr);

标签: c++c++11move-semanticsrvalue-reference

解决方案


推荐阅读