为什么不能将右值转换为左值?但是,可以在相反的方向进行转换。从技术上讲,右值确实有一个内存地址,不是吗?
原文由 user8194556 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么不能将右值转换为左值?但是,可以在相反的方向进行转换。从技术上讲,右值确实有一个内存地址,不是吗?
原文由 user8194556 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
你可以:
x
现在是左值。一个所谓的 ‘rvalue-reference’ 可以 绑定到一个临时的,但是任何有名字的东西 都是一个 lvalue ,所以你需要forward<>()
如果你需要它的右值返回。请注意,通过将临时值绑定到右值引用(或 const 引用)可以延长其生命周期。从技术上讲,演员是可能的,但不推荐,因为临时演员的生命周期很短,所以你通常会得到一个悬空的参考。