const &&在范围内的应用?

Mr.*_*C64 14 c++ for-loop const rvalue-reference c++11

是否有任何情况下const&&在range-for循环中使用它是否有意义?

for (const auto && x : c) // ?
Run Code Online (Sandbox Code Playgroud)

bol*_*lov 9

简短的回答:没有,没有用途const auto&&range-for loops(或其他方式)

你可以使用rvalue references,如果你想以优化的方式移动物体.除非您可以修改从中移动的对象,否则您不能这样做(通常).所以const rvalues(*)没有实际用途(你不能从它们移动,因为你无法修改它们).

range-for loops在这次讨论中不要带任何东西const auto&&.


检查这个SO帖子:对const的rvalue引用有用吗?

const rvalue引用的唯一用途是删除一些函数重载.这不适用于range-for loops.


顺便说一句,(*)const auto&&是const rvalue引用,而不是转发引用.

  • @SergeyA使用右值引用的唯一原因是,如果您希望有效地从它们移动. (2认同)