`std::weak_ptr` が管理対象にアクセスするために `lock()` を呼ぶ必要がある理由は何か。

lock()は対象が存在すればshared_ptrを生成し、その間は確実に生存を保証する。