История изменений
Исправление X512, (текущая версия) :
Ну, натуральным развитием будет не return а break.
Тогда все функции придётся обвешивать do {...} while(false);
, что не желательно и выглядит не очень. Это легко забыть написать. Для кодов ошибок можно настроить так, чтобы если возвращаемое значение не принимается, выводился warning. Также оно не может принимать коды ошибок.
Шобы из функций была одна точка выхода.
Если используется RAII, то это не проблема. Прямой вызов delete/close/release должен избегаться насколько возможно.
И одно и другое - эмуляция goto без его явного использования.
Так можно дойти до того, что return не в конце функции - это такое же зло как и goto.
Исправление X512, :
Ну, натуральным развитием будет не return а break.
Тогда все функции придётся обвешивать do {...} while(false);
, что не желательно и выглядит не очень. Это легко забыть написать. Для кодов ошибок можно настроить так, чтобы если возвращаемое значение не принимается, выводился warning.
Шобы из функций была одна точка выхода.
Если используется RAII, то это не проблема. Прямой вызов delete/close/release должен избегаться насколько возможно.
И одно и другое - эмуляция goto без его явного использования.
Так можно дойти до того, что return не в конце функции - это такое же зло как и goto.
Исходная версия X512, :
Ну, натуральным развитием будет не return а break.
Тогда все функции придётся обвешивать do {...} while(false);
, что не желательно и выглядит не очень. Это легко забыть написать. Для кодов ошибок можно настроить так, чтобы если возвращаемое значение не принимается, выводился warning.
Шобы из функций была одна точка выхода.
Если используется RAII, то это не проблема. Прямой вызов delete/close/release должен избегаться насколько возможно.