On Wednesday, 23 December 2015 at 17:43:52 UTC, Alex Parrill
wrote:
On Wednesday, 23 December 2015 at 13:11:28 UTC, tcak wrote:
[code]
import std.stdio;
import std.conv;
enum Values: ubyte{ One = 1, Two = 2 }
void main(){
writeln( std.conv.to!string( Values.One ) );
}
[/code]
Output is "One".
casting works, but to be able to cast correctly, I need to
tell compiler that it is "ubyte".
Isn't there any NON-HACKISH solution to print out the value of
enum item? And do not decrease the performance as well please.
It runs on web server.
So you want the enum's integer value? Try casting it to an
integer.
writeln(cast(ubyte) Values.One);
He already mentioned that.
What you want to do is use std.traits.OriginalType
(https://dlang.org/phobos/std_traits.html#OriginalType) like so:
to!string(cast(OriginalType!Values)Values.one)