I would like to know if my assumption is correct -> Rvalue references work just like lvalue references except that they can only bind to rvalues and hence they can be used for detecting rvalues.
So when used as return type, it works just like lvalue references, like they are returning the actual object they are bound to.
When used as parameter type, they pass values without any copying.
I see a lot of people asking what the difference is between returning by rvalue reference and by value(and by lvalue reference), but couldn't they all be answered by saying that rvalue references works like lvalue references, so if you know what happens when using lvalue references, you probably know what happens when using rvalue references, i.e. you would know that returning by rvalue reference returns the actual object while returning by value returns a copy, just like the difference between returning by lvalue reference and by value(roughly)?
Or am I wrong?