order of declaration/definition

Daniel Kozák via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Aug 27 06:14:08 PDT 2015


On Thu, 27 Aug 2015 13:01:02 +0000
vitus via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com> wrote:

> On Monday, 24 August 2015 at 01:01:13 UTC, John Colvin wrote:
> > enum A = 1;
> > enum B = C; //Error
> > static if(A)
> >     enum C = 0;
> > enum D = C; //OK
> >
> > Is order supposed to matter here?
> 
> Beter:
> 
> enum E = 1;
> struct Foo{
> 	enum X1 = E;
> 	static if(1) enum E = 2;
> 	enum X2 = E;
> }
> 
> static assert(Foo.X1 != Foo.X2);
> 
> 
> class Bar{
> 	enum X1 = __traits(isAbstractClass, typeof(this));
> 	static if(1) abstract void bar();
> 	enum X2 = __traits(isAbstractClass, typeof(this));
> }
> 
> static assert(Bar.X1 != Bar.X2);
> 
> 
> mixins has same problem.

works ok for me


More information about the Digitalmars-d-learn mailing list