Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
Основное отличие — в количестве выделений памяти:
shared_ptr
: Требует двух отдельных выделений памяти. Одно для самого объекта, другое для управляющего блока (control block), содержащего счетчики ссылок и прочую метаинформацию.make_shared
: Выполняет одно единое выделение памяти для объекта и управляющего блока совместно.Характеристика | Конструктор shared_ptr | make_shared |
---|---|---|
Количество аллокаций | Две | Одна |
Эффективность | Менее эффективен | Более эффективен |
Гарантии исключений | Меньше (возможна утечка в выражении) | Больше (атомарная операция) |
И |
Основное отличие — в количестве выделений памяти:
shared_ptr
: Требует двух отдельных выделений памяти. Одно для самого объекта, другое для управляющего блока (control block), содержащего счетчики ссылок и прочую метаинформацию.make_shared
: Выполняет одно единое выделение памяти для объекта и управляющего блока совместно.Характеристика | Конструктор shared_ptr | make_shared |
---|---|---|
Количество аллокаций | Две | Одна |
Эффективность | Менее эффективен | Более эффективен |
Гарантии исключений | Меньше (возможна утечка в выражении) | Больше (атомарная операция) |
И |
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.