Иногда проще представить значение функцией, и лямбды подходят для этого. Но есть ли способ вернуть значение из лямбда-объявления?
например:
int i = []{return 2;};
генерирует ошибку. Как заставить это лямбда-объявление возвращать 2 без новых строк кода?
2
Дополнительно к предоставленным ответам. Это называется Immeadietly Invoked Function Expression (IIFE). (FF происходит от C ++, широко используется в других языках)
Immeadietly Invoked Function Expression
int i = []{return 2;}(); // () invokes the lambda AKA call operator
Подобно вызову любых функций с помощью вызова operator(), вам нужно вызвать лямбду.
operator()
int i = []{return 2;}(); // ^^