May 23, 2008 mixin creating an enum | ||||
---|---|---|---|---|
| ||||
Hi, i have a struct containing "attributes" identified by int-ids: struct Foo { char[uint] attributes; } I would like to use instead of the int-ids an enum, since the range of the ids is strict and cannot change. And i want this struct to be generic. So what i need would be a mixin template, which i give the enum -members and the template generates the enum. struct Foo(char[] enummembers) { enum Bar { mixin enummembers; } char[][] attributes; } Now i would be able to address the attributes by the enum-members. Is that possible? Since i couldn't find anythiong close in the docs or in the Wiki4D or in the dsource tutorials |
May 23, 2008 Re: mixin creating an enum | ||||
---|---|---|---|---|
| ||||
Posted in reply to Hendrik Renken | Hendrik Renken wrote:
> Hi,
>
> i have a struct containing "attributes" identified by int-ids:
>
> struct Foo
> {
> char[uint] attributes;
> }
>
>
> I would like to use instead of the int-ids an enum, since the range of the ids is strict and cannot change. And i want this struct to be generic. So what i need would be a mixin template, which i give the enum -members and the template generates the enum.
>
> struct Foo(char[] enummembers)
> {
> enum Bar
> {
> mixin enummembers;
> }
>
> char[][] attributes;
> }
>
> Now i would be able to address the attributes by the enum-members. Is that possible? Since i couldn't find anythiong close in the docs or in the Wiki4D or in the dsource tutorials
struct Foo(char[] enumMembers)
{
mixin("enum Bar {" ~ enumMembers ~ "}");
char[][Bar] attributes;
}
...?
If enumMembers isn't in the exact correct form, you'll probably need a string function to get it there.
|
Copyright © 1999-2021 by the D Language Foundation