Standard library types
N4296, §17.6.3.1, rv - T,
20, MoveConstructible 22 MoveAssignable.
:
T(rv);
T u =rv;
u = rv;
rvs [: rv . , , , rv . - ]
, . . .
shared_ptr:
shared_ptr(shared_ptr&& r) noexcept;
template<class Y> shared_ptr(shared_ptr<Y>&& r) noexcept;
. , Y * T *.
: Move-constructs shared_ptr r. : * r. r . r.get() == nullptr.
. ...
, , !