On Fri, 20 Nov 2009 00:48:28 -0500, Don <[email protected]> wrote:

Now that we have struct literals, the old C-style struct initializers don't seem to be necessary. The variations with named initializers are not really implemented -- the example in the spec doesn't work, and most uses of them cause compiler segfaults or wrong code generation. EG...

struct Move{
    int D;
}
enum Move genMove = { D:4 };
immutable Move b = genMove;

It's not difficult to fix these compiler problems, but I'm just not sure if it's worth implementing. Maybe they should just be dropped? (The { field: value } style anyway).

Brought up in another thread, a good use of static initializers for structs: arrays of POD literals.

For example:

struct RGB
{
  ubyte red, green, blue;
}

RGB[256] PALETTE = [
{0x00, 0x00, 0x00},
{0x01, 0x01, 0x01},
...
];

can you do something like this without static initializers? My recollection is that this is the only way to have a struct array literal.

-Steve

Reply via email to