Лучше использовать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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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