http://d.puremagic.com/issues/show_bug.cgi?id=8012
Summary: Add .length field to enums or provide helper function to Phobos Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: trivial Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: andrej.mitrov...@gmail.com --- Comment #0 from Andrej Mitrovic <andrej.mitrov...@gmail.com> 2012-05-01 13:44:17 PDT --- My use-case: enum Foo { x, z, y } enum Bar : Foo { x = Foo.x, y = Foo.y, z = Foo.z } I really want to ensure that when I update Foo I will be forced to update Bar (IOW get a compile-time error). If enums had a .length property then I could easily add a static assert: static assert(Foo.length == Bar.length); As a workaround (if the proposal is rejected), we might add this template to Phobos: template EnumLength(E) if (is(E == enum)) { enum EnumLength = [__traits(allMembers, E)].length; } Used like so: static assert(EnumLength!Foo == EnumLength!Bar); I'd prefer having .length over instantiating templates, but either is fine for me. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------