Вопросы к Поиску с Алисой

Примеры ответов Поиска с Алисой
Главная / Наука и образование / В чем преимущества использования std::make|_shared по сравнению с ручными shared|_ptr…
Вопрос для Поиска с Алисой
17 декабря

В чем преимущества использования std::make|_shared по сравнению с ручными shared|_ptr конструкторами?

Алиса
На основе источников, возможны неточности

Преимущества использования std::makeshared по сравнению с ручными конструкторами sharedptr:

  • Сокращённое количество отдельных выделений памяти. arne-mertz.de scrutator.me При использовании makeshared блок счётчика ссылок и данные можно расположить в памяти последовательно, в одном выделенном блоке памяти. scrutator.me Это достигается за счёт того, что создание объекта и выделение памяти под него изолируется от пользователя и происходит внутри функции makeshared. scrutator.me
  • Локализация кэша. arne-mertz.de При использовании make_shared структура счётчика и объект расположены рядом друг с другом. arne-mertz.de Действия, которые работают как со структурой счётчика, так и с самим объектом, будут иметь только половину количества пропусков кэша. arne-mertz.de
  • Безопасность исключений. arne-mertz.de stackoverflow.com Использование make_shared означает, что не нужно иметь дело с new и необработанными указателями, что обеспечивает лучшую безопасность исключений — нет возможности выбросить исключение после выделения объекта, но до назначения его умному указателю. stackoverflow.com
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.
Задать новый вопрос
Задайте вопрос...
…и сразу получите ответ в Поиске с Алисой
Войдите, чтобы поставить лайк
С Яндекс ID это займёт пару секунд
Войти
Tue Aug 26 2025 09:00:20 GMT+0300 (Moscow Standard Time)