在以下 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(使用前将#替换为@)