L-Value and R-Value

Move Semantics

Move Constructor

When possible, steal it rather than copying.

Move Assignment

[[Operator Overloading|Another = overloading.]]

Still imperfect, it does some copy, with = L-Value! It has name and identity. Although rhs is a R-Value reference, but the variable rhs itself is a L-Value.

The Final Code:

Summary: Rules

More Modern

Universal Reference