Ok, someone put me out of my misery, I can't figure out for the life of me how to do this. Basically, I have a vector class and want enums for the zero vectors:

struct Vec
{
  this(real x, real y) { e[0] = x; e[1] = y; }
  real[2] e;
  enum Vec zero = Vec(0, 0);
}

What can I do?

The above doesn't work because:

test.d(3): Error: Index assignment this.e[0u] = x is not yet supported in CTFE test.d(3): Error: Index assignment this.e[1u] = y is not yet supported in CTFE


Changing the constructor to do e = [x, y] doesn't work either.

test.d(3): Error: Slice operation this.e[] = [x,y] cannot be evaluated at compile time
test.d(5): Error: cannot evaluate __ctmp1.this(0L,0L) at compile time
test.d(5): Error: cannot evaluate __ctmp1.this(0L,0L) at compile time


What can I do?

And once I do that, I need to do it also for:

struct Vec(int N)
{
  real[N] e;
  ...
}

Thanks in advance.

Reply via email to