http://d.puremagic.com/issues/show_bug.cgi?id=9339
Summary: std.random.uniform!Enum should return random enum
member
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Phobos
AssignedTo: [email protected]
ReportedBy: [email protected]
--- Comment #0 from [email protected] 2013-01-17 14:33:56 PST ---
Currently, std.random.uniform does not respect enum bounds:
import std.random;
import std.stdio;
enum Fruit {
Apple = 14,
Orange = 27,
Pear = 36,
Mango = 47
}
void main() {
writefln("%d", Fruit.min);
writefln("%d", Fruit.max);
writeln(uniform!Fruit());
}
Typical output:
14
47
cast(Fruit)-2046817621
It should at the very least respect the enum range defined by the enum's .min
and .max properties (which in this case are 14 and 47, respectively).
Ideally, it should only return one of the four possible values of Fruit, not
anything outside the range of .min and .max, and not anything in between the
four possible values.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------