std :: shared_ptr: reset () vs. atribuição
Esta é uma pergunta básica, mas não encontrei um post anterior sobre isso. O título da pergunta a seguir parece ser a mesma pergunta que a minha, mas a pergunta em si não corresponde ao título:é melhor usar shared_ptr.reset ou operator =?
Estou confuso sobre o objetivo doreset()
função membro destd::shared_ptr
: o que isso contribui além do operador de atribuição?
Para ser concreto, dada a definição:
auto p = std::make_shared<int>(1);
As duas linhas a seguir são equivalentes:
p = std::make_shared<int>(5);
p.reset(new int(5));
E quanto a estes:
p = nullptr;
p.reset();
Se as duas linhas são equivalentes nos dois casos, então qual é o objetivo dereset()
?
EDIT: Deixe-me refazer a pergunta para enfatizar melhor o seu ponto. A questão é: existe um caso em quereset()
nos permite alcançar algo que não é tão facilmente possível sem ele?