...
Each has own disadvantages, chose one ;)
T.stringof // simple & reliable, won't work for function aliases __traits(identifier, T) // only symbolsstd.traits.fullyQualifiedName!T // issues with templated types, includes module/package into name
...
Each has own disadvantages, chose one ;)
T.stringof // simple & reliable, won't work for function aliases __traits(identifier, T) // only symbolsstd.traits.fullyQualifiedName!T // issues with templated types, includes module/package into name