How to convert int type to string int ?
Hi, All is in the title. I need this to do a tupleof enhanced, that mean: - .tupleof need an instance me i want to do this on type diretcly - .tupleof do not bind to member name i need this for this i strat to this code: import std.stdio; import std.typecons; import std.conv; struct Coord { int x; int y; int z; } template toTuple(T){ static string maker(){ string statement = alias Tuple!(; foreach(const memberName; __traits(allMembers, T)){ statement ~= to!string(typeof(__traits(getMember, T, memberName))) ~ ,\ ~ memberName ~ \, ; } statement = statement[O..$-1] ~ ) t; ; // $-1 to remove extra comma return statement; } enum toTuple = mixin( maker() ); } but that fail on typeof(__traits(getMember, T, memberName) becase that return a type and not a string. Thaks for your help
Re: How to convert int type to string int ?
On Sunday, 1 June 2014 at 13:34:20 UTC, bioinfornatics wrote: Hi, All is in the title. I need this to do a tupleof enhanced, that mean: - .tupleof need an instance me i want to do this on type diretcly - .tupleof do not bind to member name i need this for this i strat to this code: import std.stdio; import std.typecons; import std.conv; struct Coord { int x; int y; int z; } template toTuple(T){ static string maker(){ string statement = alias Tuple!(; foreach(const memberName; __traits(allMembers, T)){ statement ~= to!string(typeof(__traits(getMember, T, memberName))) ~ ,\ ~ memberName ~ \, ; } statement = statement[O..$-1] ~ ) t; ; // $-1 to remove extra comma return statement; } enum toTuple = mixin( maker() ); } but that fail on typeof(__traits(getMember, T, memberName) becase that return a type and not a string. Thaks for your help I find this: typeid(typeof(__traits(getMember, T, memberName))).toString but that do not works at compile time. Error: static variable typeid(int) cannot be read at compile time
Re: How to convert int type to string int ?
Maybe http://dlang.org/property.html#stringof helps.
Re: How to convert int type to string int ?
On Sunday, 1 June 2014 at 13:52:27 UTC, Tobias Pankrath wrote: Maybe http://dlang.org/property.html#stringof helps. yes that help a lot thanks
Re: How to convert int type to string int ?
I bam close to be done import std.stdio; import std.typecons; import std.conv; struct Coord { int x; int y; int z; } template toTuple(T){ static string maker(){ string statement = alias Tuple!(; foreach(const memberName; __traits(allMembers, T)){ statement ~= typeof(__traits(getMember, T, memberName)).stringof ~ ,\ ~ memberName ~ \, ; } statement = statement[0..$-2] ~ ) toTuple; ; // $-1 to remove extra comma return statement; } pragma( msg, maker() ); mixin( maker() ); } void main() { //auto a = c.tupleof; auto a = toTuple!Coord; } $ ldc2 -w -oftestTupleof testTupleof.d alias Tuple!(int,x, int,y, int,z) toTuple; testTupleof.d(29): Error: type Tuple!(int, x, int, y, int, z) has no value
Re: How to convert int type to string int ?
On Sunday, 1 June 2014 at 13:58:03 UTC, bioinfornatics wrote: On Sunday, 1 June 2014 at 13:52:27 UTC, Tobias Pankrath wrote: Maybe http://dlang.org/property.html#stringof helps. yes that help a lot thanks End of spam ( joke ^^) I found it :-) import std.stdio; import std.typecons; import std.conv; struct Coord { int x; int y; int z; } template toTuple(T){ static string maker(){ string statement = alias toTuple = Tuple!(; foreach(const memberName; __traits(allMembers, T)){ statement ~= typeof(__traits(getMember, T, memberName)).stringof ~ ,\ ~ memberName ~ \, ; } statement = statement[0..$-2] ~ ) ; ; // $-1 to remove extra comma return statement; } pragma( msg, maker() ); mixin( maker() ); } void main() { Coord c; alias A = toTuple!Coord; A a; a[0] = 1; a.x = 1; }