Разница в make_shared и обычном shared_ptr в C ++
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo");
std::shared_ptr<Object> p2(new Object("foo"));
Есть много постов в Google и StackOverflow, но я не могу понять, почемуmake_shared
более эффективно, чем прямое использованиеshared_ptr
.
Может кто-нибудь объяснить мне пошаговую последовательность созданных объектов и операций, выполняемых обоими, чтобы я мог понять, какmake_shared
является эффективным. Я дал один пример выше для справки.