On Wednesday, 16 March 2016 at 20:24:38 UTC, data pulverizer wrote:
Hi D gurus,

is there a way to obtain parameter names within the function body? I am particularly interested in variadic functions. Something like:

void myfun(T...)(T x){
    foreach(i, arg; x)
        writeln(i, " : ", arg);
}

void main(){
    myfun(a = 2, b = "two", c = 2.0);
}

// should print
a : 2
b : two
c : 2.0

Thanks in advance

Loving the mixins and tuples

I try to anticipate the reason why you want this. As said in a previous answer you can access to an individual element by using the array syntax but also _param_<X>, with X the index of the parameter:

void myfun(T...)(T x)
{
    import std.traits; import std.stdio;
    writeln(ParameterIdentifierTuple!(myfun!T));
    writeln(_param_0);
    writeln(_param_1);
    writeln(_param_2);
}

void main()
{
    int a=1,b=2,c=3;
    myfun(a,b,c);
}

Reply via email to