if statement.

Regan Heath regan at netmail.co.nz
Mon Oct 22 04:12:46 PDT 2007


Simen Haugen wrote:
> From the documentation:
> 
> "If an auto Identifier is provided, it is declared and initialized to the 
> value and type of the Expression. Its scope extends from when it is 
> initialized to the end of the ThenStatement.
> 
> If a Declarator is provided, it is declared and initialized to the value of 
> the Expression. Its scope extends from when it is initialized to the end of 
> the ThenStatement. "
> 
> I can't understand what Declerator is.. I thought it would assign a 
> previously defined variable, but that's not the case.
> 
>  if (auto r = true) {
>   writefln(r); // OK
>  }
> 
>  bool r;
>  if (r = true) { // Error: '=' does not give a boolean result
>   writefln(r);
>  }
> 
> 
> So... What is it then?

This is a guess, but it compiles so...

if (bool r = true) {
   writefln(r);
}

A declarator would be where you declare a variable, not re-assign.  I guess.

Regan


More information about the Digitalmars-d-learn mailing list