Здравствуйте, B0FEE664, Вы писали:
S>>а можно пожалуйста пример чем соверменный С++ хуже Си в таких проектах BFE>Тут дело не в языке, а в бюрократии и особых требованиях. BFE>Например, в авионике это 100% покрытие кода тестами. BFE>В частности, если у вас есть вызов new, то надо предоставить тест, который обрабатывает исключение бросаемое new при нехватке памяти. И так для каждого встречающегося в коде new, а не в одном каком-то месте. Представляете себе объём работы по написанию тестов?
Попытался распарсить написанное — не получилось. Если у нас есть вызов new, то его нужно проверить, ок. Но в С коде в этом месте будет malloc. Претензия к необходимости проверить new, намекает на то, что malloc проверять не надо? Так нет же, точно так же надо, т.е. к чему это было писать? Или намёк на то, что магический С не потребует маллока? Но тогда зачем new в С++ коде? Что за укурка вообще?
А ещё new не обязан выкидывать исключения — как настроишь, а ещё он намного компактнее и безопаснее в использовании — т.е. качество кода в области применения new в разы выше, чем у С, а ещё new можно применять поверх (в какой-то форме) статически аллоцированной памяти, а ещё, сюрпрайз, не обязательно тестировать каждый new, их можно проверять скопом. Ну или просто не использовать, при резких проблемах с памятью — но ведь довольно тупые претензии к динамической памяти такие граматеи тут же переносят на шаблоны, конструкторы-деструкторы, классы и т.п.
BFE>Исходя из этого для многих проектов просто запрещается динамическая аллокация памяти.
Ага, лечат тотальную некомпетентность наращиванием технического долга.
BFE>Соответственно выбрасывается всё, что аллоцирует память, начиная с std::vector ...
И std::array заодно, ага.
Короче — С++ НЕ хуже С в худшем случае и на порядки лучше в лучшем.