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(); };
Cleiton