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

标签 c++ c++11 for-loop constants rvalue-reference

是否存在在 range-for 循环中使用 const&& 确实有意义的情况?

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

最佳答案

简短回答:,在 range-for 循环(或其他)中 const auto&& 没有用处

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

range-for 循环 在这个关于 const auto&& 的讨论中没有提出任何问题。


例如查看此 SO 帖子:Do rvalue references to const have any use?

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


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

关于c++ - const&& 在 range-for 中的应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039198/

相关文章:

c++ - 使用 new 运算符初始化指向 const float 等的指针

C++。如何正确释放内存?

javascript - Javascript 中表单输入的总和

c++ - 使用 Qt Creator C++ 11,nullptr 是关键字?

c++ - std::enable_if 和 std::shared_ptr

java - 如何使用简单的 for 循环创建数组?

java - java中重新启动双循环的方法

c++ - 如何将 "point of declaration"解释为 "const int i=2; { int i[i]; }"- C++ 标准中的示例?

c++ - 用于格式化的字符串参数与模板参数

c++ - 如何输出计算到小数点后两位的整数?