HOMELv028 `std::unique_ptr` を関数の戻り値として返す際、`std::move` は必須か。 2026年3月4日 現代のC++では戻り値の最適化により、moveを明示しなくても効率的に返却される。 `std::shared_ptr` の初期化において `new` を直接使うより `std::make_shared` を使うべき理由は。 `std::weak_ptr` の目的として「生存確認」以外に重要な役割はどれか。