how do I take a symbol as parameter? for example:
template nameof(alias S) { import std.array : split; enum nameof = S.stringof.split(".")[$-1]; }
Works fine for say a enum member such nameof!(myEnum.X) but this:
struct S { int v; } S s; writefln(nameof!(s.v)); // should return "v"
return the following error:
Error: template instance nameof!(v) cannot use local 'v' as parameter to > non-global template nameof(alias S)