I'm reading p2425r0 and notice that the lambda declaration 

[ captures ] ( params ) lambda-specifiers requires(optional) { body }

in "(params)" part we may include a structured binding syntax but with implicit "auto"

     cv-auto ref-qualifier(optional) [ identifier-list ] 


This could help solve the "Arbitrary lookahead parsing" problem ?


Sample 1 -----------------------
[][a,b] { return a * b; }  // becomes:
[](auto a, auto b) { return  a * b  ; } 

Sample 2 -----------------------
[] const&& [a, b] { return a; }  // becomes:
[](const auto&& a, const auto&& b) { return a; } 

Sample 3 -----------------------
[]&[p] p.foo();
[](auto& p) noexcept(noexcept(p.foo())) -> decltype(( p.foo()  )) { return  p.foo(); };


BR

Cleiton