On Friday, 4 November 2016 at 14:16:44 UTC, Matthias Bentrup wrote:
On Thursday, 3 November 2016 at 22:29:34 UTC, Jerry wrote:
    if(int i = someFunc(); i >= 0)
    {
        // use i
    }
Thoughts on this sort of feature?

I would prefer the syntax

  if( (int i = someFunc()) >= 0 )
  {
    // use i
  }

as this matches the already existing assignment expression syntax if you pull the declaration out of the if expression.

Well you can argue the "if( init ; condition )" syntax matches "for( init ; condition ; update)", minus the "update" section. It's cleaner as well as you don't need an extra set of parenthesizes. As well that sort of syntax would allow multiple declaration. Which I'm not sure that's desired, it becomes increasingly messy.

if((int i = someFunc()) >= 0 && (int j = otherFunc()) >= 0)
{
}

You also can't use the declaration as input for someFunc():

    if(int i; someFunc(&i) >= 0)
    {
    }

Reply via email to