Возврат значения из лямбды в той же строке с объявлением - PullRequest
2 голосов
/ 28 мая 2020

Иногда проще представить значение функцией, и лямбды подходят для этого. Но есть ли способ вернуть значение из лямбда-объявления?

например:

int i = []{return 2;};

генерирует ошибку. Как заставить это лямбда-объявление возвращать 2 без новых строк кода?

Ответы [ 2 ]

3 голосов
/ 28 мая 2020

Дополнительно к предоставленным ответам. Это называется Immeadietly Invoked Function Expression (IIFE). (FF происходит от C ++, широко используется в других языках)

int i = []{return 2;}(); // () invokes the lambda AKA call operator
3 голосов
/ 28 мая 2020

Подобно вызову любых функций с помощью вызова operator(), вам нужно вызвать лямбду.

int i = []{return 2;}();
//                   ^^
...