Return a weak_ptr observing this object, or an expired one if unmanaged.
Return a weak_ptr holding a weak reference to this managed object if this object is currently managed by shared_ptr, and return an expired weak_ptr otherwise. If multiple groups of shared_ptrs are managing this object, the returned weak_ptr will hold a weak reference to the group that first managed this object.
weak pointer observing this object, or expired if unmanaged