Nick Sabalausky wrote: > Is there any way to do this (preferably in D1) with reflection? (ie, without > having to manually create a conversion func/lookup for every value of every > enum.) > > ---------------------- > enum Shape > { > Square, Circle > } > char[] foo(Shape s) > { > // ????? > } > > // Either one of these, I don't really care which > assert(foo(Shape.Square) == "Shape.Square"); > assert(foo(Shape.Square) == "Square"); > ----------------------
The only way that I know of is to generate foo at the same time as Shape. Generally, you write a CTFE function that generates the enum and also generates the toString function. -- Daniel