Где выделяется память на пробрасываемое исключение и кем? Плюс даже если ничего не делать без пометки noexcept компилятор этого не знает и мусора все равно накинет, будет искать catch блоки где их в принципе нет. Плюс можно поймать то, что не для тебя летело. Строгая иерархия спасает, но без них жить и проще и быстрее.
Шаблоны (половина макросопомоев в минус), концепты(sfinae), пространства имён (прощай нечитабельные имена функций из С), инкапсуляция данных, ссылки, немного рефлексии и т.д.
Говна лопатой можно на любом языке принести. На крестиках конечно проще. С очень лаконичный язык, плюсы очень раздутый. На гигантском опенсорсе, окей, но притворяться что на плюсах не пишут код без исключений, когда теже ошибки прокидывать в разы удобней (реализуешь result из rust и радуешься) и безопасней не стоит. Особенно когда есть какой-нибудь гугл, у которых в стайл гайде прописано "мы не используем исключения ".
Где выделяется память на пробрасываемое исключение и кем? Плюс даже если ничего не делать без пометки noexcept компилятор этого не знает и мусора все равно накинет, будет искать catch блоки где их в принципе нет. Плюс можно поймать то, что не для тебя летело. Строгая иерархия спасает, но без них жить и проще и быстрее.
Шаблоны (половина макросопомоев в минус), концепты(sfinae), пространства имён (прощай нечитабельные имена функций из С), инкапсуляция данных, ссылки, немного рефлексии и т.д.
Говна лопатой можно на любом языке принести. На крестиках конечно проще. С очень лаконичный язык, плюсы очень раздутый. На гигантском опенсорсе, окей, но притворяться что на плюсах не пишут код без исключений, когда теже ошибки прокидывать в разы удобней (реализуешь result из rust и радуешься) и безопасней не стоит. Особенно когда есть какой-нибудь гугл, у которых в стайл гайде прописано "мы не используем исключения ".