On Saturday, 8 June 2013 at 17:27:48 UTC, monarch_dodra wrote:
On Saturday, 8 June 2013 at 16:21:26 UTC, deadalnix wrote:
{} is a lambda already. The first set of () is optional.
Oh Yeah. Didn't know that. You learn something new every day.
...but for that to work, (it seems) you have actually store or
pass the lambda, or all the parser sees is a plain "block".
Improved example:
-------
void main()
{
int i;
auto y = {++i;}; //lambde (not called)
{++i;}; //simple block
(){++i;}(); //inline lambda call
// {++i;}(); //Un-recognized
writeln(i); //prints 2
}
-------