If Statement with Declaration

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 19 13:26:50 PDT 2017


On Wednesday, July 19, 2017 1:30:56 PM MDT sontung via Digitalmars-d wrote:
> So I was thinking of a way of extending if statements that have
> declarations. The following being as example of the current use
> of if statements with declarations:
>
>      if(int* weDontPollute = someFunc())
>      {
>           // use weDontPollute
>      }
>
> That's great and all, but it only works by checking if the
> variable evaluates to true or false. Which is fine for a pointer
> but otherwise useless for anything else, like integers where zero
> is usually valid input (index for array). So currently the only
> way to do something like this in the language, that i've found,
> is to use a for statement.
>
>      for(int i = someFunc(); i >= 0;)
>      {
>          // use i
>
>          break;
>      }
>
> Not that ideal to use a for statement. It makes it hard to read
> and if the break condition isn't there it might very well be an
> infinite loop. So I was thinking of some sort of syntax like this:
>
>      if(int i = someFunc(); i >= 0)
>      {
>          // use i
>      }
> Thoughts on this sort of feature?

I've wanted this for years, but based on previous conversations on the
topic, I've assumed that we're never getting it. It sure wouldn't hurt my
feelings though if someone put forth the time and effort to write a DIP for
it. Maybe they could get it accepted. I don't know.

- Jonathan M Davis



More information about the Digitalmars-d mailing list