Różnica w make_shared i normal shared_ptr w C ++
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo");
std::shared_ptr<Object> p2(new Object("foo"));
Wiele postów google i stackoverflow znajduje się w tym miejscu, ale nie jestem w stanie zrozumieć dlaczegomake_shared
jest bardziej wydajny niż bezpośrednie użycieshared_ptr
.
Czy ktoś może mi wyjaśnić sekwencję tworzonych obiektów i operacji wykonywanych przez obie, aby móc zrozumieć, jakmake_shared
jest wydajny. Podałem jeden przykład powyżej w celach informacyjnych.