В книге More Effective С++ (Number 15) я прочитал, что код становится значительно медленнее, если исключения включены, даже если они не используются. На мой взгляд, исключения имеют ограниченное применение, и я стараюсь их избегать, но это еще одна тема.
Я не совсем понимаю его утверждение:
- Что означает включение/отключение исключений? Это разница между наличием нуля или более нуля блоков try/catch? Это флаг компилятора? Что произойдет, если я использую DLL, в которой могут произойти исключения?
- Предположим, что исключение никогда не вызывается:
- Оказывает ли код более медленный в целом или только части, в которые программа входит/выходит из блоков try/catch, замедляется? По словам автора, оба они верны.
- Как я могу скомпилировать без исключений? Могу ли я это сделать, даже если у меня есть блоки try/catch? Могу ли я это сделать, если DLL, которые я использую, может генерировать исключения?