order of declaration/definition

vitus via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Aug 27 06:01:02 PDT 2015


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.


More information about the Digitalmars-d-learn mailing list