我一直在阅读有关右值引用和的内容std::move
,并且我有一个性能问题。对于以下代码:
template<typename T>
void DoSomething()
{
T x = foo();
bar(std::move(x));
}
从性能的角度来看,使用右值引用重写它会更好吗?
template<typename T>
void DoSomething()
{
T&& x = foo();
bar(x);
}
bar(foo())
如果我正确理解了右值引用,那么正如评论者所指出的那样,这将就像被调用一样。但可能需要中间值;这样做有用吗?