3

我正在尝试了解 C++11 的新功能,并且我有两个关于右值引用的问题。

  1. 我还没有看到函数返回右值引用(除了std::move)的例子。是否存在这样做有意义的情况?例如,int&& foo(...).

  2. 在声明局部变量或作为函数参数时,是否存在对 const 的右值引用有意义的情况?例如,foo(int const&& i).

4

1 回答 1

5

1)我没有看到函数返回右值引用(除了std::move)的例子。是否存在这样做有意义的情况?

除了将其参数转换为右值引用(例如std::moveand,在适当的时候,std::forward返回该参数)并返回该参数的库函数之外,我认为您不会经常遇到这种情况。

2) 是否存在对 rvalue 的引用有意义的情况const

不太多。实际上几乎没有。当您想要绑定到最终要从中移动的对象时使用右值引用,并且由于您无法从const对象中移动(因为移动会改变您从中移动的对象的状态,并且const承诺相反),所以它没有什么意义具有对 的右值引用const。还要注意,左值引用也const可以绑定到右值。不过,有一些用例

于 2013-02-17T15:21:22.020 回答