static class vs. static struct

Piotrek via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jan 27 13:44:38 PST 2015


On Tuesday, 27 January 2015 at 18:18:02 UTC, Ali Çehreli wrote:
> On 01/27/2015 08:58 AM, Piotrek wrote:
>
> Nice list. :)
>
> > 1. static variable
> >
> > struct A{int a} // no static before declaration
> > static A s; //note that static is used for struct variable
> storage class
> > (lifetime)
> >
> > static int b;
> > etc.
> >
> > 2. static declaration
> >
> > static struct A{int a}; //static used for context unnesting
> > static int fun(){}; // static used also for removing scope
> context
>
> Of course that includes static member functions, where the 
> 'this' pointer is removed.
>
> Actually, "static opCall" is kind of different because it makes 
> the type itself callable.
>
> >
> > etc.
> >
> > 3. static if
> >
> > static if(compile_time_cond)
> > {
> >    //this section of code will be taken into the binary, used
> for meta
> > programming
> > }
>
> Another use of 'static' that means "at compile time":
>
> static assert
>
> 4. Module initialization and deinitialization:
>
> static this
> shared static this
>
> static ~this
> shared static ~this
>
> 5. Module import:
>
> static import std.stdio;
>
> Ali

Thanks for comments, Mr. Professor. On duty as usual ;)
Let me here thank for your book which I've been reading for some 
time.

Piotrek


More information about the Digitalmars-d-learn mailing list