我经常发现自己在做:
for(auto& v : cont) {...}
或
auto &r = GetValue();
现在工作中有人建议我们这样做:
for(auto&& v : cont) {...}
和
auto&& r = GetValue();
我想知道做其中一项是否比另一项有优势?
我想知道做其中一项是否比另一项有优势?
它们不一样。
auto& v
是一个左值参考。 由于它不是明确的 const
它只能绑定到其他左值。
auto&& v
是转发参考(有时称为“通用参考”)。 它可以绑定到左值和x值和纯右值。 所有值。
auto&&
。auto&
。