[Issue 9339] std.random.uniform!Enum should return random enum member

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jan 17 21:35:47 PST 2013


http://d.puremagic.com/issues/show_bug.cgi?id=9339



--- Comment #13 from hsteoh at quickfur.ath.cx 2013-01-17 21:35:46 PST ---
Oh? This code compiles & links just fine:

import std.random;
import std.traits;

E randomPick(E)() if (is(E == enum)) {
        static members = [ EnumMembers!E ];
        return members[uniform(0, EnumMembers!E.length)];
}

void main() {
}

unittest {
        enum Fruit { Apple = 12, Mango = 29, Pear = 72 };
        foreach (_; 0 .. 100) {
                auto f = randomPick!Fruit();
                assert(f == Fruit.Apple || f == Fruit.Mango || f ==
Fruit.Pear);
        }
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list