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 右值引用,而不是转发引用。
在任何情况下,在 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 右值引用,而不是转发引用。