Constructs a new std::experimental::shared_ptr instance that owns
the supplied value and assigns it to *this. Decreases the use_count() for the old value if any.
template<typename Target> void reset(Target* p);
Target*
is implicitly convertible to T*.
template<typename Target> void reset(Target* p){ shared_ptr temp(p); this->swap(temp); }
#include <experimental/atomic>