C++11重新评估参考问题

C++11 rvalue reference questions

本文关键字:参考 问题 评估 新评估 C++11      更新时间:2023-10-16

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

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

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

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

除了库函数只将其参数强制转换为右值引用(如std::move,在适当的情况下,std::forward)并返回该参数之外,我相信您不会经常遇到这种情况。

2) 是否存在对const进行重新赋值引用的情况?

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