%u <e...@ee.com> wrote:
== Quote from Simen kjaeraas (simen.kja...@gmail.com)'s article
%u <e...@ee.com> wrote:
> enum X { A=3, B=1, C }
>
> void main() {
> foreach(e;X)
> writefln(e.stringof," = ",e);
> }
> //X.A = 3
> //X.B = 1
> //X.C = 2
> or
> //X.B = 1
> //X.C = 2
> //X.A = 3
enum X { A=3, B=1, C }
void main( ) {
foreach( e; __traits(allMembers, X) ) {
writeln( "X.", e, " = ", mixin( "X."~e ) );
}
}
D1 :'(
Oh. Without being an expert on D1 matters, I believe that is impossible.
I thought there was a struct called defineEnum in phobos1, but it
appears I am wrong. However, it should be fairly simple to create one.
Untested code, as I do not have D1 installed:
struct defineEnum( T... ) {
foreach ( i, e; T ) {
mixin( "static defineEnum " ~ e ~ " = defineEnum( i );" );
}
static int opApply( int delegate( ref bar ) dg ) {
int result = 0;
foreach ( e; T ) {
mixin( "result = dg( " ~ e ~ " ) );" );
if ( result ) {
break;
}
}
return result;
}
}
--
Simen