1 std::unique_ptr< Test[] > upt(std::make_unique< Test[] >(2));
// Здесь нет утечек, так как происходит сброс, что приведет к освобождению.
3 upt = (std::make_unique< Test[] >(1));
В приведенном выше фрагменте, при вызове строки 3, дважды вызывается деструктор Test и выделяет память для массива размером 1,
Итак, кто вызывает сброс? Это make_unique
это делает?
Кроме того, я могу получить подробную реализацию make_unique
и make_shared
.