In that case, the return type is deduced from return statements
as described in [dcl.spec.auto].
— end note]
[Example 3: auto x1 =[](int i){return i; }; // OK, return type is intauto x2 =[]{return{1, 2}; }; // error: deducing return type from braced-init-listint j;
auto x3 =[&]()->auto&&{return j; }; // OK, return type is int& — end example]
[Example 4: auto x =[](int i, auto a){return i; }; // OK, a generic lambdaauto y =[](thisauto self, int i){return i; }; // OK, a generic lambdaauto z =[]<class T>(int i){return i; }; // OK, a generic lambda — end example]