const struct not accepted as initializer by dmd 2.002

torhu fake at address.dude
Fri Jul 13 04:26:47 PDT 2007


Reposting from D.learn, since there were no answers there.

---
struct Inner
{
     int value;
}

struct Outer {
     //const(Inner) i;  // this fixes it, but is not valid in D 1.0
     Inner i;
}

const Inner ic = { 5 };  // const or invariant here makes no difference

Outer outer = {
     i: ic      // line 14
     //i: { 5 }  // this is allowed
};
---
c:\prog\test\D>dmd -c test
test.d(14): Error: non-constant expression cast(Inner)ic
---

Since the value of ic is fixed at compile time, shouldn't it be 
equivalent to a literal?

I'm trying to make this code work in D version 1 too, and since it's for 
an example, I'm trying to avoid any string mixins or other ugly workarounds.



More information about the Digitalmars-d mailing list