https://issues.dlang.org/show_bug.cgi?id=21645
--- Comment #1 from Adam D. Ruppe <[email protected]> --- I suspect the reason has to do with mangling the class values, but it isn't that different than a struct, so I don't think it is fundamentally problematic. Another related problem is that `enum Object o = new Object;` is not allowed, since then you'd have questions of Object aliasing at runtime (arrays are arguably similar but they solve it by reallocating for each use, so perhaps a class could do that too, but I also don't think this is required at all since a template can just use it at CTFE then export it as `static` instead of `enum`). --
