std :: shared_ptr: reset () против присвоения

Это основной вопрос, но я не нашел предыдущего поста об этом. Название следующего вопроса звучит так, как будто это тот же вопрос, что и мой, но сам вопрос не соответствует названию:лучше использовать shared_ptr.reset или operator =?

Я смущен цельюreset() функция-членstd::shared_ptr: что он вносит в дополнение к оператору присваивания?

Чтобы быть конкретным, учитывая определение:

auto p = std::make_shared<int>(1);

Следующие две строки эквивалентны:

p = std::make_shared<int>(5);
p.reset(new int(5));

Что на счет этого:

p = nullptr;
p.reset();

Если две строки эквивалентны в обоих случаях, то какова цельreset()?

РЕДАКТИРОВАТЬ: Позвольте мне перефразировать вопрос, чтобы лучше подчеркнуть его точку зрения. Вопрос: есть ли случай, когдаreset() Позволяет ли нам достичь чего-то, что не так легко достичь без этого?

Ответы на вопрос(0)

Ваш ответ на вопрос