Construct a new std::experimental::shared_ptr object that shares
ownership the supplied std::experimental::shared_ptr instance.
template<class Target> explicit shared_ptr(shared_ptr<Target> const& p) noexcept;
Target*
is implicitly convertible to T*.
If p.use_count()>0, construct a new std::experimental::shared_ptr instance that
shares ownership with p.
Otherwise constructs a new empty
std::experimental::shared_ptr instance.
this->use_count()==p.use_count()
and this->get()==static_cast<T*>(p.get())
for the newly-constructed std::experimental::shared_ptr object. If
p.use_count()>0 before the constructor invocation
then p.use_count()
is increased by 1.
Nothing.
#include <experimental/atomic>