Are
std::vector<double> foo ()
{
std::vector<double> t;
...
return t;
}
and
std::vector<double> foo ()
{
std::vector<double> t;
...
return std::move (t);
}
相等的 ?
更准确地说,是return x
总是等价于return std::move (x)
?
它们并不等同,你应该始终使用return t;
.
较长的版本是,当且仅当 return 语句符合返回值优化的条件时,返回者才会绑定到右值引用(或通俗地说,“move
是隐式的”)。
通过拼出return std::move(t);
然而,你实际上抑制了返回值优化!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)