首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时何地使用xvalue?

何时何地使用xvalue?
EN

Stack Overflow用户
提问于 2013-06-30 11:27:55
回答 1查看 1.5K关注 0票数 9

我在xvalue上读到了标准。它与rvalue reference表达密切相关。但是在编程时,我真的找不到需要xvalue的场景。

例如:函数myClass&& f()返回一个rvalue reference。所以表达式f()是xvalue。但是这有什么用呢?我如何在编程中使用这种技术?

如果定义了另一个函数myClass g(),那么g()f()有什么区别?

在什么情况下我应该使用f() and xvalue而不是g() prvalue

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-30 11:53:22

在您的示例中,您定义了一个返回prvalue的函数g和一个返回x值的函数f

它们的共同点是,如果您将函数调用的结果g()f()分别传递给另一个函数h(...),它们都会倾向于使用以右值作为参数的h重载(如果有多个h重载)。

g()f()之间的区别在于g()没有动态类型(即动态类型与静态(=声明)类型相同),而f()具有动态类型(可能与静态类型不同),换句话说,如果它被定义为返回对基类的右值引用,它将启用多态行为。(这就是xvalue与lvalue共享的特征,这就是为什么xvalue和lvalue一起形成了更大的glvalue组,而prvalue只是rvalue。)

关于用例的例子,我只会参考这个现有的问题:Is there any case where a return by rvalue reference is useful

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17386846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档