返回信息流是否可以把 lvalue 理解为栈上的符号,把 rvalue/xvalue 理解为堆上占有内存的实例?
这是一条镜像帖。来源:北邮人论坛 / cpp / #101833同步于 2022/4/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
lvaue, rvalue & xvalue
Vinci17
2022/4/17镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
lvalue和rvalue和堆、栈没有关系。确切的定义是:lvalue是有存储空间的值,而rvalue就是值。你可以给lvalue赋值,然后这个存储空间里就有新值了。你不能给rvalue赋值。
C++增加了xvalue和prvalue,它们都是rvalue的。
符号(symbol)和这个就更没有关系了,符号是链接器、装载器的概念。
感谢指教!
【 在 nuanyangyang 的大作中提到: 】
: lvalue和rvalue和堆、栈没有关系。确切的定义是:lvalue是有存储空间的值,而rvalue就是值。你可以给lvalue赋值,然后这个存储空间里就有新值了。你不能给rvalue赋值。
: C++增加了xvalue和prvalue,它们都是rvalue的。
: 符号(symbol)和这个就更没有关系了,符号是链接器、装载器的概念。
感谢指教!
【 在 hyiker 的大作中提到: 】
: 左右值跟堆和栈关系不是很大 因为是在编译期就被处理了 简单来说左值就是被符号引用的变量 右值是没有被符号引用的量
pod什么值都一样,只有分配了内存的变量才有区别cpp17以后xvalue多了temporary materialization,要考虑的特殊情况更多了