LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

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

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

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

Исходная версия alysnix, :

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

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