digitalmars.D.learn - mixin creating an enum
- Hendrik Renken (21/21) May 23 2008 Hi,
- Robert Fraser (9/37) May 23 2008 struct Foo(char[] enumMembers)
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
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.
May 23 2008








Robert Fraser <fraserofthenight gmail.com>