Похоже, что, по крайней мере, с помощью 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
Мобильная версия