Лучше использоватьshared_ptr.reset или оператор =?C++

Программы на C++. Форум разработчиков
Anonymous
Лучше использоватьshared_ptr.reset или оператор =?

Сообщение Anonymous »

Я пытаюсь разобраться в новых идиомах для C++11.
Похоже, что, по крайней мере, с помощью Shared_ptr существует существенная разница между использованием new T() и make_shared().
Но как насчет сброса общего указателя, чтобы указать на новый экземпляр чего-либо. Раньше я обычно использовал член reset(new T()). Однако не возникает ли это той же проблемы, что и отсутствие использования make_shared()? (т. е. он не позволяет make_shared выделять объект, поэтому он вынужден размещать счетчик ссылок в отдельном выделении, а не в том же выделении, что и сам T?)
Просто лучше использовать:

Код: Выделить всё

mysharedptr = make_shared(args...);
Или есть лучший способ?
И не следует ли сброс предлагать переменную пересылку аргументов, как это делает make_shared, чтобы можно было написать mysharedptr.reset(args...);?

Подробнее здесь: https://stackoverflow.com/questions/148 ... r-operator

Вернуться в «C++»