compiling with dmd should consume excessive memory
text/x-dsrc
581
Comments
Comment #0 by ryan — 2015-09-01T13:12:13Z
Created attachment 1546
compiling with dmd should consume excessive memory
I am trying to return a range of all members in a named enum using only(EnumMembers!MyEnum).
This works fine, unless MyEnum uses string as a backing value and has more than one element, in which case it eats all 8GB of my memory and crashes DMD.
Test file is attached and pasted below:
---
import std.range : only;
import std.traits : EnumMembers;
enum Bad : string {
confirm = "confirm",
cancel = "cancel" ,
rotateL = "rotateL",
rotateR = "rotateR",
turbo = "turbo" ,
menu = "menu" ,
}
enum Fine {
confirm,
cancel ,
rotatel,
rotater,
turbo ,
menu ,
}
enum AlsoFine : string {
confirm = "confirm",
}
auto allButtons() {
//return only(EnumMembers!Fine); // compiles just fine
//return only(EnumMembers!AlsoFine); // compiles just fine
return only(EnumMembers!Bad); // eats all my memory (8GB)
}
void main() { }
---
Comment #1 by ryan — 2015-09-01T13:19:04Z
Also fails:
with(Button) return only(confirm, cancel, rotateL, rotateR, turbo, menu);