Здравствуйте, _NN_, Вы писали:
_NN>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>Компилировать в Debug. Для Release Error code time будет просто 0, так как компилятор выкинет весь этот код с вызовом функции. Выкинуть код с исключением он не может.
PD>>Так что не надо заявлять, что обработка исключений столь уже дешева. Это все же вызов ядра (throw в VC++ вызывает RaiseException) _NN>Давай правильно сравнивать. _NN>Кинуть исключение дороже чем вернуть значение, с этим никто не спорит. _NN>Однако, исключения это исключительная ситуация, а посему это должно быть редким явлением.
_NN>А теперь сравним именно такой код:
_NN> ... _NN>Получаем разницу 15ms/10*1000*1000 = 1.5ns. _NN>Не так много учитывая упрощение кода.
Пример абсолютно бессмысленный т.к. count всегда >0.
Чистый C применяется только в ядре,где нужно работать с оборудованием и C++ только мешает, и в коде embedded устройств. Последние нередко real-time и задержки на обработку исключений составляют существенную проблему и недопустимы.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)