const&& 在 range-for 中的应用?

Applications of const&& in range-for?

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

for (const auto && x : c) // ?

简答:没有const auto&&range-for loops(或其他)

中没有用处

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

range-for loops 请勿在有关 const auto&& 的讨论中给 table 带来任何影响。


例如检查这个 SO post: Do rvalue references to const have any use?

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


(*) 顺便说一下,const auto&& 是一个 const 右值引用,而不是转发引用。