LINUX.ORG.RU

make_unique vs new

 ,


0

3

Добрый день. Подскажите пожалуйста, в чем преимущество make_unique перед просто созданием unique_ptr. Как я понял одно из преимуществ это отсутствие утечек при make_unique и где-то еще слышал про проблемы фрагментации. Кто сталкивался с этими, можете пояснить пожалуйста?


Ответ на: комментарий от kvpfs

Не знаю кто там как, а я - обязательно грепаю чужой код на наличие new/delete, если нашел, то говнокодер детектед с соответсвущими выводами (если там не placement new). Также со всякими reinterpret_cast трюками, тоже грепаю, любой каст не в char* с большой вероятностью - говнокод.

реально опасно возиться с new/delete, только в случае если у вас включены исключения и вы богато пользуетесь этой малонужной ерундой. если ж вы ставите ключик noexcept, то никаких обходов кода из-за ексепшена у вас не будет, и вы вполне можете контролировать ход исполнения. и таким образом вполне безопасно писать компактный и быстрый код, который иногда нужен. експшены вообще подразумевают автоматическое управление памятью, навроде сборщика мусора. наличие delete и экспшенов в одной куче - это возможность получить проблему. но тем и прекрасен с++ что им может самоубиться так, что не найдешь где.

то есть наличие delete при наличии эксепшенов - это плохо. а при отсутсвии эксепшенов это может говорить о том, что чувак знает, что делает.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.