Convert to string an enum item
tcak via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Dec 23 05:11:28 PST 2015
[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.
Problem comes from that:
I have written a struct for JsonArray. It has multiple append
methods. One of them is "appendNumber".
public ref JsonArray appendNumber(N)( N num )
if( __traits( compiles, {auto x=num.min + num.max;} ) ||
__traits( compiles, {auto x=num.min_normal;} ) )
{
appendJSString( std.conv.to!string( num ) );
return this;
}
While I am passing an enum item to this function, as it has "min"
and "max" attributes, it is accepted. But the resulting string is
the name of enum item instead of its value. I do not want casting
while enum knows its type already.
More information about the Digitalmars-d-learn
mailing list