移动还是不移动右值引用限定方法?

2024-03-23

在以下 C++11+ 代码中,应首选哪种 return 语句构造?

#include <utility>


struct Bar
{
};

struct Foo
{
    Bar bar;

    Bar get() &&
    {
        return std::move(bar); // 1
        return bar;            // 2
    }
};

好吧,因为它是一个右值引用限定成员函数,this估计快要过期了。所以搬家是有道理的bar出,假设Bar其实是因为感动而有所收获。

Since bar是成员,而不是本地对象/函数参数,则 return 语句中复制省略的通常标准不适用。它总是会复制,除非你明确地std::move it.

所以我的答案是选择第一个选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动还是不移动右值引用限定方法? 的相关文章

随机推荐