我正在尝试了解 C++11 的新功能,并且我有两个关于右值引用的问题。
我还没有看到函数返回右值引用(除了
std::move
)的例子。是否存在这样做有意义的情况?例如,int&& foo(...)
.在声明局部变量或作为函数参数时,是否存在对 const 的右值引用有意义的情况?例如,
foo(int const&& i)
.
我正在尝试了解 C++11 的新功能,并且我有两个关于右值引用的问题。
我还没有看到函数返回右值引用(除了std::move
)的例子。是否存在这样做有意义的情况?例如,int&& foo(...)
.
在声明局部变量或作为函数参数时,是否存在对 const 的右值引用有意义的情况?例如,foo(int const&& i)
.
1)我没有看到函数返回右值引用(除了
std::move
)的例子。是否存在这样做有意义的情况?
除了将其参数转换为右值引用(例如std::move
and,在适当的时候,std::forward
返回该参数)并返回该参数的库函数之外,我认为您不会经常遇到这种情况。
2) 是否存在对 rvalue 的引用有意义的情况
const
?
不太多。实际上几乎没有。当您想要绑定到最终要从中移动的对象时使用右值引用,并且由于您无法从const
对象中移动(因为移动会改变您从中移动的对象的状态,并且const
承诺相反),所以它没有什么意义具有对 的右值引用const
。还要注意,左值引用也const
可以绑定到右值。不过,有一些用例。