我想知道我的假设是否正确 -> Rvalue引用的工作方式与lvalue引用类似,只是它们只能绑定到rvalue,因此它们可以用于检测rvalue。
因此,当用作返回类型时,它的工作方式就像lvalue引用一样,就好像它们返回它们绑定到的实际对象一样。
当用作参数类型时,它们传递值而不进行任何复制。
我看到很多人问通过rvalue引用和通过值(以及通过lvalue引用)返回之间的区别是什么,但是难道不能通过说rvalue引用的工作方式类似于lvalue引用来回答所有这些问题吗?因此,如果您知道使用lvalue引用时会发生什么,那么您可能知道使用rvalue引用时会发生什么,即您将知道通过rvalue引用返回实际对象,而通过值返回副本,就像通过lvalue引用和值返回之间的区别一样(大致上)?
还是我错了?
因此,当用作返回类型时,它的工作方式就像lvalue引用一样,就好像它们返回它们绑定到的实际对象一样。
当用作参数类型时,它们传递值而不进行任何复制。
我看到很多人问通过rvalue引用和通过值(以及通过lvalue引用)返回之间的区别是什么,但是难道不能通过说rvalue引用的工作方式类似于lvalue引用来回答所有这些问题吗?因此,如果您知道使用lvalue引用时会发生什么,那么您可能知道使用rvalue引用时会发生什么,即您将知道通过rvalue引用返回实际对象,而通过值返回副本,就像通过lvalue引用和值返回之间的区别一样(大致上)?
还是我错了?
std::move(x).take_thing()
的方式访问它,其中 take_thing 定义为auto take_thing() && -> X&& {...}
。 - Richard Hodges