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