Move-constructs a new std::experimental::shared_ptr object from a std::auto_ptr instance with a different
pointer type.
template<class Target> explicit shared_ptr(auto_ptr<Target>&& p);
Target*
is implicitly convertible to T*.
Transfers ownership of the pointer from p
to the newly constructed std::experimental::shared_ptr instance.
this->auto().
this->get()
has the value static_cast<T*>(p.get()) had before the constructor was
invoked. p.get()==0.
std::bad_alloc if memory could not
be allocated for the internal control block.
#include <experimental/atomic>