c++ - 右值到左值的转换?

标签 c++ c++11 type-conversion rvalue-reference lvalue

为什么不能将右值转换为左值?但是,可以在相反的方向进行转换。从技术上讲,右值确实有一个内存地址,不是吗?

最佳答案

你可以:

int&& x = 3;

x现在是一个左值。所谓的“右值引用”可以绑定(bind)到一个临时的, 但是任何名称都是左值,所以你需要forward<>()如果您需要它的右值性,它会返回。

请注意,通过将临时对象绑定(bind)到右值引用(或 const 引用)可以延长其生命周期。从技术上讲, Actor 是可能的, 但不推荐,因为临时的生命周期很短,所以你 通常会得到一个悬空引用。

关于c++ - 右值到左值的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44677825/

相关文章:

c++ - 这对会被感动吗?

map 插入期间的 C++ move 保证

python - 客户端-服务器 python 将字节转换为字符串

python - 如何将 str 转换为 pandas 中的 float

c++ - 在 C++ 中向数组添加元素

c++ - 使用 std::function 和 std::bind C++ 将带参数的 void 方法传递给另一个方法

c++ - 如何使用 1D 高斯内核在 Filter2D 上执行自定义 2D 内核

将 signed int 转换为 unsigned short,在 C 中将负值设置为零

c++ - 如何在 C++ 中反转字符串 vector ?

c++ - 子图的图特征