История изменений
Исправление Dendy, (текущая версия) :
До C++11 были боль и страдания, либо нелепый пустой цикл, либо куча вложенностей с мутабельными переменными, либо вынос кода в отдельную функцию, что раздирает читабельный текст на несколько несвязных кусков.
С появлением лябмд всё упростилось, теперь скоуп функции можно встаивать внутрь кода, как-то так:
const int value = [&] {
if (cond1) return -5;
if (cond2) return foo();
bar();
if (cond3) return baz();
return 42;
}();
Исходная версия Dendy, :
До C++11 были боль и страдания, либо нелепый пустой цикл, либо куча вложенностей с мутабельными переменными, либо вынос кода в отдельную функцию, что раздирает читабельный текст на несколько несвязных кусков.
С появлением лябмд всё упростилось, теперь скоуп функции можно встаивать внутрь кода, как-то так:
const int value = [&]() {
if (cond1) return -5;
if (cond2) return foo();
bar();
if (cond3) return baz();
return 42;
}();