C++11 右值参考题

use*_*436 3 c++ reference rvalue-reference c++11

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

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

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

And*_*owl 5

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

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

2) 是否存在对 进行右值引用有意义的情况const

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