shared_ptr demo