xxxxxxxxxx
import std;
void main()
{
static assert(longestMemberName!Foo == "bbb".length);
}
struct Foo
{
string s;
int ii;
bool bbb;
deprecated("Use `s`")
string zzzz;
}
private template longestMemberName(T)
if (is(T == struct))
{
enum longestMemberName = ()
{
size_t maxLength;
T thing; // need a `this`
foreach (immutable i, immutable member; thing.tupleof)
{
static if (!__traits(isDeprecated, thing.tupleof[i]) &&
!isType!(thing.tupleof[i]))
{
enum name = __traits(identifier, thing.tupleof[i]);
maxLength = max(maxLength, name.length);
}
}
return maxLength;
}();
}