strtr: > static if( S.sizeof == members.sizeof ) > S s = void; > else > S s;
You can use something like this :-) import std.stdio: writeln; int unusedBytesStruct(S)() if (is(S == struct)) { int totUsed; foreach (field; S.init.tupleof) totUsed += field.sizeof; return cast(int)S.sizeof - totUsed; } struct S1 { byte s; double d; } align(1) struct S2 { byte s; double d; } struct T { double d; int x; short s; ubyte u1, u2; } void main() { writeln(unusedBytesStruct!S1); // 7 writeln(unusedBytesStruct!S2); // 0 writeln(unusedBytesStruct!T); // 0 } Bye, bearophile