On Tuesday, 27 November 2018 at 02:00:44 UTC, PacMan wrote:
ParameterIdentifierTuple from std.traits did work fine for regular functions but not for template functions:

Error: template instance `std.traits.ParameterIdentifierTuple!(f)` does not match template declaration `ParameterIdentifierTuple(func...) if (func.length == 1 && isCallable!func)` (foo)

f is defined as:

void f(T)(T t, string p)
if(is(T == A) || is(T == B))
{
        // ...
}

my goal is get "p" as string.
If I'm understanding right I need this quite frequently so I wrote this:

template nameOf(alias nameType)
{
        enum string nameOf = __traits(identifier, nameType);
}

unittest
{
        immutable int name;
        assert(nameOf!name == "name");
}

Reply via email to