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