Я сталкиваюсь с этим делом. Предположим, у меня есть кусок кода, и я хочу контролировать способ его возврата:
bool foo() {
auto doSomething1 = []() {
return true;
}
auto doSomething2 = []() {
// execute something but not return
}
auto finalLambda = condition ? doSomething1 : doSomething2
if (case1) {
finalLambda()
}
if (case2) {
finalLambda()
}
... ...
return true;
}
Это правильный (хороший) способ добиться этого? doSomething1 возвращается, а doSomething2 - нет.