Changes in P1825R0:
- implicitly movable entity can be an rvalue reference to non-volatile automatic object.
- operand of throw-expression can be a function or catch-clause parameter (support for function parameter has already been implemented).
- in the first overload resolution, the selected function no need to be a constructor.
- in the first overload resolution, the first parameter of the selected function no need to be an rvalue reference to the object's type.
This patch also removes the diagnostic -Wreturn-std-move-in-c++11.
I believe RValue should be spelled Rvalue, throughout.