On Monday, August 15, 2011 13:31 Walter Bright wrote: > On 8/15/2011 1:13 PM, Steven Schveighoffer wrote: > > On Mon, 15 Aug 2011 16:05:31 -0400, Walter Bright > > <[email protected]> > > > > wrote: > >> On 8/15/2011 12:17 PM, Steven Schveighoffer wrote: > >>> What is going to happen if someone adds an extra ';' ? Compiler error > >>> ("no return statement") > >> > >> Such lambdas are often used with 'auto' returns, so you'd get no > >> compiler error, but a subtle in the way your program works. > > > > So you're saying it becomes a void function? This still is not bad: > > > > 1. Caller is expecting it not to be void, compiler error > > 2. Caller is not using the return value, who cares? > > With struct destructors, (2) is a problem. Overloading can also be a > problem.
It would be a big problem with regard to functions in general IMHO, but how do struct destructors and overloading apply to lambdas? It at least _seems_ like it would be possible to make it so that single-statement lambdas which have no return or ; but return the result of that statement would work without any ambiguities. - Jonathan M Davis
