Complete shared_ptr