reddit discussion on article by bearophile

Timon Gehr timon.gehr at gmx.ch
Thu Nov 17 07:03:44 PST 2011


On 11/17/2011 09:33 AM, bearophile wrote:
> Andrei Alexandrescu:
>
>> This is actually a pretty awesome fail.
>
>
> Derived from those thoughts, an idea for Phobos, a bitFlags function:
> http://d.puremagic.com/issues/show_bug.cgi?id=6946
>
> A desire:
> http://d.puremagic.com/issues/show_bug.cgi?id=6916
>
> Example:
>
> import std.stdio;
> enum : int { A, B }
> void main() {
>      writeln(B); // I'd like it to print "B" here.
> }
>

Hmm. How would that work? A and B don't have an own type.
Your program is equivalent to

import std.stdio;
enum A = 0;
enum B = 1;
void main() {
     writeln(B); // prints 1 because B is replaced with 1.
}

You could use mixins to automatically generate
alias E.A A;
alias E.B B;
// ...

for a given enumerated type.

import std.stdio, ...;
enum E : int { A, B }
mixin Import!E;
void main() {
      writeln(B); // prints "B"
}


More information about the Digitalmars-d mailing list