C 11右值参考问题

我试图了解C 11的新功能,并且我有两个关于右值引用的问题.

>我没有看到函数返回右值引用(std :: move除外)的示例.在某些情况下这样做有意义吗?例如int&& foo(…).
>是否存在在声明局部变量或作为函数参数时有意义引用const的情况?例如foo(int const& i).

最佳答案

1) I have not seen examples when functions return rvalue references (except std::move). Are there cases when it makes sense to do so?

除了除了将其参数强制转换为右值引用(例如std :: move以及适当时为std :: forward)并返回该参数的库函数外,我相信您不会遇到那种情况经常.

2) Are there cases when it makes sense to have rvalue references to const?

不太多.实际上,几乎没有.当您要绑定到最终要移动的对象时,由于不能从const对象移动(因为移动会改变您要移动的对象的状态,而const承诺相反),因此会使用Rvalue引用.对const进行右值引用几乎没有意义.还要注意,对const的左值引用也可以绑定到右值.虽然有a few use cases for that.

转载注明原文:C 11右值参考问题 - 代码日志