Scott Meyers' DConf 2014 keynote "The Last Thing D Needs"

Steven Schveighoffer via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu May 29 12:42:33 PDT 2014


On Thu, 29 May 2014 15:29:31 -0400, Walter Bright  
<newshound2 at digitalmars.com> wrote:

> On 5/29/2014 11:11 AM, Dmitry Olshansky wrote:
>> Static if is certainly NOT an attribute, it doesn't make any sense.
>
> Yes, it does make sense. It was not an accident that the frontend treats  
> it as it does, the code to do it was deliberately put there.
>
> The attributes are all designed to affect a block of code - so are  
> version/debug/staticif - why should they be different?

private int x; // ok
static if(1) int x; // ok

private x = 5; // error
static if(1) x = 5; // ok

Static if/version/debug can affect both statements and declarations.  
attributes only apply to declarations. That is the major difference I see  
between them.

Not arguing that it's bad for the syntax to exist, I think it kind of  
makes sense given that static if does not create a new scope. But they  
don't behave like normal attributes.

-Steve


More information about the Digitalmars-d-announce mailing list