std::shared_ptr object that shares ownership
operator std::shared_ptr<T>() const;
that holds the value of
this->get() and shares ownership with
is non zero it is increased by 1 and
std::bad_alloc if memory could not
be allocated for any internal data structures.
was constructed from a
then no memory allocation may be required. The referenced object
will remain valid until the last
std::shared_ptr object that references
it has been destroyed or reassigned.