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");
}