LINUX.ORG.RU

История изменений

Исправление KennyMinigun, (текущая версия) :

Во такой подход рекомендуют инженеры эдоуби:

do {
    if (! do_1())
        break;

    if (! do_2()
        break;

    /* ... */
} while (0);

cleanup();

Из плюсов: предсказуемость — после break контроль передается только *вниз* по коду. В С++ еще получаем приятную плюшку в виде вызова деструкторов у scope-local переменных.

Исходная версия KennyMinigun, :

Во такой подход рекомендуют инженеры эдоуби:

do {
    if (! do_1())
        break;

    if (! do_2()
        break;

    /* ... */
} while (0);

clenup();

Из плюсов: предсказуемость — после break контроль передается только *вниз* по коду. В С++ еще получаем приятную плюшку в виде вызова деструкторов у scope-local переменных.