Исключения в C++ бесплатны до первого throw
Habr ·

В C++ исключения принято считать бесплатными, пока дело не доходит до throw . Но один бросок через 128 кадров стека может обойтись в 26 микросекунд, а отсутствие noexcept — заставить std::vector копировать объекты вместо перемещения. Разбираемся на замерах и примерах кода, откуда берутся эти накладные расходы, как на них влияет многопоточность и когда исключения становятся проблемой для производительности. Разобраться в исключениях
В C++ исключения принято считать бесплатными, пока дело не доходит до throw . Но один бросок через 128 кадров стека может обойтись в 26 микросекунд, а отсутствие noexcept — заставить std::vector копировать объекты вместо перемещения. Разбираемся на замерах и примерах кода, откуда берутся эти накладные расходы, как на них влияет многопоточность и когда исключения становятся проблемой для производительности. Разобраться в исключениях